Как не сойти с ума: архитектура большого легаси проекта
В этом докладе я хочу рассказать как мы, в компании Яндекс.Деньги, создаем платформу для всех своих фронтенд приложений. В условиях бурного роста кодовой базы довольно сложно контролировать развитие проекта и вовремя предотвращать архитектурные проблемы которые возникают по ходу развития приложения. Опишу основные проблемы которые мы встретили в ходе эксплуатации наших приложений и подходы с помощью которых мы их решаем.
Фронтед Яндекс.Денег состоит из двух частей:
1. Браузерный код (рекат стэк)
2. Сервер на Node.JS
По сути я могу предложить два варианта доклада на эту тему:
1. Обзорный - расскажу про обе части нашего фронтенда - на клиенте затрону проблемы распространения конфигов сборки между разными микросервисами, немного про зависимости библиотек друг от друга - проблема dependency hell.
2. Хардкорный - углубимся в самое проблемное место нашего фронтенда - часть на Node.JS. Рассмотрим какие были проблемы в коде сервисов, и как была выбрана архитектура что бы эти проблеммы больше не испытывать, рассмотрим паттерны проектирования которые при этом использовались. В общем этот вариант предполагает много кода на слайдах с разбором конкретных кейсов.