Основы языка: Go
Основы языка Go для backend-разработчика с нуля: синтаксис и типы, структуры и методы, интерфейсы, срезы и map, ошибки, горутины и каналы, указатели, инструменты. Чисто язык, без HTTP.
Первая фаза программы — сам язык Go, до backend-обвязки (для прода смотри раздел /go/). С нуля и простыми словами: синтаксис и нулевые значения, структуры и методы, интерфейсы с неявной реализацией, срезы и map с их граблями, ошибки как значения, горутины и каналы, указатели и инструменты. Читать лучше по порядку.
- Синтаксис и типы Go: первое знакомство — Пакеты, func main, var и :=, базовые типы, нулевые значения, константы, if/for/switch и почему в Go нет тернарного оператора — основы языка простыми словами.
- Структуры и методы в Go: данные, поведение и композиция — Как в Go устроены struct, их поля и инициализация, методы с value и pointer receiver, и почему вместо наследования здесь используют встраивание структур.
- Интерфейсы Go: маленькие, неявные, по делу — Как работают интерфейсы в Go: неявная реализация, маленькие контракты, пустой any, утверждение типа и type switch, и почему стоит принимать интерфейсы.
- Срезы и map в Go: как устроены и где грабли — Чем массив отличается от среза, что такое len и cap, как работает append и почему два среза могут делить один массив. Плюс map: чтение с ok и range.
- Ошибки в Go: error как значение — Как Go работает с ошибками без исключений: error — это обычное значение. Идиома if err != nil, создание и обёртывание ошибок, errors.Is/As, panic/recover.
- Горутины и каналы в Go: основы конкурентности — Как Go запускает тысячи задач одновременно: горутины через go func, обмен данными через каналы, буферизация, select и WaitGroup — простыми словами.
- Указатели в Go: & и *, значения и ссылки — Указатели в Go простыми словами: что делают & и *, зачем нужны, когда передавать значение, а когда указатель, что такое nil и почему нет арифметики указателей.
- Инструменты Go: модули, сборка, форматирование — Как устроен go-инструментарий: модули и go.mod, команды build/run/test, форматирование gofmt и проверка vet. Что пришло на смену GOPATH и зачем.