Мы все еще используем обычный стек Struts-Spring-Hibernate.
Для будущих приложений, мы изучаем веб-Поток Spring + Spring, MVC + В спящем режиме, или Spring + В спящем режиме + веб-сервисы с фронтэндом Flex.
А отличная характеристика нашей архитектуры является модуляризацией. У нас есть много модулей, некоторые запускающиеся с 3 к макс. 30 таблицам в базе данных. Большинство модулей состоит из бизнеса и веб-проекта. Бизнес-проект содержит логику бизнеса и персистентности, в то время как сеть содержит логику представления.
На логическом уровне, существует три слоя: Бизнес, Персистентность и Представление.
Зависимости:
Представление зависит по работе и Персистентность.
Персистентность зависит по работе.
Бизнес не зависит от других слоев.
большинство бизнес-проектов имеет три типа интерфейсов (примечание: не GUI, это - программный слой интерфейса Java).
Часто, 1 расширяется 2. Таким образом, легко заменить одну реализацию модуля с другим. Это помогает нам принять различным клиентам и интегрироваться более легко. Некоторые клиенты купят только определенные модули, и мы должны интегрировать функциональность, которую они уже имеют. Так как интерфейс и слой реализации разделяются, легко развернуть реализацию модуля залога рекламы для того определенного клиента, не влияя на подчиненные модули. И Платформа Spring помогает ввести другую реализацию.
Наш бизнес-слой основан на POJOs. Одна тенденция, которую я наблюдаю, состоит в том, что эти POJOs напоминают DTOs. Мы страдаем от анемичная модель предметной области . Я не совсем уверен, почему это происходит, но это может произойти из-за простоты проблемной области многих наших модулей, большая часть работы является CRUD или из-за разработчиков, предпочитающих поместить логику где-то в другом месте.
нужно ли нам по-прежнему устанавливать атрибут output = false для компонентов и функций в стиле скрипта CFC?
Я так не думаю.
по своей природе подавляет любые пробелы и требует writeOutput ()
, чтобы вообще иметь какой-либо вывод.