文档章节

设计的臭味---- 腐化软件的气味

@ccny
 @ccny
发布于 2016/04/19 10:29
字数 292
阅读 51
收藏 1
点赞 1
评论 0

僵化性(Rigitity):很难对系统进行改动,轱辘每个改动,都会迫使许多系统其他改动。

脆弱性(Fragility):对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题

牢固性(Immobility):很难解开系统的纠结,使之成为一些可在其他系统中重用的组件。

粘滞性(Viscosity):做正确的事情比做错误的事情要困难

不必要的复杂性(Needless Complexity)设计中包含有重复的结构,而改重复的结构 本可以使用单一的抽象进行统一。

不必要的重复(Needless Repetition)设计中包含有重复的结构 ,而该重复的结构 本可以使用单一的抽象进行统一

晦涩性(Opacity):很难阅读、理解、没有很好地表现出意图。

© 著作权归作者所有

共有 人打赏支持
@ccny

@ccny

粉丝 12
博文 105
码字总数 25746
作品 0
东城
架构师
谈程序的腐化

写代码如同打扫屋子,有句话叫一屋不扫何以扫天下。如果单个的一个模块代码都不能管好,如何成就一个完善的软件系统?今天我们来说说,一个代码模块的代码是如何一步步腐化变质,到最后程序员...

keyu88888
2017/05/11
0
0
拿什么拯救你,太湖!

江苏无锡部分地区自来水发臭 市民抢购纯净水 2007年05月30日 扬子晚报   [扬子晚报网消息] "我们震泽新村的自来水怎么都是臭的啊?""我是曹张新村的居民,家里的自来水都是臭的。"昨天上午...

阮一峰
2007/06/12
0
0
设计原则-->开放-封闭原则(OCP)

软件实体(类、模块、函数等等)应该是可以扩展的,但是不能修改的。 如果程序中的一处改动就会产生连锁反应,导致一系列样模块的改动,那么设计就具有有僵化的臭味. OCP建议我们应该对系统进...

@ccny
2016/04/25
54
0
【外刊IT评论】清除代码异味

本文是从 Cleaning up code smells: Venkat Subramaniam @ Chennai 这篇文章翻译而来。 今天,Venkat Subramaniam 就关于清除代码异味的话题给我们做了一个非常有趣的演讲。下面就是我记录的...

红薯
2011/05/18
1K
8
重构之十六字心法

本文作者:伯乐在线 -ThoughtWorks 。未经作者许可,禁止转载! 欢迎加入伯乐在线专栏作者。 这篇文章是我写过的所有文章里最难产的一篇,前前后后斟酌酝酿了好几个月。因为重构对于我来讲真...

伯乐在线
2017/05/10
0
0
消除技术债务?DevOps可以这么用!

DevOps强调开发运维过程的可度量与透明化。而通常情况下我们把软件质量分为内部质量和外部质量。所以我们应该对内部质量和外部质量分别进行度量,以便持续改进和优化软件质量。 src="https:/...

陈能技
2016/02/19
0
0
你们写代码最花时间的是哪一部分?

RT。 对我来说,最花时间的部分是,给一个方法起名字,有时候甚至要一天呐。 于是,我决定以后全把方法起名为 method100000001 method100000002 ...... 以注释来表示该方法的作用,而不是用方...

大东哥
2012/06/21
2.2K
45
新顶级域名是为了敛财 ICANN 被指已腐化

流行DNS软件BIND的设计者Paul Vixie博士抨击了互联网域名管理机构ICANN。 他认为,ICANN推出数百个新的通用顶级域名(gTLD)是敛财和错误之举。他说,ICANN在功能上说监管者,但它却被监管的...

oschina
2015/10/28
5.2K
24
php设计模式的六大原则(一):单一职责原则

<?php//单一职责原则 class Modem{ public function dial(){ return "dialing....";} public function hangup(){ return "hangup!!!";} public function send(){ return "send info!!!";} p......

stone_
2015/11/13
0
0
推荐一招:使用“无副作用函数”改良代码

说明 无副作用函数,是指那些不使用类的成员,不使用全局变量变化的函数。 在进行代码重构时,因为: --可读性:屏蔽一些信息(例如细节实现或概念封装),来提高可读性 --降低圈复杂度:为了...

转型实践者
2017/11/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
24分钟前
0
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
31分钟前
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
35分钟前
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
38分钟前
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
0
0
Dubbo解析(六)-服务调用

当dubbo消费方和提供方都发布和引用完成后,第四步就是消费方调用提供方。 还是以dubbo的DemoService举例 -- 提供方<dubbo:application name="demo-provider"/><dubbo:registry address="z...

青离
昨天
1
0
iptables规则备份和恢复、firewalld的9个zone以及操作和service的操作

保存以及备份iptalbes规则 设定了的防火墙规则要进行保存,否则系统重启后这些规则就没有了,使用命令 ”service iptables save ” 会把设定好的防火墙规则保存到文件/etc/sysconfig/iptabl...

黄昏残影
昨天
0
0
k8s image

k8s.gcr.io/kube-apiserver-amd64:v1.11.0k8s.gcr.io/kube-controller-manager-amd64:v1.11.0k8s.gcr.io/kube-scheduler-amd64:v1.11.0k8s.gcr.io/kube-proxy-amd64:v1.11.0k8s.gcr.......

分秒
昨天
0
0
数据结构--排序

这篇博客包含了数据结构中多种的排序算法: (1)简单选择:第一趟在A[0]~A[n-1]之间找到最小的,与A[0]进行交换,之后在A[1]~A[n-1]之间进行。。。第i趟在A[i-1]~A[n-1]之间找到最小的,最后...

wangxuwei
昨天
1
0
一名3年工作经验的java程序员应该具备的职业技能

一名3年工作经验的Java程序员应该具备的技能,这可能是Java程序员们比较关心的内容。我这里要说明一下,以下列举的内容不是都要会的东西—-但是如果你掌握得越多,最终能得到的评价、拿到的薪...

老道士
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部