gRPC в GOlang. Углубленный курс по gRPC

Bot

Администратор
Команда форума
23 Янв 2020
209,144
3,151
113
269049.jpg

1. Введение в синтаксис protobuf и экосистему gRPC
  • Protobuf
  • gRPC
  • Protoc
  • Vendoring
  • Postman / Evans
  • Reflection
  • CodeGeneration
  • Buf.gen
  • Env config
  • Makefile
  • PostgreSQL
  • Docker
Результат: знаешь все плюсы и минусы протокола передачи данных gRPC и понимаешь, чем он отличается от REST — популярного подхода построения API
Бонус: реализуешь свой первый gRPC сервер, gRPC клиент и организуешь общение между ними.

2. Архитектурные вопросы построения проекта

  • Clean code
  • Clean architecture
  • Patterns: DI, Adaptor, MVC
Результат: перепишешь часть существующего кода на основе популярных архитектурных подходов, увеличишь гибкость и расширяемость своего проекта.
3. Дополнительные опции экосистемы gRPC

  • gRPC Gateway
  • Protogen-Validate
  • Swagger
  • Type of fields: oneof и fieldMask
  • Goroutines
  • http
Результат: знаешь все опции экосистемы gRPC, понимаешь, зачем они нужны и как их применять для более широкого и удобного использования сервиса. Знаешь необычные типы данных в protobuf.
4. Безопасность в gRPC

  • TLS
  • Authentication / authorization
  • JWT
  • Interceptors
  • Public key / private key
  • Security certificate

Результат
: умеешь обеспечивать безопасность на транспортном уровне средствами TLS, знаешь, как разработать аутентификацию и авторизацию пользователей на уровне топовых IT-компаний.
5. Паттерны и полезные практики в gRPC
  • Timeout
  • Retry
  • Circuit breaker
  • Load balancing
  • Система обработки ошибок в gRPC
Результат
: знаешь и умеешь применять лучшие практики gRPC при взаимодействии по сети. Умеешь балансировать трафик на стороне клиента. Умеешь обрабатывать ошибки gPRC, которые существенно отличаются от привычного всем http-протокола. Создаешь масштабируемый сервис с качественной информацией для мониторинга за его состоянием.
6. Потоковая передача данных и тестирование сервиса

  • gRPC Stream
  • Unit tests
  • Minimock
  • Table tests

Результат
: применишь стриминговые endpoint’ы в gRPC и реализуешь с их помощью консольный чат. Умеешь тестировать микросервисы с помощью gRPC и покрывать сервер тестами с применением mock-объектов. Реализуешь готовый проект, использующий богатый набор функций gRPC, который легко сможешь взять себе в портфолио для трудоустройства в BigTech-компанию.