Go
Golang
Что это такое
Go — компилируемый язык, вокруг которого стоят три свойства: быстрая компиляция в один статический бинарный файл, конкурентность, встроенная в язык, а не добавленная библиотекой, и намеренно небольшой набор возможностей, а стандартная библиотека при этом включает HTTP-сервер, кодировщик JSON и средство запуска тестов, поэтому службу часто удаётся написать вообще без сторонних зависимостей.
Почему это важно
Для инфраструктуры и сетевых служб такое сочетание подходит на редкость хорошо: один бинарный файл, для которого не нужно ставить среду выполнения, делает развёртывание тривиальным, а образы контейнеров — маленькими, поэтому значительная часть облачного инструментария вокруг контейнеров и оркестрации написана именно на Go. Быстрая компиляция держит цикл «правка — запуск» коротким; маленький же набор возможностей приводит к тому, что код на Go у разных людей выглядит похоже и новый человек в команде читает службу уже в первый день. Однако простота здесь навязана: обобщённые абстракции и выразительные средства типов ограничены намеренно, и некоторые задачи получаются многословнее, чем в других языках.
Что в этом треке
- Инструментарий (05-backend-data/05-go/01-the-toolchain) — форматирование, сборка, тестирование и управление зависимостями: один стандартный набор команд.
- Конкурентность (05-backend-data/05-go/02-concurrency) — горутины, каналы и модель, которая позволяет пользоваться ими безопасно.
Предварительные требования
Нет.
Что читать дальше
- Программирование на Python (05-backend-data/03-python-programming) — альтернатива для скриптов; на Python часто пишут обвязку вокруг.
- Java (05-backend-data/04-java) — другой компилируемый язык, но со средой выполнения и экосистемой куда больше.
- Docker (06-cloud-devops/06-docker) — здесь один статический бинарный файл даёт самый маленький и простой образ контейнера.