Инфосистемы Джет · июль 2024

Тех собес на middle Golang Разработчик в Инфосистемы Джет

middle Тех собес 1 вопрос 1 задача
1

Техническое собеседование

2

Вопросы по опыту

1. Вопросы по опыту

3

Задание на ревью кода

2. Задача: Необходимо хранить список из username и почты в памяти программы. Пользователи программы могут добавлять и просматривать пользователей. Нужно указать на ошибки в представленном коде, исправить их или оставить комментарий о том, что можно улучшить.

package main

import (
    "encoding/json"
    "fmt"
    "net/http"
)

var users = []string{}

type User struct {
    Username string json:"username"
    email    string json:"email"//Email
}

func 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
    }
    
    users = append(users, newUser.Username)
    
    fmt.Fprintf(w, "Added user")
}

func getUsers(w http.ResponseWriter, r *http.Request) {
    w.WriteHeader(http.StatusOK)
    json.NewEncoder(w).Encode(users)
}

func main() {
    http.HandleFunc("/addUser", addUser)
    http.HandleFunc("/getUsers", getUsers)
    fmt.Println("Server starting on port 8080...")
    http.ListenAndServe(":8080", nil)
}