Я создаю новое бизнес-веб-приложение и хочу добиться:
- Используйте лучшие технологии из соответствующих областей. Я хочу надежный каркас с твердым ORM. И мне нужна самая совершенная инфраструктура SPA (одностраничное приложение) с использованием самых современных функций HTML и Javascript для приложения веб-интерфейса.
- Предоставлять бэкэнд-сущности и бизнес-сервисы для использования из различных типов приложений, например, веб-приложений, мобильных устройств (Android) и, возможно, других типов (интеллектуальные устройства и т. Д.).
Итак, чтобы удовлетворить оба требования, я склонен полностью разделить свое приложение в приложениях бэкэнда и внешнего интерфейса и организовать связь между ними с помощью REST API (JSON). Это разумный подход?
Такое разделение не является очевидным дизайнерским решением, потому что многие технологии веб-приложений имеют интегрированные слои представления, где приложение на стороне сервера более или менее контролирует генерацию представления и частично обрабатывает ответы от представления (например, SpringMVC с уровнем представления, PHP Yii с представлением слой Java JSF / Facelets полностью сохраняет состояние своих компонентов на сервере). Итак, существует множество технологий, которые предлагают более прочную связь и обещают более быстрое время разработки и более стандартный путь прохождения. Поэтому я должен быть осторожен, когда начинаю использовать технологии не так широко.
Как я понимаю, полностью разделенный интерфейс SPA обычно возникает из-за необходимости использования стороннего API. Но разве такой разъединяющий звуковой дизайн, когда и backend и frontend разработаны одной компанией?
В настоящее время я выбираю технологии на основе Java / Spring backend и Angular2 / Web Components / Polymer для внешнего интерфейса - если мне позволено это сказать. Но это не имеет отношения к этому вопросу, потому что этот вопрос касается общего дизайна, а не выбора конкретных технологий?
So - I must be cautious when starting to use technologies in manner which is not widely used.
Да, вы должны быть осторожны, если вы планируете использовать молоток, чтобы разбить шелк. Может быть, это не тот инструмент.