多应用统一开发平台的一点想法

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

地址:

具体敬请期待。

多应用统一开发平台的一点想法,布布扣,bubuko.com

时间: 2024-12-24 17:33:49

多应用统一开发平台的一点想法的相关文章

关于UED前端开发的一点想法

5.2 关于UED前端开发的一点想法 5.2.1 目前UED前端代码是一个页面对应一个JS文件,更有甚者一个JS文件的代码会超过万行,这样的代码试想该如何维护?如果在从事前端开发的时候避免这种尴尬的局面,我想最好的方式就是分而治之, 如果分而治之?首先解析页面的一般思路,初始化(init) 事件绑定(event)页面读值(getData)页面写值(setData)重置页面(resetData)页面展示(setView)页面校验(checkData)页面异步加载 (ajax),页面测试(test)

SNF快速开发平台3.0之--文件批量上传-统一附件管理器-在线预览文件(有互联网和没有两种)

实际上在SNF里使用附件管理是非常简单的事情,一句代码就可以搞定.但我也要在这里记录一下统一附件管理器能满足的需求. 通用的附件管理,不要重复开发,调用尽量简洁. 批量文件上传,并对每个文件大小限制,客户端无刷新 可以对已经上传的附件进行名字变更,改成更友好的名称. 可以对已经上传的文件进行删除. 并记录文件大小,上传人.时间和修改人和时间等. 可以下载附件到本地电脑. 文件的在线预览,支持不安装office软件就可以预览(不管是图片还是office文档都得支持预览) 虽然比专业的图文档管理系统

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 几十套业务系统集中统一授权管理实现经验分享

由于这几年互联网电商的快速发展,快递公司也进入了快速发展的绝好快速成长期.随着社会的强劲需求公司的业绩年年攀新高.快速发展的公司都需要有强大的IT信息系统,硬件设备基本上款到了货也可以到了,但是软件系统就不是那么简单了,需要长期的维护完善才能平稳运行. 公司有几十套业务系统需要快速开发.开发队伍的建设.软件系统的建设.基础平台的建设都堆在了一起,由于我们用了成熟的通用快速开发平台,所有的用户都能集中统一授权.所有的业务系统都有统一的管理后台配置管理,几乎很多精力都放在业务模块的开发上就可以了.

趣拍云:深耕细作 打造最专业短视频开发平台

短视频是指视频长度不超过2分钟,通过短视频平台拍摄.编辑.上传.播放.分享.互动的,视频形态涵盖纪录短片.DV短片.视频剪辑.微电影.广告片段等的视频短片的统称,伴随着社交媒体的迅猛发展以及网络带宽.云技术等基础条件的成熟,短视频市场在2016年迎来了爆发式增长,据有关数据显示,预计到2020年,短视频内容消费贡献的广告营收将是现在的10倍,达到600亿元人民币.如此巨大的市场,自然吸引了众多参与者,而杭州短趣网络传媒技术有限公司就是其中一个参与者,他们于2016年1月推出的 "趣拍云"

IoT 开发平台多样性让创新规模史无前例

Arduino Due.Beaglebone.mbed 或Raspberry Pi 仅仅是用于 IoT 产品原型制作且基于 ARM 的嵌入式平台中的几个例子.我们撰写这篇博文的意图,不仅是要比较这些开发板,还要审视其中的处理器在您的设计投入生产时产生的重要影响. 物联网正当时 正如您最近阅读的博文中所述,物联网正当风行.在各种经济平台激励创新的背景下,现已不再缺乏全新物理产品的各种想法 - 不论是 AT&T数字生活家用传感器还是可远程控制的小强,可谓一切皆有可能. IoT 是新型应用程序开发平台

实用开发平台对比分析

1 概述 随着软件行业日新月异的发展,使用传统的开发工具已经不能满足现有程序员的诉求,每个项目都要从零开始,代码无复用率:所有的基础功能需要一行一点的敲代码,一个预置基本功能模型,可以快速生成代码的开发平台已经成为了"码农"的迫切需要. 笔者作为"码农"中的一员也深受其害,今天与大家分享笔者对开发平台的认知以及为大家推荐几款实用的开发平台. 2 必备要素 考量一个款实用的开发平台 2.1 操作简单 实用的开发平台作为开发工具需要是操作简便如预置导航引导,以及代码编辑

Java EE开发平台随手记5——Mybatis动态代理接口方式的原生用法

为了说明后续的Mybatis扩展,插播一篇广告,先来简要说明一下Mybatis的一种原生用法,不过先声明:下面说的只是Mybatis的其中一种用法,如需要更深入了解Mybatis,请参考官方文档,或者研读源码. 我们知道,使用Mybatis的方式有很多种,从是否集成上分,可以单独使用,也可以和Spring集成使用:从使用方式上分,可以编写静态工具类,在静态工具中调用SqlSession,也可以直接注入SqlSession/ SqlSessionTemplate,还可以编写Dao接口,让mybat

使用.NET通用快速开发平台开发心得体会

近半年来工作上一直用通用权限开发平台做开发,其方便.快捷.灵活的特性,在开发中逐一体现出来.首先是开发平台内置的代码生成器,无需复杂的操作即可批量生成增删改查代码和实体类,节约大量的时间在软件的业务逻辑上,想起原来写代码时,拼写那密密麻麻的SQL语句时的感受,有如暗无天日的末日,尤其碰上动辄几十个上百个字段的大表时,那种精神上的折磨,想想都觉得慎得慌.修改了这里导致那里出错.那边好了这边又错了,不说了,说了全是泪... ... 开发中我用到的仅是代码生成器的一小部分,无需什么复杂配置就可以工作(

【.NET Core项目实战-统一认证平台】第七章 网关篇-自定义客户端限流

[.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章我介绍了如何在网关上增加自定义客户端授权功能,从设计到编码实现,一步一步详细讲解,相信大家也掌握了自定义中间件的开发技巧了,本篇我们将介绍如何实现自定义客户端的限流功能,来进一步完善网关的基础功能. .netcore项目实战交流群(637326624),有兴趣的朋友可以在群里交流讨论. 一.功能描述 限流就是为了保证网关在高并发或瞬时并发时,在服务能承受范围内,牺牲部分请求为代价,保证系统的整体可用性而做的安全策略,避免单个服务