Архитектура сайта для белых приложений

Я собираюсь запустить приложение на стороне сервера с белой меткой, но я не хочу вмешиваться и начинать кодировать. Это то, чего мне раньше не приходилось делать, по крайней мере, не с нуля, и на этот раз я все контролирую!

Я работал над многими приложениями, хорошими и плохими, но в большинстве я всегда замечал отсутствие мыслей, которые шли за приложением с архитектурной точки зрения, которая возвращается и кусает нас в конце. Это не отражается ни на ком, большую часть времени мы связаны бизнесом, который делает звонки. Тем не мение...

Я решил использовать 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?

Что касается переопределения действий обработчика, это возможно. В моей компании есть специальный процесс для этого, но мы еще не открыли его.

Надеюсь это поможет.

Другие вопросы по тегам