软件系统腐化的四个原因
Rober .C. Martin指出,软件腐化的四个原因
1.过于僵硬(regidity)
表现:很难加入一个新功能,要波及很多模块,起初几天的工作,要很长时间才能实现。
对立面:可扩展性(extensibility),使新的模块更好插入。可以用开闭原则(O),里氏替换原则(L),依赖倒置(I),组合/聚合复用原则保证
2.过于脆弱(fragility)
表现:一个地方的修改,会引起其他的地方出现故障。
对立面:灵活性(flexibility),允许代码修改平稳的发生
3. 复用率低(Immobility)
表现:由于一块代码,很难在新的功能中使用,那么程序员倾向于不碰原来的代码,重新写自己的代码,甚至复制粘贴,然后修改下。
对立面:字面意思---提供复用率,不仅仅是代码的复用,还有
a.算法的复用,比如排序算法
b.数据结构的复用,比如队列,栈,树等这些数据结构都有十分透彻的研究。
4. 粘度过高(viscosity)
表现:开发中,破坏原来设计者的意图,达到更快的开发的目的。即权宜之计,牺牲长期的利益。比如修理收音机时,直接飞线短路,达到某个目的,但是牺牲了原有的设计。
对立面:可插拔性(Pluggability) 。某个有同样接口的类可以很容易替换另一个同样接口的类。
转载于:https://www.cnblogs.com/itquanquan/p/8459580.html
软件系统腐化的四个原因相关推荐
- 计算机设备更新理由,电脑硬件明明升级了,为什么速度还这么慢?四种原因在背后作怪!...
原标题:电脑硬件明明升级了,为什么速度还这么慢?四种原因在背后作怪! 电脑硬件在我们生活中很常见,指的是通过更换更高的硬件或者是加装硬件来提高电脑的性能,在很多朋友的心目中都会有这样的一个误区,就是电 ...
- 计算机屏幕出现条纹w7,win7电脑屏幕出现条纹四种原因和解决方法
在运行Win7旗舰版系统的时候屏幕突然出现条纹,虽然还可以正常操作,但是眼睛看久了会很累,很多人就会担心是不是屏幕坏了.遇到win7电脑屏幕出现条纹问题怎么办呢?首先我们要知道故障原因,然后在对症下药 ...
- 服务器显示器蓝屏怎么办,win7系统经常发生显示器蓝屏四种原因和解决方法
在win7旗舰版系统中,显示器发生蓝屏属于常见问题之一,相信很多用户都有遇到过,最烦恼就是工作到一半数据没有保存就发生蓝屏了.其实造成显示器发生蓝屏的原因有很多种,小编给大家收集总结win7系统经常发 ...
- linux无线网卡连接不稳定怎么办,无线网络信号不稳定的四种原因及解决方法
宽带路由器在一个紧凑的箱子中集成了路由器.防火墙.带宽控制和管理等功能,具备快速转发能力,灵活的网络管理和丰富的网络状态等特点.在使用无线网络过程中,无线网络信号不稳定,忽强忽弱是大家经常遇到的问题, ...
- php输入文字不显示,ps写了文字为什么不显示 ps里输入文字不显示的四个原因及解决方法...
photoshop输入文字不显示,文字看不到怎么办?在使用ps时,经常要输入文字,有时可能会遇到,输入文字会没有显示出来,或是只有一个黑点的情况,这是什么原因造成的?应该如何解决呢?今天,小编为大家带 ...
- 四种原因分析和解决笔记本电池充不了电的办法
笔记本电池充不了电的四种原因分析和解决办法.不少网友会问,笔记本电池充不进电的原因是什么?笔记本电池不充电怎么办?笔记本电池不充电的4种原因分别是电源适配器故障,电池故障,主板故障,电路故障.那么我们 ...
- SK电讯进军中国网游的四种原因
下午看到的消息,韩国SK电讯将战略注资中国网游开发商趣味第一.据消息人士透露,此次SK电讯投资总额为3000万美元,本年度将不低于1000万美金,三年内总额为3000万美金,此笔资金不包括引进网游产品 ...
- ERP物料采购系统需求分析与效果展示 ERP实施以失败告终的四个原因分析
三年前给客户做的一个物料采购系统,客户因为价格问题搁置,今天把它拿出来分享,以分析改善方法. 项目名称: Item Purchasing System /Item Purchasing Request ...
- 传奇登录器打不开的四种原因
最近很多传奇玩家或者GM都遇到了传奇登陆器打不开,没反应,提示无法访问指定设备等问题,导致很多游戏没有办法玩,让玩家心情沮丧,作为GM,那么就更伤心了,很多玩家进不来游戏,开服数千元的成本,差不多都打 ...
最新文章
- Tips_发送请求时添加一个随机数参数,让浏览器每次都重新发请求到服务器
- CTFshow 命令执行 web45
- spring boot logback配置
- c# 文件流读写文件
- 少儿编程150讲轻松学Scratch(八)-如何设计经典游戏打砖块
- %3c php foreach%3e,PHP 数组函数-数组排序
- java get null_java 获取对象中为null的字段实例代码
- DW —— 简易计算器 (JavaScript)
- vSAN ReadyNode™中可以(也不能)更改的内容
- 蓝桥杯 ALGO-101 算法训练 图形显示
- mysql触发器编程_mysql之触发器trigger详解
- Linux meset
- 知识付费与内容付费的区别
- asp毕业设计——基于asp+access的学生论坛设计与实现(毕业论文+程序源码)——学生论坛
- Windows10家庭版获取最高管理员权限
- 堆栈的区别linux C,uClinux堆栈
- LeetCode-781-森林中的兔子
- 记事本html特效,很漂亮的网页飘落特效代码
- 汕尾话专用专注微信聊天表情GIF图片
- 宽带和下载速度(下载速率)之间的区别