Самоучитель voidlearn: Go, Git, DevOps и собеседования для бэкенд-разработчика
Бесплатный самоучитель для бэкенд-разработчика: язык Go изнутри, конкурентность, память и GC, базы данных, Redis, брокеры, сети, Git, Linux, Docker, Kubernetes, CI/CD и вопросы с собеседований с разбором.
Язык, конкурентность, память, данные, сети и архитектура.
- Go: язык — В этой теме ты разберёшь базовые значения Go и научишься выводить поведение программы из типов, правил копирования и времени вычисления.
- Конкурентность — В этой теме ты научишься связывать конкурентный код с его синхронизацией: кто владеет данными, кто ждёт и как работа завершается.
- Память, GC и производительность — В этой теме ты разберёшь жизненный цикл памяти и научишься выбирать измерение, которое отвечает на конкретный вопрос о расходе ресурсов.
- Ошибки и отказоустойчивость кода — В этой теме ты научишься сохранять смысл ошибки через границы функций и выбирать реакцию на сбой по его последствиям.
- Тестирование — В этой теме ты научишься выбирать уровень теста и строить проверки, которые ловят ошибки контракта, изоляции и окружения.
- Базы данных — Разберись, как СУБД превращает SQL в план, хранит версии строк и защищает транзакции от гонок. Научись читать план запроса, выбирать индексы и работать с пулом соединений из Go, а затем оценивать…
- Кэширование и Redis — Разбери, где кэш помогает, чем за него платит система и как он ведёт себя при гонках и сбоях. Пройди от cache-aside и структур Redis до stampede, персистентности и блокировок, чтобы выбирать подход…
- Брокеры сообщений и асинхронность — Пойми общие гарантии брокеров, затем сравни Kafka как сохраняемый лог с RabbitMQ как маршрутизатором очередей. Научись связывать публикацию, транзакцию БД, ack, повторы и дедупликацию так, чтобы…
- Сети — Проследи путь запроса от имени хоста до сетевого соединения и HTTP-ответа: DNS, IP, transport, TLS и протокол приложения выполняют разные задачи. Разбери, что сеть гарантирует, где появляются…
- Веб-сервисы на Go — Спроектируй внешний контракт и путь запроса в Go-сервисе: от HTTP-метода, кодов и ошибок до middleware, таймаутов и остановки процесса. Разбери аутентификацию и реальные границы защиты от инъекций…
- Архитектура и системный дизайн — Выбирай архитектурные границы по конкретным причинам изменения и отказа. Разбери направление зависимостей, монолит и микросервисы, сетевые контракты, распределённые гарантии и ход системного дизайна…
Где живёт сервис: система, контейнеры, кластер, выкатка и наблюдаемость.
- Linux и ОС — Разберёшь, какие части работы сервиса видит Go, а какие принадлежат ядру: процессы и потоки, память, файлы, сеть и сигналы. Научишься переходить от симптома к проверяемым данным Linux и безопасно…
- Docker — Разберёшь, как Docker собирает образ из слоёв и запускает контейнер как ограниченный процесс на общем ядре. Научишься читать кэш сборки, выбирать базовый образ и проверять сеть, хранилище, лимиты и…
- Kubernetes — Разберёшь, как Kubernetes приводит фактическое состояние к описанному в API и какие решения остаются за приложением. Проследишь путь от Pod и ресурсов до выкатки, DNS, сетевых политик и прав доступа.
- CI/CD и деплой — Проследишь путь от коммита до запущенного сервиса: проверки, сборка, стратегия выкладки и контроль артефакта. Разберёшь граф GitLab CI, миграции без отката схемы и проверку образа по digest.
- Observability — Научишься идти от сигнала о проблеме к запросу и причине: через метрики, логи и трейсы. Разберёшь SLI и SLO, PromQL, алерты и настройку OpenTelemetry в Go-сервисе.
Полный экскурс по git и работе с ним.
- Как устроен Git — Разберёшь Git снизу вверх: объекты содержимого, ссылки на коммиты, индекс и хранение истории. После этого команды чтения и изменения истории можно объяснять через конкретные объекты и указатели.
- Повседневная работа — Разберёшь повседневную работу через индекс, рабочую копию и историю: как собирать коммиты по частям, сохранять незаконченные правки и находить источник изменения. Потренируешься выбирать команду по…
- Ветки, слияния и rebase — Разберёшь, как Git сводит ветки, останавливается на конфликте и переписывает коммиты при rebase. Потренируешься читать общий предок, стадии index и последствия выбора merge, rebase или squash.
- Удалённые репозитории и работа в команде — Разберёшь обмен с remote, командную работу вокруг merge request и выпуск версий для Go-модулей. Потренируешься читать tracking refs и выбирать безопасный способ обновить ветку или опубликованный…
- Отмена, восстановление и расследование — Разберёшь, когда переписать локальную историю, когда добавить обратный commit и как вернуть потерянные ссылки через reflog и fsck. Научишься отличать восстанавливаемые Git-объекты от секретов…