Дапамажыце dev.by 🤍
Падтрымаць

Команда Juno: за последние годы разработчики распробовали язык программирования Go

45 каментарыяў
Команда Juno: за последние годы разработчики распробовали язык программирования Go

Язык Go быстро завоёвывает доверие инженеров — за прошедший год он поднялся с 54 на 13 место в индексе TIOBE (в настоящий момент 10-е место) и получил звание «язык года». Чем же он так привлекателен и какие возможности в нём есть? Об этом можно будет узнать 21 июля в SPACE на первом в Центральной и Восточной Европе событии, полностью посвящённом языку Go — GoWayFest. dev.by побывал в гостях у команды Juno, поддержавшей мероприятие, и поговорил о будущем языка, его возможностях и использовании в бэкенде каршерингового продукта.

Читать далее...

Почему в бэкенде Juno — Go?

По словам архитектора Juno Михаила Гузелевича, выбирая технологический стек и архитектуру бэкенда, основатели компании учитывали свой богатый предыдущий опыт. Основное, чего они хотели избежать в новом проекте, — монолитная архитектура, С++ или языки на базе виртуальных машин. При большой нагрузке использование последних часто выливается в «тонкий тюнинг внутренностей виртуальной машины», а не в программирование. 

Учитывая эти вводные данные, выбор языка для фаундеров значительно сократился. «Go хоть и был молодым языком, но уже широко использовался инженерами, да и в интернете не было дефицита информации. К тому же у этого языка есть достаточно сильные преимущества для построения микросервисной архитектуры и размещения готового продукта в облаке. Основатели не боялись использовать новые языки и технологии, и это помогло нам найти заинтересованных людей», — говорит Михаил Гузелевич.

Бекенд-специалист уверен, что Go хорош для высоконагруженных систем, какой является Juno, поскольку в нём большой выбор низкоуровневых возможностей и хорошая утилизация ресурсов.

«Несколько лет назад, когда разговор заходил про Go, для ответа на многие вопросы нужно было лезть в потроха самого языка или в немногочисленные проекты, каждый из которых следовал своему чувству прекрасного. Теперь на Github можно как образец читать код известных проектов, тонкие моменты рассматриваются в многочисленных технических блогах. У нас тоже есть свои опенсорс-библиотеки, но в связи со спецификой бизнеса в общий доступ выкладывается далеко не всё. Каршеринг и логистика — очень конкурентная отрасль, но мы с удовольствием делимся решениями общего назначения. Например, библиотекой для работы с платёжными системами», — говорит собеседник.

Возросший интерес к новому языку Google он объясняет тем, что разработчики за последние годы «распробовали» его, и в интернете накопилась «критическая масса кода». Если раньше даже самые простые вещи Go-разработчику нужно было реализовывать самому, то теперь в этом нет необходимости. А это существенный бонус для захвата рынка. К тому же многие крупные игроки — Docker, Avito, Uber — сделали выбор в пользу этого языка.

Go-код Juno: нетипичное использование и собственный фреймворк

По словам Михаила Гузелевича, Juno нетипичным образом использует Go.

Обычная область применения этого языка — это консольные утилиты, сервера, работающие с потоком сетевого трафика или быстро раздающие контент. А команда Juno «замахнулась» на создание целого продукта. Найти подходящий фреймворк оказалось невозможно, поэтому все «велосипеды» — собственные — разработчики собирали и переделывали их по несколько раз.  

Код Juno представлен в виде микросервисной архитектуры, написан с помощью собственного фреймворка, в котором введены абстракции протокольного и транспортного уровня, изолированы работы с логированием, СУБД, трейсингом. Благодаря этому поверх фреймворка каждый микросервис получается очень простым.

При этом Go не единственный язык, используемый в Juno: на фронтенде — JavaScript, автоматизация тестирования бэкенда выполняется на Python. На нём же разрабатываются и все части, связанные с Data science, аналитикой, «биг-датой» и машинным обучением. Для остального бэкенда — эти системы являются своего рода «чёрными ящиками», предоставляющими API. Что касается мобильной разработки, то для Android — это Kotlin, а для IOS — Swift.

«В целом наше понимание микросервисной архитектуры близкое к классическому: никакого обмена через базы данных, всё общение — через API. Но есть и особенности. Например, у нас своеобразное понимание gateway. Он у нас максимально Simple и Stupid, ничего не знает о бизнес-логике, за исключением знания о пользователях, его правах и протоколах взаимодействия. Мы широко используем очереди сообщений для коммуникации между микросервисами. А сами микросервисы оборачиваем в Docker-контейнеры и деплоим их на Amazon», — поясняет архитектор Juno.

Михаил считает, что у «детища» Google хорошее будущее. «Целиком заменить другие языки он вряд ли сможет, но вот создать и занять свою нишу — вполне. Он может потеснить VM-based языки в тех местах, где нужен лучший перформанс. Но, например, некоторые ниши функциональных языков (документооборот, финансовая аналитика, налоговая отчётность) ему в ближайшее время не занять», — говорит собеседник.

«Контрибьютить в развитие языка — задача каждого из нас»

По словам представителя Juno Яны Лашкевич, популярность Go растёт семимильными шагами уже несколько лет. Многие компании контрибьютят в его развитие, например, недавно JetBrains выпустила среду разработки для языка Go. На просторах СНГ среди русскоязычного контента появляются такие проекты, как подкасты от GolangShow, Slack-канал Go-сообщества. Но несмотря на все эти шаги, мероприятий по Go очень мало. 

