Skip to content

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