标签:engine 建立 iss 业务逻辑 app1 影响 core content mission
几年工作下来,发现有一个问题一直困扰着我们: 随着项目的越来越完好。功能越来越丰富,单一一个应用已经不可以支撑开发者的须要。于是我们就须要依据业务分拆成几个相对独立的应用来满足多个开发团队的需求。可是这样也造成了一些问题,多个应用须要公用的基础代码维护起来越来越复杂。导致种种问题。也有非常多种方式来解决,比方公共代码放置单独的地方。这样有带来的自己主动化部署方面的困难。在此。鄙人提出一种解决方法,即多应用统一开发平台的概念。在此以rails应用为例。
标准的rails应用结构例如以下:
Gemfile
Gemfile.lock
README.rdoc
Rakefile
app
bin
config
config.ru
db
lib
log
public
test
tmp
vendor
非常明显,这样的组织结构仅仅可以支持一个应用。假设把多个相对独立的功能均放置到这个应用中。会造成双方面的问题:1. 由于代码量较大。开发中开发环境会变得非常慢。严重影响效率。2. 由于仍然是一个应用,模块之间难免会出现难以解耦的情况。
我设想的多应用统一开发平台是这样组织的。
application
|------app1
|------app2
biz
|------biz1
|------biz2
core
|-----user_mgmt
|------sso_mgmt
|------permission_mgmt
doc
bin
这样的组织结构基于rails engine 技术实现起来不是非常复杂。core包括了全部公共代码,比方用户管理,权限管理等等大部分应用都会使用的模块。
biz 以下则是实现详细业务逻辑的模块。每个模块都是rails engine 应用。
application则是用各个模块组织成的应用。
比方app1须要使用biz1和user_mgmt。那么我们仅仅须要在app1中通过配置文件引用biz1和user_mgmt这两个模块就能够了。这样做应用启动起来也非常快。将应用差分成模块也便于模块化应用。
以下想把这中结构组织成一个应用模板,就像rails应用一样,仅仅须要通过命令和參数就行高速开发此种结构的项目。已经建立了github 项目。
地址:
详细敬请期待。
标签:engine 建立 iss 业务逻辑 app1 影响 core content mission
原文地址:http://www.cnblogs.com/wgwyanfs/p/6755675.html