Golang - это:
1. 12 место по популярности в мире средиязыков программирования
*по данным рейтинга TIOBE
2. 200 000 р.- Средняя зарплата Golang-разработчика
3. 1800 вакансий на территории РФ
*данные взяты с сайта hh.ru
Кому подойдет практикум:
- Разработчики
- Специалисты по тестированию
- Системные архитекторы и аналитики
- DevOps-инженеры
Практикум Golang by REBRAIN:
- 90% практики, 70+ рабочих задач
- Быстрая проверка заданий.
- Максимальное время проверки - 24 часа
- Эффективность. Вы своими руками сделаете задания, актуальные для разработчика на Go
- Выполняете реальные кейсы разработчика на Go
- Чат с составителями практикума и действующими разработчиками
- Смотрите видеоматериалы в удобное для вас время
- Практикуйтесь в удобное для вас время
- Быстрая проверка заданий
- Живые мастер-классы от действующих разработчиков
- Личная проверка заданий экспертами. Высылаем подробные объяснения к каждому заданию
Спойлер: Пример задания (легкий)
1. Установите Go и настройте рабочее пространство.
2. Ознакомьтесь со стилем написания кода на Go (code style) и утилитой для форматирования gofmt.
3. Создайте файл main.go и напишите код, который выводит приветствие и текущие дату и время в виде строки ДД.ММ.ГГГГ ЧЧ:ММ.
- Для вывода строки нужно воспользоваться стандартным пакетом fmt.
- Для получения даты и форматирования потребуется функция из стандартного пакета time.
4. Подробно концепция пакетов и работа с ними будут рассмотрены позже. На данном этапе следует ознакомиться с функциональностью указанных пакетов.
5. Скомпилируйте ваш код и запустите полученный бинарный файл. В качестве ответа пришлите исходный код программы.
Спойлер: Пример задания (средний)
1. Создайте в своем проекте module04 из ветки module04_01 - ветку module04_02.
2. Предположим, что теперь нам необходимо не позволить внешнему коду предоставлять нам реализацию свойства CalcDiscount, а жестко задать реализацию в привязке к структуре Customer, для этого сделайте CalcDiscount методом, а не свойством структуры Customer:
- Логику оставить, как была в функции CalcDiscount.
- Константу DEFAULT_DISCOUNT перенести в пакет internal.
- Свойство Discount сделать нередактируемым вне пакета internal.
3. В ответе пришлите ссылку на МР ветки module04_02 с нужными правками в ветку master своего проекта.
Спойлер: Программа обучения
Основы языка
- Переменные, типы данных
- Указатели в Go
- Слайсы
- Map’ы в Go
- Конструкции языка и функции
- Defer - обработка выхода из функции
- Panic и их обработка
- Обработка ошибок
- Области видимости, инициализация через init
- Работа с зависимостями, go mod
- Версионирование пакетов
- LayOut проекта
- Структуры в Go
- Методы структур
- Интерфейсы и утиная типизация
- Пустой интерфейс
- Композитное наследование
- Goroutines
- Goshedule, переменная окружения GOMAXPROCS
- Race condition
- Атомарность операций и пакет sync
- Взаимодействие через каналы
- Мультиплексирование каналов
- Пакет context и канал отмены
- sync.Waitgroup
- Unit-тестирование в Go
- Table driven test vs closure driven tests
- Test coverage
- Benchmarks
- Профилирование с pprof
- Рефлексия
- AST + Templates
- Решение проблем рефлексии
- Враппинг
- Конфигурирование соединений (max_connections, maxIdle и т.д.)
- Нативные средства psql - переопределение пакета через init
- Работа с базой на примере использования GORM
- Поднимаем сервер, роутинг, первый handler
- Работа с параметрами
- Роутер Gorilla
- Роутер Chi
- Middleware
- Контекст запроса
- go proxy, go mod
- Сборка с использованием Idflags -X
- Сборка с использованием тегов go build –tags. Создание билда с разной конфигурацией
- Запуск с использованием аргументов
- Сборка для разных ОС
- Пакет unsafe
- Cgo
- Заворачиваем наш сервис в образ
- Поднимаем контейнер из образа
- Подтягиваем конфигурации из key-value store
- Синхронное взаимодействие через REST
- gRPC и brotobuf
- Генерация gRPC-сервера
- Генерация gRPC-клиента
- Interceptors
- Асинхронное взаимодействие (самописный брокер или kafka)
- Пишем sub-сервис
- Пишем pub-сервис
- in-memory хранение
- Redis
- Самописный LRU cache
- Уровни логирования
- Формат логов
- Пишем логи (Greylog/ELK)
- Сквозное логирование
- Метрики (Prometheus + Graphana)
- Graceful обработка сигналов
- Healthcheck
Продажник: rebrainme.com/golang/