Переходим к докладам по бэкенду с конференции Ю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)


  1. inquisitio
    23.11.2021 12:42

    Можете ли прикрепить к статье и/или видео ссылку на презентацию по contract-first?

    Очень интересный опыт.


    1. yooteam Автор
      23.11.2021 14:28

      Добрый день! Рады, что вам понравился кейс :) Презентацию можно посмотреть по ссылке.


      1. SimSonic
        24.11.2021 14:51

        А вы генератор или какой-то свой другой код не планируете выкладывать в открытый доступ?


        1. f0y
          24.11.2021 16:03
          +2

          Да, планируем выложить генератор, линтеры и сicd обвязку. Хотели сделать к конференции, но успели выложить только bundler https://github.com/yoomoney/openapi-bundler.


  1. marliotto
    26.11.2021 10:50

    Спасибо за доклады!

    Не мог ли бы еще рассказать, как backend реализует поддержку нескольких версий API?


    1. f0y
      26.11.2021 11:28
      +3

      Если говорить про внутреннее межсервисное взаимодействие, где мы знаем всех клиентов, то используем https://www.thoughtworks.com/radar/techniques/api-expand-contract

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