Домашние задания с проверкой
Изучишь основы языка Go для бэкенд-разработки. Научишься писать более сложный код.
Функциональное программирование
Работа с файловой системой: чтение, запись, создание и удаление файлов. Обработка JSON-данных, паттерны обработки больших файлов и потоковая обработка данных.
Юнит-тестирование и бенчмаркинг
Unit-тесты, пакет testing, создание бенчмарков для измерения производительности кода, продвинутые техники тестирования: моки, table-driven тесты, тестирование интерфейсов.
Объектно-ориентированное программирование в Go, концепция интерфейсов как контрактов поведения, неявная реализация интерфейсов, полиморфизм для создания гибкого и расширяемого кода, стандартные интерфейсы Go.
Структуры данных: срезы, карты
Коллекции, внутреннее устройство срезов, использование карт, вложенные структуры данных, встраивание типов для создания сложных моделей данных.
Функции, defer, panic, recover
Элементы функционального программирования в Go: функции как значения, замыкания, анонимные функции. Механизмы обработки ошибок через defer, panic и recover, создание собственных типов ошибок и паттерны их обработки в реальных приложениях.
Типы, указатели и управление памятью
Строгая типизация, обеспечение типобезопасности, указатели, escape-анализ компилятора, код, оптимизированный для производительности.
Структура Go проектов и Go Modules
Профессиональная организация кода, правильная структура проектов, соглашения по именованию пакетов и файлов, система Go Modules, подключение внешних библиотек, основы работы с Git.