Онлайн-курс для Go-разработчиков За 8 недель вы освоите подходы и практики ведущих инженеров "бигтеха" и научитесь создавать масштабируемые и отказоустойчивые системы, готовые к высоким нагрузкам. Курс построен на практике и реальных кейсах крупных технологичных компаний. Требования: Опыт коммерческой разработки на Go от 1 года Уверенное знание Go: работа с пакетами, стандартной библиотекой, понимание основ concurrency в Go Опыт работы с базами данных Базовый опыт написания тестов и отладки кода Чем займемся на курсе: Углубимся в архитектуру, конкурентность, оптимизацию кода и работу с высокими нагрузками, а также разберём CI/CD, контейнеризацию и применение AI в разработке. Научимся проектировать и разрабатывать масштабируемые программные системы, предназначенные для эффективной работы под высокими нагрузками в инфраструктуре "бигтеха". Курс будет полезен для: Backend-разработчиков на Go, которые хотят глубже разобраться в архитектуре, конкурентности и оптимизации кода Software-инженеров, которым нужно проектировать масштабируемые и отказоустойчивые системы, работающие под высокой нагрузкой Разработчиков микросервисов, которым важно эффективно использовать Go в распределённых системах, работать с контейнеризацией и CI/CD Архитекторов, которые хотят научиться проектировать поддерживаемые и маcштабируемые приложения на Go Разработчиков, интересующихся AI, которые хотят интегрировать ИИ в свои проекты и автоматизировать рутинные задачи с помощью нейросетей Разработчиков из FinTech, AdTech, E-commerce и других высоконагруженных сфер, где критичны скорость работы, оптимизация и надёжность приложений Программа и формат Неделя 1 Занятие 1. Интерфейсы и типы данных Интерфейсы Go Приведение типов и type switch Рефлекси Интерфейсы как элемент архитектуры приложения Домашнее задание Занятие 2. Всё про обработку ошибок Ошибки в Go, как их задумали авторы языка Собственные типы данных для ошибок Транслирование текста ошибок в журнал и пользователям Паника и восстановление Ошибки в асинхронном коде Ошибки при работе с потоком данных и очередями Домашнее задание Неделя 2 Занятие 3. Обобщенное программирование (Generics) в Go Идея обобщённого программирования Базовые возможности и типовые примеры Использование дженериков в шаблонах конкурентного кода и для решения типовых задач Обобщённые структуры данных Домашнее задание Занятие 4. Конкурентность: продвинутые темы асинхронного кода Контекст Шаблоны конкурентного кода для решения типовых задач Гонка, отладка, правильная работа с блокировками (Mutex) Домашнее задание Неделя 3 Занятие 5. Go + Искусственный интеллект (GPT) Введение в генеративные модели искусственного интеллекта Использовании ИИ в процессе продвинутого изучения языка Подключение публичного или локального ИИ-помощника к среде разработки Использование ИИ при написании кода ИИ в повседневных задачах программиста Домашнее задание Занятие 6. Тестирование и отладка Методология тестирования Разнообразие модульных тестов Продвинутые методики тестирования Отладка кода, продвинутые механики отладки Домашнее задание Неделя 4 Неделя для работы над заданиями Неделя 5 Занятие 7. Производительность, оптимизация кода, готовность к высоким нагрузкам Профилирование Go приложений Управление памятью и оптимизация Лучшие практики для высокой производительности Домашнее задание Занятие 8. Архитектура приложения и шаблоны проектирования Проектирование масштабируемых Go-приложений Общие паттерны проектирования: singleton, factory, observer Лучшие практики организации кода в Go Домашнее задание Неделя 6 Занятие 9. Мониторинг (Observability) и журналы приложения Мониторинг микросервисов Лучшие практики логирования Инструменты: Prometheus, Grafana, ELK stack Домашнее задание Занятие 10. Работа приложения в инфраструктуре технологичной компании Особенности разработки приложений для облачной среды Контейнеризация Оркестрация приложения в среде Kubernetes CI/CD и доставка приложения Домашнее задание Неделя 7 Итоговый проект + блок вопросы-ответы Разработаем полноценное приложение - Геокодер, позволяющее искать пространственные объекты (как на Яндекс.Картах) Применим полученные знания по продвинутым возможностям языка Будем использовать реляционные и нереляционные БД Сделаем сервис готовым к высоким нагрузкам Поговорим о различных алгоритмах и структурах данных, использующихся в поиске информации Сделаем приложение готовым к инфраструктуре "бигтеха" Неделя 8 Неделя для работы над проектом Автор и ведущий курса: Дмитрий Титов Лидер направления разработки "Геосервисы" в Wildberries ex-VK / ex-МТС О курсе: Старт 15 апреля Продолжительность 8 недель Вебинары 2 раза в неделю Итоговый проект