«На конференции JavaDay доклады по Go вызвали резонанс как в твиттере, так и среди участников, которые пришли послушать про Java, а в итоге интересовались Go. Поэтому мы решили, что есть смысл организовать отдельную конференцию по Go, — рассказывает Яна. — Инженеры Juno выступили в качестве программного комитета: помогли составить хорошую программу конференции и пригласили докладчиков из разных городов».      

По её словам, через несколько лет событий по Go станет значительно больше. Уже в этом году мероприятие «1.8 Release Party» прошло одновременно в нескольких сотнях городов мира. «Мы гордимся тем, что первое событие такого размаха в Центральной и Восточной Европе проходит именно в Минске. Контрибьютить в развитие языка — задача не отдельной компании, а каждого из нас», — говорит Лашкевич.

На вопрос «зачем Juno поддержка таких мероприятий?» она отвечает: «Мы придерживаемся позиции: чем бы мы ни занимались, нужно облагораживать среду, в которой находимся. Поскольку в нашей стране нет лазурного берега, которым можно привлечь иностранцев, нужно делать это в рамках нашей индустрии, с точки зрения инжиниринга: приглашать людей на такие ивенты и конференции».

Доклады на GoWayFest: kubernetes, garbage collection, scheduler и pipelines

Конференция будет состоять из нескольких тематик на русском и английском языках. Архитектор Gett Эйял Пост и сооснователь Juno Игорь Магазиник расскажут о бизнесе, почему крупные игроки выбирают Go, как они переходят на этот стек, какие преимущества в итоге получает и команда, и компания.

В хардкорных технических докладах спикеры расскажут о том, как устроен язык. Ребята из Англии, например, расскажут про работу «сборщика мусора» (garbage collection), спикеры из Avito — как они используют kubernetes в работе с сервисами в dev-среде, разработчик из Украины — о визуализация concurrency в Go, лидер российского Go-комьюнити — о профилировании. Ведущая подкаста GolangShow проведёт воркшоп, как писать на Go и доводить проект до продакшена.  

Стас Афанасьев из Juno расскажет про pipelines на базе стандартных интерфейсов io.Reader и io.Writer. Этот доклад будет интересен тем, кто уже познакомился с языком и тем, кто не до конца понимает концепцию io.Reader/io.Writer.   

Философский доклад Миши Кабищева из Juno будет посвящён дизайну кода.

«Про Go часто говорят, что он настолько прост, что даже не нужно заморачиваться, просто излагайте свой поток мыслей в виде кода, и он заработает. Но в большой команде это приводит к неудобствам и сложностям — код становится неподдерживаемый и нечитабельный. Поэтому я расскажу о том, как этого избежать и приведу примеры того, как на языке Go некоторые задачи лучше не решать в лоб», — сказал разработчик.     

«Конференция — место для сообщества инженеров, а не пиара решений отдельных компаний. Поэтому темы, о которых будут рассказывать спикеры, в том числе и наши ребята, не имеют отношения к Juno. Но мы всегда с радостью и гордостью делимся «своей кухней» — для этого приглашаем участников конференции на pre-party в наш офис накануне в четверг. В наших стенах можно будет пообщаться с архитекторами и инженерами бэкенда Juno, а также с нашими гостями из компании Gett и узнать поподробнее о том, что и как мы делаем», — приглашает на препати Яна Лашкевич.
 

Чытайце таксама
10 курсов по SQL в 2022 году для лучшего понимания работы с большими данными
10 курсов по SQL в 2022 году для лучшего понимания работы с большими данными
10 курсов по SQL в 2022 году для лучшего понимания работы с большими данными
Собрали 10 платных и бесплатных онлайн-курсов для изучения SQL. Программы рассчитаны на слушателей, которые только начинают или продолжают знакомство с языком. 
10 способов научиться программировать самостоятельно
10 способов научиться программировать самостоятельно
10 способов научиться программировать самостоятельно
Программирование — один из ценнейших навыков для карьерного роста, саморазвития и создания чего-нибудь удивительного. Собрали десять советов для тех, кто только начинает своё путешествие в мир программирования и снабдили все это полезными ссылками на курсы для начинающих программистов. 
17 каментарыяў
Как оплачиваются самые популярные языки GitHub и какой прогноз
Как оплачиваются самые популярные языки GitHub и какой прогноз
Как оплачиваются самые популярные языки GitHub и какой прогноз
10 курсов по ABAP — языку программирования, который использует SAP
10 курсов по ABAP — языку программирования, который использует SAP
10 курсов по ABAP — языку программирования, который использует SAP
ABAP (Advanced Business Application Programming) — это язык программирования, который использует компания SAP — один из главных поставщиков программного обеспечения по всему миру. Среди клиентов компании — Apple, Amazon, Colgate-Palmolive, Cisco, Dell, Airbus, DHL, Walmart, Ernst and Young и сотни других. Вообще SAP используют около 90% компаний из списка Fortune-500. И еще, например, NHL. ABAP написан в далеком 1980 году и за последние 40 лет все-равно остается актуальным и востребованным. У разработчиков на ABAP стабильно высокие зарплаты. Поэтому мы решили собрать список из 10 курсов по ABAP, которые стоит пройти для лучшего понимания языка или вообще для выбора его как своей профессии.
26 каментарыяў

Хочаце паведаміць важную навіну? Пішыце ў Telegram-бот

Галоўныя падзеі і карысныя спасылкі ў нашым Telegram-канале

Абмеркаванне
Каментуйце без абмежаванняў

Рэлацыраваліся? Цяпер вы можаце каментаваць без верыфікацыі акаўнта.

Каментарыяў пакуль няма.