Листайте, чтобы увидеть остальные причины
Подбор технологий под каждое техническое решение проходит в несколько этапов.
Этап 1: Определение технических требований к будущему проекту. Этому этапу уделяется достаточное количество времени и сил. Ведь большинство ошибок кроется именно на этом этапе. Не правильный сбор требований влечет за собой неверно техническое решение.
Этап 2: Декомпозиция проекта на логические/бизнес компоненты. Например Регистрация, загрузка файлов.
Этап 3: Проектирование бизнес схемы работы проекта/продукта. Этот этап дает общее понимание между клиентом и нашей командой, что мы друг друга понимаем, а так же ответчает на ряд вопросов клиента. Где заканчивается Мобильный App и начинается Web? Куда мы будем регистрироваться и авторизироваться? Где будут загружаться файлы.
Этап 4: Проектирование технического решение с разбивкой на компоненты/технологии. Этот этап проектирования определяет выбор решение и технологию под компоненты бизнес схемы.
Пример:
Компонент Регистрации и Авторизации будет реализован с использованием Amazon Cognito service так как нам необходимо иметь возможность авторизироваться и с Mobile App и с Web. Для профиля пользователя должна быть возможность real-time синхронизация между Web и Mobile App. Компонент нотификации для Web бедет реализована на основе написаного async server node.js + socket.io и очередь RabbitMQ
Наша принципиальная позиция - универсальных решений нет, есть граммотно подобранные естественные системы/технологиии которые без усилий органично вписываются и решают поставленную задачу.
Для того, чтобы ускорить разработку проектов мы создаем такие компоненты, которые можно вписывать под часто используемую бизнес логику.