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

О разделе

Go — компилируемый язык с простым синтаксисом, встроенной конкурентностью (goroutine, channel) и быстрой сборкой бинарника. Часто выбирают для CLI, микросервисов, DevOps-утилит и высоконагруженного backend.

Сначала: Что такое код и как он работает — общая база — код, блок кода, компиляция и интерпретация, исходный, байт- и машинный код; в этом разделе — синтаксис и особенности языка. Память и GC — сравнение Java, Python и Go, практика — основы Go.

Горутины и модель CSP

Go реализует легковесные потоки (горутины) и обмен через каналы — вариант передачи сообщений.

Теория — процессы и потоки; практика — синтаксис и конкурентность, паттерны.

Горутины и каналы в синтаксисе Go сначала разбираются псевдокодом, затем — на Go.


Что в разделе

Статьи по синтаксису, модулям (go mod), ошибкам, тестам и вебу (Gin). Модель ошибок без try/catch — сначала теория, затем Обработка ошибок в Go. Ниже — короткий маршрут; на старте не смешивайте с Java или Python — путаются модели ошибок и работа с пакетами.


С чего начать

ШагМатериалЗачем
1Основы языкаТипы, main, инструменты
1aGoLand — IDE для разработки на GoУстановка, интерфейс, отладка (рекомендуется перед первой программой)
1bpackage main и func main()Исполняемый пакет vs библиотека
2Первая программаgo run, структура проекта
3GinHTTP API после базы
4REST обзорКонтракты и маршруты
СУБД из GoPostgreSQL, MySQL, SQLite, SQL Server

Углублённый маршрут (после базы)

Сквозной путь от CLI к внутренним RPC:

ШагМатериалЗачем
1GoEmailVerifier — практикумCLI: DNS, SMTP, flag, тесты
1aПрактикум GoHTMLParserCLI — HTTP, парсинг HTML, internal/, тесты
2CLI на cobra и viperПодкоманды, конфиг, embed
3Веб на stdlibnet/http до фреймворков
4GinREST API
5gRPC в GoProtobuf между сервисами
6ДженерикиОбобщённые алгоритмы
7Профилирование и fuzzpprof, trace, benchstat
8WebSocketPush и live-данные
9TCP и UNIX-сокетыТранспорт ниже HTTP

Зачем этот раздел

Подборка по Go в энциклопедии: синтаксис, первая программа и смежные темы. Выберите один язык для старта, пройдите маршрут до первой рабочей программы — затем переходите к следующему языку или стеку.


С чего начать

ШагМатериалЗачем
1Первая программаЗапуск и синтаксис
2GinУглубление
3REST обзорУглубление

Частые ошибки при старте

ОшибкаЧто делать
Прыжки между языкамиЗакройте одну "первую программу", потом сравнивайте
Код без запускаВыполните пример локально
Сразу большой фреймворкСначала база раздела, потом REST/UI

Что попробовать

  1. Шаг 1 из таблицы.
  2. Три непонятных термина — найдите статьи в оглавлении раздела.
  3. Другой язык — только после своей рабочей первой программы.


Основа по протоколу

Базовый разбор HTTP и HTTPS находится в отдельной статье — HTTP как основа веб-интеграций.


В подборках

Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:

Бэкенд и серверная разработкаKotlin — о разделе, Ruby — о разделе, Smalltalk — о разделе, Groovy — о разделе, PHP — о разделе, Rust — о разделе.