Development

Golang meetup (Online) Evrone

Онлайн-митап от Evrone, посвещённый языку Go

Программа сформирована, но можно подать доклад на следующий митап.

Подписывайтесь на наш телеграмм канал с анонсами митапов.

Schedule

Как делать микросервисы единообразными, когда их много, а разрабы все разные? #

Олег КозыревАвито

Проблема, с которой столкнулся наш отдел, заключалась в следующем. У нас было несколько десятков микросервисов, и их число продолжало расти. При этом, как это часто бывает, в Go разработку люди пришли из других языков и принесли с собой различные практики. Всё бы ничего, но когда один сервис написан так, как привыкли писать на PHP, другой вдохновлен Ruby, а третий и вовсе отдаёт плюсами, то становится жутко. С таким зоопарком подходов переключаться от сервиса к сервису очень сложно и трудозатратно, а главное, чревато большим количеством ошибок в разработке. Тут тебе и стабильность продукта страдать может и тайм ту маркет расти. Решением сперва стал шаблонный сервис, на который стали ориентироваться при создании новых сервисов и рефакторинге старых, а потом и cli-утилита, которая занималась кодогенерацией скелета проекта и основных его компонентов. Также общие элементы, как, например, клиент к бд или grpc dialer, были вынесены в отдельный репозиторий с целью переиспользования во всех сервисах. Польза такого подхода дала о себе знать. Создание новых сервисов и поддержка старых ускорились, а влияние человеческого фактора в рутинных операциях снизилось. Да и разрабы стали счастливее, потому что уже не нужно было писать однообразный код, а он сам генерился.

Paranoia driven development #

Мясников АлексейЯндекс

Если что-нибудь может пойти не так, оно пойдёт не так (закон Мерфи).
В докладе мы намеренно станем программистами-параноиками.
Потребитель вашего кода (в первую очередь ты сам) может и будет его использовать неправильно.
А значит баги закладываются еще на этапе дизайна публичного API.
Контракты, заложенные в сигнатурах функций и интерфейсах, определяют сколько родится багов при использовании вашего кода.
В твоей власти спроектировать контракты так, чтобы не допускать ошибок при их использовании.
На нескольких примерах мы пройдем путь от ненадежных контрактов к надежным.
На всех этапах дизайна кода будем исходить из того, что кодом будут пользоваться самые "одаренные" программисты.

Микросервисы в небольших командах разработки: почему вам нужен PaaS? #

Алексей КоротинSports.ru

Для кого доклад:

  • небольшие команды
  • для тех, кто планирует или начал переход на микросервисы
  • для тех, кто уже перешёл, но страдает от высокой стоимости поддержки

Тезисы:

  • Какие проблемы поможет решить PaaS? (сокращаем порог входа и человеческий фактор, увеличиваем унификацию)
  • PaaS - необязательно сложно и дорого (нет небоходимости всё кастомить, можно брать готовые решения и со временем тюнить их под себя)
  • С чего начать? (базовый фреймворк, конфигурация, лейаут сервиса, observability, CI и деплой, автоматизация)
  • Архитектура компонентов (минимальный набор необходимых фич, как что устроено)
  • Как организовать миграцию старых сервисов на новые рельсы
  • С какими проблемами столкнулись лично мы (разные виды сервисов, тулинг)
  • Дальнейшее развитие (разные типы сервисов, генерация чего-либо для уже готового сервиса)

Обработка ошибок в go в 2023 #

Виталий ПоповInDrive

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

Event at a glance

Who it is for
Go developers, backend developers, software architects, team leads
Main topics
Go programming, microservices, API design, PaaS, error handling
What you will gain
learn to create service templates and code generators, design reliable APIs with defensive contracts, understand PaaS benefits for small teams, get a decision framework for Go error handling
Program format
production cases, deep technical talks