- Регистрация
- 26.05.2022
- Сообщения
- 26 724
- Реакции
- 187
- Баллы
- 63
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
Сервер на Go (обработка запросов, context, middleware)
Поднимаем сервер, роутинг, первый 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/
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
Сервер на Go (обработка запросов, context, middleware)
Поднимаем сервер, роутинг, первый 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/