关于模块和复用

根据复用颗粒大小,复用包含如下

  1. 类复用,采用继承或者委托
  2. 第三方包复用,常见的WEB-INF/lib目录下一堆jar文件既是这种场景,通常适用于工具类
  3. 代码复用,CC(ClearCase)等配置管理支持,直接把其他项目的模块的代码引用到另一个项目中
  4. 服务服用,把某种服务使用特定的消息接口开放出来,进而复用

基本上,第三种复用已经很少了,支持这种复用的配置管理工具更少,我只看到过CC还支持这个。确实这种缺陷太明显了。其他的几种复用倒是常见,然而对一个企业而言,这还不够。

企业长期的开发过程会积累大量的可用业务模块,例如说CMS(内容管理)、安全管理(用户、角色等),如果新开发的系统从这些可用的业务模块的基础上拼装而不是从类的基础上拼装,则能够大大提升开发效率。

flying正是这样一个框架,它通过组装一个个细小的业务模块,从而形成功能完备的大型业务系统,包括如下优势:

  • 所有模块的对外接口具备完整的规范,参考本地服务调用和远程服务调用文章
  • 开发过程只需关注正在开发的模块
  • 测试范围大大缩小
  • 只需要部署改动的模块
  • 企业可以完成模块积累

理想的情况下,企业建立自己的模块库。一个新应用立项后,拆分,然后从模块库中找出可以复用的模块,如无需修改,则直接使用,如需要修改,创建模块的分支修改并使用。如果在新作应用过程中出现有价值可以复用的模块,进入模块库统一管理。

框架源码:https://github.com/hifong/flying

博客空间:http://www.cnblogs.com/hifong/

Demo应用:https://github.com/hifong/pas

技术QQ群:455852142

时间: 2024-08-18 03:25:49

关于模块和复用的相关文章

Allegro实用技巧之模块复用(转)

需求分析:使用Allegro软件进行PCB Layout设计时,当电路图中有很多路相同的模块,使用模块复用的的操作方法,可以显著提高工作效率,同时也可以使PCB布局在整体上显得美观.下面来讲述这个方法 具体方法及说明: 1.如图,两个电路模块,它们在原理图中的电路也是一样的,对于这多个相同的电路模块,只要在PCB中做好其中的一个,则其余相同的模块通过复用的方式,可以快速完成,对于那些复杂的模块,复用的优势会更明显. 2.原理图中导出相同模块的器件信息,然后在放置器件的时候将属于一个模块的器件都放

Maven聚合模块与继承和Maven的生命周期

端碗吹水 Maven聚合模块: 因为Maven是提倡模块化编程的,所以会以多个工程分为多个模块.如果所有的功能.模块都写在一个工程里的话,不方便于扩展.升级.修改.查看和团队开发,而且也不方便于模块的复用. Maven则是提倡将一个项目拆分成多个工程,每个工程完成一个模块或功能,这些工程就像零件一般,分别去进行开发,分为多个工程也方便于维护和分工合作. 每个工程模块可以通过pom配置文件实现串联,例如配置好pom文件之后,A工程可以直接对B工程的代码进行调用,C工程可以对A和B工程的代码进行调用

框架,公共模块,unified思想

最近两周一直在加班加点refactor代码,贡献了2014年最后一个周末和2015年元旦三天假期,终于赶在了sprint结束之前完成. 可见,这个sprint做的并不理想! 项目逻辑本身并不复杂,从数据库取数据,进行相关分析计算,然后在前端以图表的形式呈现结果.用的是Django框架,前端图形采用jqplot实现. 项目有三个平行的模块,各模块都要实现数据呈现,报表导出,图片下载功能,但各模块之间互不相关,额外的要求是三个模块都要有很强的可扩展性,以便以后增加新的查询选项,能快速实现. 三个人分

在Python中调用C++模块

首先,这是自我转载:YellowTree | STbioinf的文章「在Python中调用C++模块」 在Python中成功实现了对原来C++代码模块的复用!这个好处多多,Python写得快,C++跑得快,那就是既快又快了!方法很简单,以至于我能够用一张截图记录下整个过程(点击图片看大图)! 其实,注意到,必须在原来的C++代码后面添加extern “C”来辅助(C则不需要,这也是与复用C代码时最大的不同点),不然Python在调用这个构建后的动态链接库时是找不到原来的方法或者函数的,说到底还都

详解npm的模块安装机制

详解npm的模块安装机制 依赖树表面的逻辑结构与依赖树真实的物理结构 依赖树表面的逻辑结构与依赖树真实的物理结构并不一定相同! 这里要先提到两个命令:tree -d(linux)和npm ls(npm) 在一个npm项目下: tree -d命令以树状图的方式列出一个项目下所有依赖的物理结构 npm ls命令以树状图的方式列出一个项目下所有依赖的逻辑结构 以官方文档为例子: 项目example1有两个依赖模块:mod-a模块和mod-c模块: mod-a模块有一个依赖模块[email protec

Python进阶【第十篇】模块(上)

·一.模块 模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能.为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在Python中,一个.py文件就称之为一个模块(Module). 当一个模块编写完毕,就可以被其他地方引用.我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块. 模块主要有三种: Python标准库 第三方模块 应用程序自定义模块 另外,使用模

Box(视图组件)如何在多个页面不同视觉规范下的复用

本文来自 网易云社区 . 问题描述 Android App中的页面元素,都是由一个个Box(可以理解成一个个自定义View组件和Widget同级)组成,这些Box可以在不同的页面.不同的模块达到复用的效果.但是,现在遇到了一个对于开发复用棘手的问题, A页面的组件间距和B页面的组件间距可能不同. A页面的Box1与Box1间距,和Box1与Box2的间距不一样. Box和Box之间的分割线,有粗有细,有的有左边距. 等等还有许多需要动态调整的地方. 然后做这些Box组件,就是为了复用它们,但现在

python 中 模块,包, 与常用模块

一 模块 模块:就是一组功能的集合体, 我们的程序可以直接导入模块来复用模块里的功能 导入方式 一般为 : import 模块名 在python中, 模块一般分为四个通用类别 1使用python编写.py 文件 2.已被编译为共享库或DLL 的c 或c++扩展 3把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包) 4.使用c编写并链接到python解释器的内置模块 使用模块的优点: 1.从文件级别组织程序, 更方便管理 2.拿来主义, 提升开发效率

Python3 与 C# 扩展之~模块专栏

代码裤子:https://github.com/lotapp/BaseCode/tree/maste 在线编程:https://mybinder.org/v2/gh/lotapp/BaseCode/master 在线预览:http://github.lesschina.com/python/base/module/模块专题.html 老师休假度蜜月去了,这学期也到了尾声,小明同学觉得自己学的挺好的,在四处逛游的过程中看见了小潘的电脑,然后惊到了! In [1]: # 导入matplotlib的p