На курсе ты глубоко изучишь все возможности gRPC:
- Узнаешь все о gRPС для успешного трудоустройства в BigTech-компанию
- Научишься лучшим практикам gRPC от Senior-разработчика из OZON и сможешь применять их в работе
- Поймешь, в чем отличия gRPC от REST — популярного подхода построения API
- Научишься писать правильный легкомасштабируемый код так, как это делают разработчики в ведущих IT-компаниях
- Познакомишься с транспортной валидацией данных, автоматически генерируемой документацией и другими опциями gRPC и его экосистемы
- На живой практике научишься качественно обслуживать и тестировать микросервисы с помощью gRPC
Программа курса
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-компанию.








