Инфосистемы Джет
Актуальность: 1 кв 2025
Задача: Провести ревью кода. go/basics
Заголовок раздела «Задача: Провести ревью кода. go/basics»package main
import ( "encoding/json " "fmt " "net/http ")
// Необходимо хранить список из username и почты в памяти программы.// Пользователи программы могут добавлять и просматривать users.// Разработчик написал данный код, но не прошел ревью.// Нужно указать на ошибки и исправить, либо оставить комментарий о том, что можно улучшить.
var users = []string{}
type User struct { Username string `json:"username "` email string `json:"email "` // Email}
// contextfunc addUser(w http.ResponseWriter, r *http.Request) { var newUser User err := json.NewDecoder(r.Body).Decode(&newUser) if err != nil { http.Error(w, "Error parsing JSON ", http.StatusBadRequest) return } // lock users = append(users, newUser.Username) // [100] // unlock fmt.Fprintf(w, "Added user ")}
// contextfunc getUsers(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) json.NewEncoder(w).Encode(users) // return}
// goroutinefunc main() { http.HandleFunc("/addUser ", addUser) http.HandleFunc("/getUsers ", getUsers) fmt.Println("Server starting on port 8080...") http.ListenAndServe(":8080 ", nil)}