我即将启动一个白标签服务器端应用程序,但我不想立即开始编码。这是我以前不需要做的事情,至少不是从头开始,而这次我是掌控者!
我开发过许多应用程序,无论好坏,但在大多数应用程序中,我总是注意到从架构的 Angular 来看,应用程序背后缺乏思考,而这种思考最终又回来并咬住了我们。这并不是针对任何人的反射(reflect),大多数时候我们都受到调用电话的业务的约束。无论如何...
我决定使用 Railo、Coldbox 和 AngularJs 使用 mysql。但这不是讨论的重点,更多的是仅供引用。
我寻求帮助的是如何设计一个网站,以便我能够保存核心和自定义代码(我将其称为客户端代码)。是的,不幸的是,我对此进行了研究,但没有太多讨论如何解决这个问题。
我这是什么意思?我想要一个网站的基本外壳,其中一组代码文件可以由多个客户端使用,例如,用于注册、公司详细信息、登录、语言设置等的模块。但是,每个客户端总是有请求对于自定义,所以我希望能够使用客户端代码覆盖核心代码。
我对 Coldbox 基础知识(即一个代码库一个站点)有很好的了解,但不足以实现我的目标。
这是 Coldbox 应用程序的基本结构,这也是我查看客户端目录结构的方式。
+应用程序根
|---+ 配置
|---+ 框架
|---+ 处理程序
|---+ 插件
|---+ 布局
|---+ 浏览量
|---+ 包括
|---+ 拦截器
|---+ 型号
|---+ 模块
|---+ Application.cfc
|---+index.cfm
如果以上是一个客户端应用程序的基本结构,它将如何扩展到核心代码?请记住,我认为核心代码将保存模块的 dao、service、gateway、bean。这些文件将存放在哪里?核心代码在其他文件夹中是否具有类似的结构?
+应用程序根
|---+ 核心代码
|-----+框架
|-----+ 插件
|-----+ 拦截器
|-----+ 浏览次数
|-----+ 型号
|-----+ 模块
---+ 客户端
|-----+ 根据上述客户端目录结构
---+ 客户端二
|-----+ 根据上述客户端目录结构
感谢您花时间阅读本文,希望您能引导我走向正确的方向。
最佳答案
您需要的是一个用于存放常见 ColdBox 对象的文件夹,这些对象将在客户端之间共享。您可以configure these locations在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
您可以override layouts and views也符合标准 ColdBox 约定,但这不会出现在您的 AngularJS 代码中吗?
至于覆盖处理程序操作,这是可能的。我的公司为此有一个自定义流程,但我们尚未将其开源。
希望这有帮助。
关于angularjs - 白标应用程序的站点架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24923229/