Что важно знать
- С Go 1.22 стандартный
http.ServeMuxумеет методы и параметры пути. - Middleware — функции-обёртки над
http.Handler. database/sqlили pgx, пул соединений.- Graceful shutdown:
server.Shutdown(ctx)по сигналу.
net/http, маршрутизация, middleware, работа с базой и graceful shutdown.
http.ServeMux умеет методы и параметры пути.http.Handler.database/sql или pgx, пул соединений.server.Shutdown(ctx) по сигналу.Практика. Сделать API заказов на стандартной библиотеке с тестами через httptest.
Практика. Добавить middleware, работу с PostgreSQL через pgx, миграции и корректную остановку по SIGTERM.
Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.
Context переносит отмену, дедлайн и значения запроса через цепочку вызовов и горутин. Создают от входящего запроса, передают первым аргументом во все функции с вводом-выводом. WithTimeout/WithCancel порождают дочерний контекст; отмена родителя отменяет всех…
Полный разборТесты — функции TestXxx(t testing.T) в файлах _test.go, запуск go test ./.... Идиома — табличные тесты: срез случаев и t.Run для каждого. Зависимости подменяют через маленькие интерфейсы и рукописные фейки. Бенчмарки — BenchmarkXxx(b testing.B), go test…
Полный разборОбработчик — всё, что реализует http.Handler (метод ServeHTTP(w, r)), чаще — функция func(w http.ResponseWriter, r http.Request). Маршруты регистрируют в http.ServeMux; с Go 1.22 он понимает метод и параметры пути: mux.HandleFunc("GET /orders/{id}", h)…
Полный разборhttp.ListenAndServe по умолчанию без таймаутов: медленные клиенты держат соединения и горутины бесконечно. Нужен свой http.Server с ReadHeaderTimeout, ReadTimeout, WriteTimeout, IdleTimeout. Исходящий http.Client тоже без таймаута по умолчанию — задавать…
Полный разборГорутина — лёгкий поток, управляемый рантаймом Go: стартовый стек ~2 КБ (растёт по необходимости), создание и переключение в разы дешевле потока ОС — можно держать сотни тысяч. Планировщик M:N распределяет горутины (G) по потокам ОС (M) через логические…
Полный разборПосле собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.