软件模块的3项职责
2016-04-25 18:14
197 查看
“大千世界中,唯一缺乏的就是人类的注意力。”——凯文•凯利
要使软件易于阅读和修改,所需要的不仅仅是一些原则和模式。还需要你的注意力,需要纪律约束,需要创造美的激情。
每一个软件模块都有三项职责。
功能职责(是否完成了功能?)
它运行起来所完成的功能,这也是该模块得以存在的原因。
变化职责(是否能够应对变化?)
它要应对变化,几乎所有的模块在它们的晟敏周期中都要变化,开发者有责任保证这种改变应该尽可能简单。一个难以改变的模块是拙劣的,即时能够工作,也需要对它进行修正。
交流职责(换一个人,是否可读?)
要和阅读它的人进行沟通。对该模块不熟悉的开发人员应该能够比较容易地阅读并理解它。一个无法进行沟通的模块也是拙劣的,同样需要对它进行修正。
小知曰:好的模块一定是符合“开放封闭原则(OCP,Open Closed Principle)”的,即:对扩展是开放,而对修改是封闭。
我的微信公众号:一一小知(yiyixiaozhi)。
要使软件易于阅读和修改,所需要的不仅仅是一些原则和模式。还需要你的注意力,需要纪律约束,需要创造美的激情。
每一个软件模块都有三项职责。
功能职责(是否完成了功能?)
它运行起来所完成的功能,这也是该模块得以存在的原因。
变化职责(是否能够应对变化?)
它要应对变化,几乎所有的模块在它们的晟敏周期中都要变化,开发者有责任保证这种改变应该尽可能简单。一个难以改变的模块是拙劣的,即时能够工作,也需要对它进行修正。
交流职责(换一个人,是否可读?)
要和阅读它的人进行沟通。对该模块不熟悉的开发人员应该能够比较容易地阅读并理解它。一个无法进行沟通的模块也是拙劣的,同样需要对它进行修正。
小知曰:好的模块一定是符合“开放封闭原则(OCP,Open Closed Principle)”的,即:对扩展是开放,而对修改是封闭。
我的微信公众号:一一小知(yiyixiaozhi)。
相关文章推荐
- 自己动手,丰衣足食 —— 学习自定义View(一)
- android app性能优化大汇总(google官方Android性能优化典范 - 第2季)
- 51nod1066bash游戏
- C/C++获取当前系统时间
- java实现发送邮件工具
- 20160425待整理
- [spring源码学习]三、IOC源码——自定义配置文件读取
- java实现发送邮件工具
- 绘制圆形以及球体
- wireshark抓包工具常用筛选命令方法
- B. Kuriyama Mirai's Stones
- 机器学习实践指南(一)—— 总论
- c++的输入与输出,/r与/n的区别
- 不能验证这个“安装 OS X EI Capitan”应用程序副本解决方法(已修正)
- redis之数据安全与性能保障
- UVA_11100_The Trip, 2007
- Linux 重启Tomcat脚本
- springmvc 常用的注解
- 有用
- SIGPIPE导致进程终止