Go for Web
Основы программирования на Golang
Введение
- История и основные принципы языка Go
- Установка и настройка окружения разработки
- Создание простейшего приложения "Hello, World!"
- Компиляция и запуск программы
- Настройка среды разработки
Базовые конструкции языка
- Основные типы данных и их использование
- Работа со строками
- Понятие пакетов
- Определение функций
- Объявление переменных и констант
- Цикл for
- Условный оператор if
- Конструкция switch
- Отложенное выполнение операций (defer)
Сложные типы данных и структуры
- Указатели и их использование
- Работа с массивами
- Использование срезов
- Работа с картами (maps)
Объектно-ориентированные возможности
- Определение структур и их методов
- Работа с указателями и получателями
- Использование интерфейсов
- Обработка ошибок в Go
Конкурентное программирование
- Принципы работы с Go-рутинами
- Использование каналов (channels)
- Обеспечение безопасности доступа к данным с помощью Mutex
- Распространенные ошибки и методы их предотвращения
Основы оптимизации и управления памятью
- Принципы выделения и управления памятью
- Работа со сборщиком мусора
Типовые задачи и инструменты языка
Работа с проектами и инструментами
- Основы работы с Git и GitHub
- Создание Makefile
- Управление зависимостями с помощью Go mod
- Использование инструментов Lint и Fmt для поддержания кода
- Работа с сетью: загрузка данных из сети
Работа с файлами и внешними ресурсами
- Запись и чтение текстовых файлов
- Работа с форматом JSON
Разработка веб-приложений
- Создание простого HTTP сервера
- Разработка RESTful API
- Использование фреймворка Gin
Работа с базами данных
- Работа с RDBMS на примере PostgreSQL
- Работа с NoSQL DB на примере Redis
Тестирование
- Unit-тестирование
- Интеграционное тестирование
Build and Deployment
- Основы CI/CD
- Основы Docker
Оптимизация и хорошие практики
- Профилирование производительности
- Рекомендации по хорошим практикам разработки на Go