首页 > 代码库 > 多应用统一开发平台的一点想法
多应用统一开发平台的一点想法
几年工作下来,发现有一个问题一直困扰着我们: 随着项目的越来越完善,功能越来越丰富,单一一个应用已经不能够支撑开发人员的需要。于是我们就需要根据业务分拆成几个相对独立的应用来满足多个开发团队的需求。但是这样也造成了一些问题,多个应用需要公用的基础代码维护起来越来越复杂,导致种种问题。也有很多种方式来解决,比如公共代码放置单独的地方,这样有带来的自动化部署方面的困难。在此,鄙人提出一种解决方法,即多应用统一开发平台的概念。在此以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 项目。
地址:
具体敬请期待。