Перейти к основному содержимому

Чек-лист самопроверки

Разработчику Архитектору

Чек-лист самопроверки

  1. Что такое Go и для каких задач он предназначен?
  2. Кто создал язык Go и когда он был представлен?
  3. Какие ключевые принципы легли в основу дизайна Go?
  4. Как происходит компиляция Go-программы?
  5. Что такое GOPATH и чем он отличается от Go Modules?
  6. Как инициализировать модуль в Go?
  7. Как добавить внешнюю зависимость в проект?
  8. Какие есть примитивные типы данных в Go?
  9. В чём разница между int, int32, int64?
  10. Как объявляются переменные (var, :=)?
  11. Что такое нулевые значения в Go?
  12. Как работают константы и iota?
  13. Какие есть составные типы (array, slice, map, struct)?
  14. В чём разница между массивом и срезом?
  15. Как создать и изменить срез?
  16. Что такое ёмкость (cap) и длина (len) среза?
  17. Как работают карты (map) и как их инициализировать?
  18. Что такое структуры (struct) и как к ним обращаться?
  19. Можно ли определять методы у структур?
  20. Поддерживает ли Go наследование? Если нет, то как достигается повторное использование кода?
  21. Что такое встраивание (embedding) и как оно работает?
  22. Как работают указатели в Go и чем они отличаются от C++?
  23. Что такое интерфейсы в Go и как они реализуются?
  24. Может ли тип реализовывать интерфейс неявно?
  25. Что такое пустой интерфейс (interface{}) и когда его стоит использовать?
  26. Как работают функции: параметры, возвращаемые значения, именованные результаты?
  27. Может ли функция возвращать несколько значений?
  28. Как обрабатываются ошибки в Go?
  29. Что такое error и как создавать пользовательские ошибки?
  30. Что такое defer и в каком порядке выполняются отложенные вызовы?
  31. Как работают паника (panic) и восстановление (recover)?
  32. Что такое горутины и как их запускать?
  33. Что такое каналы (channel) и какие виды бывают (буферизованные/небуферизованные)?
  34. Как закрыть канал и как проверить, закрыт ли он?
  35. Что такое select и как он используется с каналами?
  36. Как избежать состояния гонки при работе с общими данными?
  37. Какие примитивы синхронизации есть в пакете sync (Mutex, WaitGroup, Once)?
  38. Что такое пакет и как организована структура проекта?
  39. Как писать unit-тесты в Go?
  40. Как запустить тесты и получить покрытие кода?
  41. Что такое примеры (Example-функции) и как они используются?
  42. Как работает маршрутизация HTTP-запросов во встроенном пакете net/http?
  43. Как запустить HTTP-сервер?
  44. Как обрабатывать JSON в Go (encoding/json)?
  45. Как сериализовать и десериализовать структуры?
  46. Как работают теги в структурах (json:"name")?
  47. Что такое контекст (context.Context) и зачем он нужен?
  48. Как передавать отмену операции или таймаут через контекст?
  49. Как кросскомпилировать Go-приложение под другую ОС или архитектуру?
  50. Какие инструменты входят в стандартный toolchain (go build, go run, go mod, go test, gofmt)?

Освоение главы0%