Архитектура сайта для белых приложений
Я собираюсь запустить приложение на стороне сервера с белой меткой, но я не хочу вмешиваться и начинать кодировать. Это то, чего мне раньше не приходилось делать, по крайней мере, не с нуля, и на этот раз я все контролирую!
Я работал над многими приложениями, хорошими и плохими, но в большинстве я всегда замечал отсутствие мыслей, которые шли за приложением с архитектурной точки зрения, которая возвращается и кусает нас в конце. Это не отражается ни на ком, большую часть времени мы связаны бизнесом, который делает звонки. Тем не мение...
Я решил использовать Railo, Coldbox и AngularJs, используя mysql. Но это не предмет обсуждения, это скорее КМФ.
То, что я ищу помощи в том, как идти о разработке сайта, чтобы я мог держать основной и пользовательский код (я буду называть это клиентским кодом). Да, я исследовал это, к сожалению, мало о том, как подойти к этому.
Что я имею в виду под этим? Мне нужна базовая оболочка сайта, где один набор файлов кода может использоваться более чем одним клиентом, например, модулями, которые будут выполнять регистрацию, информацию о компании, логин, настройку языка и т. Д. Однако с каждым клиентом всегда есть запросы для настройки, поэтому я хочу возможность переопределить основной код с использованием клиентского кода.
Я хорошо знаком с основами Coldbox (то есть с одной базой кода на одном сайте), но недостаточно для достижения моей цели.
Это базовая структура приложения Coldbox, и именно так я бы увидел структуру каталогов клиента.
+ ApplicationRoot
| --- + config
| --- + рамки
| --- + обработчики
| --- + плагины
| --- + макеты
| --- + просмотров
| --- + включает
| --- + перехватчики
| --- + модель
| --- + модули
| --- + Application.cfc
| --- + index.cfm
Если вышеизложенное является базовой структурой приложения одного клиента, как оно будет распространяться на основной код? Имея в виду, я думаю, что основной код будет содержать dao, service, gateway, bean модулей. Где они будут жить и будет ли основной код иметь аналогичную структуру в какой-то другой папке?
+ ApplicationRoot
| --- + Основной код
| ----- + рамки
| ----- + плагины
| ----- + перехватчики
| ----- + просмотров
| ----- + модель
| ----- + модули
--- + Клиент один
| ----- + согласно приведенной выше структуре каталогов клиента
--- + Клиент два
| ----- + согласно приведенной выше структуре каталогов клиента
Спасибо, что уделили мне время на чтение, и я надеюсь, что вы сможете направить меня в правильном направлении.
1 ответ
Вам нужна папка для общих объектов ColdBox, которые будут использоваться клиентами. Вы можете настроить эти места в ColdBox.cfc
,
coldbox = {
// .. settings above
//Extension Points
UDFLibraryFile = "includes/helpers/ApplicationHelper.cfm",
coldboxExtensionsLocation = "",
modulesExternalLocation = ["/common/modules/"],
pluginsExternalLocation = "",
viewsExternalLocation = "",
layoutsExternalLocation = "",
handlersExternalLocation = "",
requestContextDecorator = "",
// .. more settings below
};
Ваш веб-корень может выглядеть так:
- clientA
- skeleton
- clientB
- skeleton
- clientN
- skeleton
- common
- extensions
- handlers
- layouts
- modules
- plugins
- requestContextDecorator
- views
Вы также можете переопределить макеты и представления стандартными соглашениями ColdBox, но не будет ли это в вашем коде AngularJS?
Что касается переопределения действий обработчика, это возможно. В моей компании есть специальный процесс для этого, но мы еще не открыли его.
Надеюсь это поможет.