模块划分的原则及方法
2013-11-01 17:52
99 查看
首先解释一下模块的概念,对客户端应用程序开发来说,dll(pe文件)是模块的表现形式;对web项目来说,包是模块的表示形式。
一、基本原则:
1. 模块功能要单一;
2. 新增功能时,尽量减少对已有模块的改动,在新增模块中实现功能;
3. 功能调整或修改bug时,影响的模块数量要尽可能少;
4. 功能调整或修改bug时,受影响的模块要尽可能的小(指客户端应用程序开发,比如dll文件);
5. 模块间要松耦合,模块接口尽可能少、并且简单;
二、划分方式:
1. 按功能划分;
2. 按层划分,持久化层(数据库访问层)、网络层、业务逻辑层、界面展示层;
三、划分方法:
1. 首先按功能划分模块;
2. 根据功能特性多少,决定是否要划分子功能模块;
3. 功能模块内部,根据实际情况,决定是否需要按层划分模块(从复用性、独立性角度考虑);
4. 在代码级别,不同层必须分离,即一个源文件,只能负责一个层(界面、业务、网络等)的事情;
5. 如果涉及到较多的第三方合作内容,将合作内容作为一个独立模块;
四、经验:
1. 通常来说,界面和业务逻辑是紧密关联的,业务又和网络紧密相连,所谓紧密关联,是指一个变了,另一个通常也会变,因此这3个层通常可以合并为一个模块;
2. 有些实用类,包括业务逻辑,需要在项目内共用,要提出来做为单独的模块;
3. 持久化层,如数据库访问层,通常需要不断调优、数据库表结构升级,这种变动需求通常与业务本身无关,因此可以将持久化层设计为单独模块;
五、FAQ:
【问】为什么模块要先按功能划分,再按层划分?
【答】相对于产品功能本身的变化,统一对某一个层面进行集中调整(比如网络层、界面层)的可能性不大,这一类调整通常是对原有技术方案的调整,影响很大,需要完整的程序和测试计划,这种情况出现时,必然会违背基本原则3,而与先功能划分,还是先按层划分没有关系。
一、基本原则:
1. 模块功能要单一;
2. 新增功能时,尽量减少对已有模块的改动,在新增模块中实现功能;
3. 功能调整或修改bug时,影响的模块数量要尽可能少;
4. 功能调整或修改bug时,受影响的模块要尽可能的小(指客户端应用程序开发,比如dll文件);
5. 模块间要松耦合,模块接口尽可能少、并且简单;
二、划分方式:
1. 按功能划分;
2. 按层划分,持久化层(数据库访问层)、网络层、业务逻辑层、界面展示层;
三、划分方法:
1. 首先按功能划分模块;
2. 根据功能特性多少,决定是否要划分子功能模块;
3. 功能模块内部,根据实际情况,决定是否需要按层划分模块(从复用性、独立性角度考虑);
4. 在代码级别,不同层必须分离,即一个源文件,只能负责一个层(界面、业务、网络等)的事情;
5. 如果涉及到较多的第三方合作内容,将合作内容作为一个独立模块;
四、经验:
1. 通常来说,界面和业务逻辑是紧密关联的,业务又和网络紧密相连,所谓紧密关联,是指一个变了,另一个通常也会变,因此这3个层通常可以合并为一个模块;
2. 有些实用类,包括业务逻辑,需要在项目内共用,要提出来做为单独的模块;
3. 持久化层,如数据库访问层,通常需要不断调优、数据库表结构升级,这种变动需求通常与业务本身无关,因此可以将持久化层设计为单独模块;
五、FAQ:
【问】为什么模块要先按功能划分,再按层划分?
【答】相对于产品功能本身的变化,统一对某一个层面进行集中调整(比如网络层、界面层)的可能性不大,这一类调整通常是对原有技术方案的调整,影响很大,需要完整的程序和测试计划,这种情况出现时,必然会违背基本原则3,而与先功能划分,还是先按层划分没有关系。
相关文章推荐
- [置顶] 模块划分的原则及方法
- 模块划分原则
- 子系统与模块的划分原则
- 软件服务模块的划分原则
- CSS模块化(四) 如何划分模块--单一职责原则
- 模块划分的 和 方法
- 模块划分:平台类,数据类,方法类
- 明德扬FPGA设计模块划分方法(1)
- 在结构化的程序设计中,模块划分的原则是()
- Android重要模块及方法
- 等价类划分的原则
- 处理URL为模块/控制器/方法的格式
- 一个内核模块例子(实现调用其他模块中的方法,传递参数等)
- Simulink中matlab Function模块全局变量的使用方法总结
- python通过imaplib模块读取gmail里邮件的方法
- Spring的各个模块与导包原则
- pip安装python模块报延时错误的解决方法
- 第九章 Python自定义模块及导入方法
- Python学习笔记4-如何快速的学会一个Python的模块、方法、关键字
- 浅析AM335x GPMC模块地址区域的划分--TI--Sitara AM335x系列