Конференция завершена. Ждем вас на HighLoad++ в следующий раз!

Работа с полиморфным поведением в большой кодовой базе

GolangConf: Architecture and frameworks

GolangConf: Architecture and frameworks

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

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

Полиморфизм в Go очень странный, да. Применение его в большом проекте сопряжено с проблемами, неочевидными на старте. Можно ли обойтись без полиморфизма? Нет! Что же делать? Слушать этот доклад!

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

Продуктовые Go-разработчики уровня junior/middle из крупных компаний.

Тезисы

Основным средством получения полиморфизма в Go являются интерфейсы. И хотя они, несомненно, очень удобны и позволяют добиться многого, с ростом кодовой базы и поддерживаемой функциональности их применимость может требовать пересмотра. Что делать, если интерфейс слишком большой и разнородный? Что делать, если полиморфная логика слишком сложная? Как подружить полиморфизм с оптимизациями, рефакторингами и микросервисной архитектурой?

В своём докладе я расскажу, как организована наша кодовая база из 1M+ строк на Go, как мы используем и как не используем фичи Go, как добиваемся масштабируемой архитектуры на уровне кода и как проектируем API в проекте, где новые А/B-тесты запускаются каждый день.

Закончил факультет ВМК МГУ в 2013 году, работал в рекомендациях Яндекс.Маркета. Сейчас разработчик бэкенда и техлид в Joom.

Joom

Joom — международный маркетплейс с более чем 10 миллионами товаров, доступных покупателям по всему миру. Joom на iOS, Android и в web посещает 15+ млн пользователей каждый месяц. В команде работает более 150 талантливых разработчиков и инженеров, а под капотом у Joom — один из самых больших кластеров MongoDB в Европе, Golang и Kotlin на бэкенде, собственная платформа A/B-тестов, система автоматической закупки рекламы и технологии машинного обучения.

Видео