Final project#2#1
Conversation
ivannizh
left a comment
There was a problem hiding this comment.
Михаил, привет!
Хорошая выпускная работа, всё работает и тесты проходят.
Код написан хорошо, критических замечаний нет, но хорошо бы поправить проблему с потерей ошибок.
Также можно почитать и попробовать переделать код на слои, можно прочитать про организацию кода в Go, например, на Хабре.
Работу принимаю и желаю успехов в дальнейшем изучении и применении Go!
There was a problem hiding this comment.
Бинари лучше не класть в репозиторий, они занимают много места, от них потом не избавишься, а толку от них мало.
|
|
||
| http.HandleFunc("/api/nextdate", nextDateHandler) | ||
| http.HandleFunc("/api/task", func(w http.ResponseWriter, r *http.Request) { | ||
| if r.Method == http.MethodPost { |
There was a problem hiding this comment.
Немного перегружен main
Обработку типа запроса можно делать в самой функции, а для такого ветвления можно было сделать отдельную функцию.
Так же проще этот if else заменить на switch case
| } | ||
| }) | ||
|
|
||
| log.Printf("Server running http://localhost%s\n", port) |
| http.Error(w, `{"error":"Не указан ID задачи"}`, http.StatusBadRequest) | ||
| } | ||
| } else if r.Method == http.MethodPut { | ||
| handleUpdateTask(w, r, db) |
There was a problem hiding this comment.
Правильно, что передаешь один коннект к БД во все хендлеры, а то часто студенты на каждый запрос создают коннект.
| var task Task | ||
|
|
||
| if err := json.NewDecoder(r.Body).Decode(&task); err != nil { | ||
| http.Error(w, `{"error":"Ошибка десериализации JSON"}`, http.StatusBadRequest) |
There was a problem hiding this comment.
Теряешь сообщение об ошибки, нужно либо клиенту его вернуть, либо в лог вывести. Второй вариант лучше
| } | ||
|
|
||
| tasks = append(tasks, task) | ||
| } |
There was a problem hiding this comment.
После цикла нужно проверить курсор на наличие ошибок
No description provided.