Профессиональная конференция разработчиков высоконагруженных систем

Мир Golang глазами C++-разработчика: так ли уж плох этот наш Go?

Идеальный язык

GO

Доклад принят в программу конференции

Мнение Программного комитета о докладе

Идеального языка программирования не существует, языки бывают плохие и очень плохие. И к какой категории относится конкретный язык, зависит от точки зрения. Давайте посмотрим на Go с точки зрения С++-разработчика — это будет интересно и наверняка поучительно.

Целевая аудитория

Все, кто помышляет попробовать Go как язык для своего проекта. Действующие разработчики сервисов на Go, в том числе высоконагруженных.

Тезисы

Каждый язык при изучении и применении оставляет в носителе свой отпечаток. Для человеческих языков — это следы культуры той или иной части света. Для языков программирования — это концепции и подходы к решению задач.

Примерно 4 года назад мы занялись экспериментальным для Яндекс.Маркета проектом — рантайм-сервисом расчёта путей по логистическому графу на Golang. Этот эксперимент вылился в критичный и высоконагруженный сервис с порядка 40k RPS и примерно 50 RPS/CPU, благодаря которому вы можете видеть дату доставки вашей посылки на Маркете.

Мы рассмотрим, как различаются подходы и концепции C++ и Golang, глазами человека, который до эксперимента Golang в глаза не видел, а подавляющее количество кода писал на C++. А также поговорим, чему нас научил язык Go!

К примеру, вы узнаете:
* что общего и кардинально различного есть у указателей в C++ и Go;
* точно ли за аллокацией в Go не нужно следить так же тщательно, как в плюсах;
* есть ли различия в использовании gRPC в C++- и Go-сервисах;
* на сколько полезен и опасен sync.Pool

Никита Деревянко

Яндекс Маркет

Прошел в Яндексе путь от стажера до руководителя отдела. Было безумное количество крутых проектов и знакомств. Увлекается шахматами и изучением японского языка.

Яндекс Маркет

Маркет позволяет покупателям заказывать товары прямо из дома и получать заказы по всей стране, а партнёрам — развивать свой бизнес, повышая продажи и привлекая новых клиентов. Для этого команда Маркета строит архитектуру так, чтобы можно было быстро делать новые фичи и не ломать важные сценарии, учится выдерживать многократный рост нагрузки и не перерасходовать ресурсы, следит, чтобы сайт Маркета работал как надо. У них есть целый арсенал технологий: микросервисы и микрофронты, тыквы и gracefull degradation, отложенная обработка запросов и автоматические системы нагрузочного тестирования. Изменяют архитектуру всех сервисов Маркета и помогают продуктовым командам быстро и безопасно развиваться.

Видео