Всем привет. Комплексный вопрос на обсуждение.
Если его лучше задать не сюда, отправьте, куда его задать.
Также готов обсудить его в личке.
Мы начинаем разработку сложного корпоративного веб-приложения. Сложное оно не столько в техническом плане, сколько в плане запутанной и очень объёмной бизнес-логики. Подавляющее большинство страниц этого веб-приложения - это достаточно простые страницы с отображением табличных данных или небольших формочек.
Команда разработки до недавнего времени полностью состояла из фулстеков с большим перекосом на бекенд. Сейчас взяли в команду 2 фронтендеров.
Идут горячие споры между двумя подходами к разработке фронтенда.
1) Нужно делать полностью чистый и честный SPA. Т.е. это полностью приложение на vue.js, которое общается с бекендом только через rest api. Рендеринг вёрстки происходит только через компоненты vue.js.
2) Мы делаем SPA, но при этом на странице выделяем контентную зону. В эту контентную зону мы подгружаем через ajax готовую html-разметку с сервера. На сервере эта разметка формируется силами бекендеров/фулстеков. Все ссылки и отправки формы мы тоже заменяем на ajax-запросы с подгрузкой готовой html-разметки. Получается что-то вроде классического iframe, только через ajax.
Такой подход используем для всех простых страниц, не требующих сложной логики.
Для более сложных страниц (например, чат), где требуется взаимодействие в реальном времени и синхронизация данных, используем полноценные компоненты vue, которые общаются с сервером только через api или по вебсокетам.
Первый вариант кажется правильным с точки зрения модных сейчас технологий и направлений.
Второй вариант кажется более надёжным, простым, быстрым, дешевым.
Также есть опасения, что в первом варианте фронтендеры станут бутылочным горлышком при условии, что их кратно меньше в команде.
Хотелось бы услышать больше мнений со стороны.