第11章 DIP:依赖倒置原则DIP:依赖倒置原则:a.高层模块不应该依赖于低层模块。二者都应该依赖于抽象。b.抽象不应该依赖于细节。细节应该依赖于抽象。11.1 层次化 下图展示了一个简单的层次化方案: 高层的Policy层使用了低层的Mechanism层,而Mechanism层又使用了更细节.....
分类:
其他好文 时间:
2015-08-28 00:33:19
阅读次数:
191
第10章 LSP:Liskov替换原则 Liskov替换原则:子类型(subtype)必须能够替换掉它们的基类型(base type)。10.1 违反LSP的情形10.1.1 简单例子 对LSP的违反导致了OCP的违反:struct Point { double x, y;}public enu.....
分类:
其他好文 时间:
2015-08-27 22:55:15
阅读次数:
190
第9章 OCP:开放-封闭原则 软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改。9.1 OCP概述 遵循开放-封闭原则设计出的模块具有两个主要特征: (1)对于扩展是开放的(open for extension)。这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进...
分类:
其他好文 时间:
2015-08-27 20:33:32
阅读次数:
392
第5章 重构 在Martin Fowler的名著《重构》一书中,他把重构定义为:“在不改变代码外在行为的前提下对对代码做出修改,以改进代码内部结构的过程。”可是我们为什么要改进已经能够工作的代码结构呢?我们不是都知道“如果它没有坏,就不要去修理它!”吗? 每一个软件模块都有3项职责。第一个职责是.....
分类:
其他好文 时间:
2015-08-27 00:23:46
阅读次数:
228
第4章 测试 编写单元测试是进行验证,更是进行设计。同样,它更是在编写文档。编写单元测试终结了许多反馈循环,尤其是功能验证方面的反馈循环。4.1 测试驱动开发 假设我们遵循如下3条简单规则: (1)除非编写了一个不能通过的单元测试,否则不编写任何产品代码。 (2)只要编写正好导致测试不通过...
分类:
其他好文 时间:
2015-08-26 20:06:33
阅读次数:
182
第3章 计划3.1 初始探索 在项目开始时,开发人员会和客户商讨一下关于新系统的情况,以确定出所有真正重要的信息。然而,他们不会试图去确定所有的特性。随着项目的进展,客户会不断的发现新的特性。特性发现的过程会一直持续到项目完成。 当识别出一个特性时,会把它分解成一个或者多个用户故事,并把这些用户.....
分类:
其他好文 时间:
2015-08-26 17:29:30
阅读次数:
156
第2章 极限编程概述作为开发人员,我们应该记住,XP并非唯一选择。--Pete McBreen,软件技术专家在第1章中,我们概述了有关敏捷软件开发方法方面的内容,但它没有确切地告诉我们去做些什么;其中给出了一些泛泛的陈述和目标,却没有给出实际的指导方法。本章要改变这种状况。2.1 极限编程实践2.1...
分类:
其他好文 时间:
2015-08-26 13:33:05
阅读次数:
260
在《敏捷软件开发-原则、模式与实践》一书中,对开放闭合原则的定义为:
软件实体(类、模块、函数等)应该是可以扩展的,但是不可以修改。
简言之,两个特征:
1、对于扩展是开放的;
2、对于修改是关闭的
这两点特征貌似自相矛盾,怎么样在不改动模块源码的情况下去更改他的行为呢?如果不更改一个模块,又怎么能够去改变它的功能呢?
答案很简单,就是抽象。模块可能对抽象体进行操作。由于模块依赖于一个...
分类:
其他好文 时间:
2015-08-13 18:15:48
阅读次数:
179
关于敏捷开发的26个心得
我收集各式各样的至理名言。最近我一直在研究敏捷软件开发;有收获吗?下面就是能够指导敏捷软件开发团队的26条核心原则。
用例一完全能够运行后再开发用例二。厨房里有一种说法正好可以印证这个问题:“做好一盘菜后你再做下一盘”. 对于软件开发来说一个最大的问题就是人们喜欢并行开发多个任务。因为不可避免的,我们设计的功能中总会有一部分会被放弃砍掉,如果提前开...
分类:
其他好文 时间:
2015-08-12 09:03:56
阅读次数:
138
bob大叔在他的著作《敏捷软件开发-原则模式与实践》一书中提到拙劣设计的七种症状:
1、僵化性:指的是设计难以改变;
2、脆弱性:设计易于遭到破坏;
3、顽固性:设计难以重用;
4、粘滞性:难以做正确的事情;
5、不必要的重复性:过分设计;
6、不必要的重复:滥用鼠标进行复制黏贴
7、晦涩性:混乱的表达
设计的“臭味”主要是因为他们违背了一个或多个设计原则,这些原则包括:...
分类:
其他好文 时间:
2015-08-08 13:37:38
阅读次数:
171