За 2 місяці ви освоїте професію на рівні middle-спеціаліста
Ми даємо багато матеріалу і складні домашки, які відчутно піднімуть ваш рівень і допоможуть впевнено використовувати мову в роботі.
1 тиждень. Введення в Golang
розберетеся з основами мови:
- Змінні, базові типи даних
- Змінні, складові типи даних
- Керуючі конструкції
- Основи функцій
- Функція як об'єкт першого класу, анонімні функції
- Відкладене виконання та обробка паніки
- Основи роботи зі структурами
- Методи структур
- Пакети і область видимості
- Основи роботи з інтерфейсами
- Порожній інтерфейс
- Композиція інтерфейсів
- Написання програми унікалізації
- Написання тестів для програми унікалізації
Освоїте головну особливість мови. асинхронність і простота-ось що робить Go таким потужним інструментом.
- Методи обробки запитів і плюси неблокуючого підходу
- Горутини-легковагі процеси
- Канали-передаємо дані між горутинами
- Мультиплексування каналів через оператор select
- Таймери і таймаути
- Пакет context і скасування виконання
- Асинхронне отримання даних
• sync.Waitgroup-очікування завершення роботи
- Обмеження по ресурсах
- Ситуація гонки на прикладі конкурентного запису в map
• sync.Atomic
3 тиждень. Робота з динамічними даними і продуктивність
Навчіться поводитися з динамічними даними і працювати з JSON.
* Покриття коду тестами
• XML
4 тиждень. Основи HTTP
запустіть веб-сервер, обробите запити і отримаєте дані. а ще навчитеся збирати метрики продуктивності з працюючого сервера.
ознайомитеся з найпоширенішими компонентами при розробці веб-сервісів: роутери, веб-сервери, фреймворки і утиліти.
Навчіться працювати з основною функцією веб-сервера-витяг і завантаження даних.
* Memcached-приклад з тегованим кешем
• Redis
• Message broker - RabbitMQ
• Document store - MongoDB
7 тиждень. Микросервисы
Микросервисы – популярний патерн боротьби зі складністю. У Go мікросервіси можна робити відразу з коробки. А ще ви познайомитеся з фреймворком gRPC.
• Що таке мікросервіс, плюси і мінуси
зрозумієте, як конфігурувати і моніторити сервіси, а також інтегруєте код на C в Go.
* Локальний конфіг-flags, json, ldflags
• Віддалений конфіг, використовуємо Consul
- Розпаковуємо JSON
- Нюанси роботи з JSON
- Пакет reflect-Працюємо з динамікою в рантаймі
- Кодогенерація-програма пише програму
- Система бенчмарків Go
- Профілювання через pprof
* Покриття коду тестами
• XML
4 тиждень. Основи HTTP
запустіть веб-сервер, обробите запити і отримаєте дані. а ще навчитеся збирати метрики продуктивності з працюючого сервера.
- Слухаємо TCP-сокет з використанням пакету net
- Обслуговування HTTP-запитів
- Робота з параметрами запитів
- Обслуговування статичних даних
- Завантаження файлів форми
- Http-запити в зовнішні сервіси
- Тестування HTTP-запитів і відповідей
- Inline-шаблони і шаблони з файлів
- Виклик методів і функцій з шаблонів
- Профілювання через pprof
- Пошук витоку горутин
- Трасування поведінки сервісу
- Приклад з telegram-ботом
ознайомитеся з найпоширенішими компонентами при розробці веб-сервісів: роутери, веб-сервери, фреймворки і утиліти.
- Основні компоненти веб-сервісу
- Основи middleware для HTTP
- Обробка помилок
- Роутери-gorilla/mux, httprouter
- Продуктивний веб-сервер fasthttp
- Парсинг параметрів в структуру і валідація
- Фреймворк Beego
- Фреймворк gin
- Стандартний пакет log, zap, logrus
- Компільовані шаблони
- Утиліта dep
Навчіться працювати з основною функцією веб-сервера-витяг і завантаження даних.
- database/sql і mysql
- GORM-застосування reflect а для SQL
* Memcached-приклад з тегованим кешем
• Redis
• Message broker - RabbitMQ
• Document store - MongoDB
7 тиждень. Микросервисы
Микросервисы – популярний патерн боротьби зі складністю. У Go мікросервіси можна робити відразу з коробки. А ще ви познайомитеся з фреймворком gRPC.
• Що таке мікросервіс, плюси і мінуси
- Мікросервіси всередині моноліту
- net/rpc і формат gob
- Формат серіалізації protobuf
- Робимо сервіс на gRPC
- Просунута робота з gRPC
- Стрімінг повідомлень
- Балансування навантаження і використання Consul
- grpc-gateway-отримуємо доступ до grpc-сервісів через HTTP
- Swagger-генеруємо клієнт і сервер з документації до апі
зрозумієте, як конфігурувати і моніторити сервіси, а також інтегруєте код на C в Go.
* Локальний конфіг-flags, json, ldflags
• Віддалений конфіг, використовуємо Consul
- Навіщо потрібен моніторинг і що моніторити
- Відправка таймінгів в зовнішню систему
- Пакет Unsafe
- CGO-інтеграція коду на Сі
https://privatelink.de/?https://golangcourse.ru