Переходим к докладам по бэкенду с конференции ЮMoneyDay.
Первый кейс о том, как мы внедряли Contract-First. Описали процесс перехода от Сode-First к написанию OpenAPI-спецификаций и генерации кода по ним.
Опыт внедрения Contract-First OpenApi. Алексей Могилин, ведущий бэкенд-разработчик
00:00 О докладе и теме. Что такое контракт
1:06 Статистика IT-разработки ЮMoney, стек
2:05 Подход Code-First описание контракта
3:23 Проблемы с Code-First: Jar hell, изменения библиотек, актуальность
7:25 Внедрение Code-First, первые результаты и сложности
15:22 OpenAPI: результат внедрения
18:22 Как работает кодогенерация
24:02 Результаты внедрения Contract-First
25:13 Рекомендации по внедрению Contract-First
Как организовать разработку и поддержку множества критичных процессов и спокойно спать по ночам? Мы переживали, что спикер в своем докладе просто скажет «Никак». Оказывается, всё возможно.
Анатомия центра авторизаций. Глеб Осипов, бэкенд-разработчик
00:00 О докладе и теме
1:25 Как создавался центр авторизаций: вводные данные, команда
4:25 Зона ответственности центра авторизаций
7:31 Процессы центра авторизаций
12:51 Единый подход к созданию процессов. Модель конечного автомата
16:38 Работа с Db-queu, базы данных, важные настройки таблицы
21:32 Принцип работы Db-queu
23:20 Использование модели FSM
24:33 Как изменились backend и frontend с центром авторизаций
28:25 Выводы
Задавайте вопросы спикерам в комментариях.
Все доклады с большой IT-конференции ЮMoneyDay найдете в плейлисте на YouTube. Подписывайтесь, на подходе материалы про архитектуру, SQL, DevOps, тестирование и мобильную разработку.
Комментарии (6)
marliotto
26.11.2021 10:50Спасибо за доклады!
Не мог ли бы еще рассказать, как backend реализует поддержку нескольких версий API?
f0y
26.11.2021 11:28+3Если говорить про внутреннее межсервисное взаимодействие, где мы знаем всех клиентов, то используем https://www.thoughtworks.com/radar/techniques/api-expand-contract
С публичным API ситуация сложнее, потому что клиентов мы не знаем, а тех что знаем не можем стимулировать переходу - у них просто не может быть ресурсов на переход на новую версию. Поэтому мы крайне тщательно подходим к проектированию API, для того чтобы оно было расширяемым и было бы возможно его обратно совместимое развитие. Бывает что есть несколько версий API, но зачастую это связано с тем, что мы делаем новую версию продукта и соответственно всё API, связанное с продуктом кардинально меняется.
inquisitio
Можете ли прикрепить к статье и/или видео ссылку на презентацию по contract-first?
Очень интересный опыт.
yooteam Автор
Добрый день! Рады, что вам понравился кейс :) Презентацию можно посмотреть по ссылке.
SimSonic
А вы генератор или какой-то свой другой код не планируете выкладывать в открытый доступ?
f0y
Да, планируем выложить генератор, линтеры и сicd обвязку. Хотели сделать к конференции, но успели выложить только bundler https://github.com/yoomoney/openapi-bundler.