2018年3月18日
摘要: 第8章 SRP:单一职责原则 一个类应该只有一个发生变化的原因。 8.1 定义职责 在SRP中我们把职责定义为变化的原因。如果你想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。同时,我们很难注意到这一点。我们习惯于以组的形式去考虑职责。违反SRP的示例代码: 大多数人会认为这个接口看 阅读全文
posted @ 2018-03-18 16:10 liangxb 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 第7章 什么是敏捷设计 可以使用许多不同的媒介描述设计,但是设计最终体现为源代码。从根本上讲,源代码就是设计。 7.1 设计臭味 如果幸运,你会在项目开始时就想到了系统的清晰图像。系统设计是存在你脑中的一幅至关重要的图像。如果幸运一点,在首次发布时,设计依然保持清楚。 接着,事情开始变糟。软件像一片 阅读全文
posted @ 2018-03-18 16:09 liangxb 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 第5章 重构 在Martin Fowler的名著《重构》一书中,他把重构定义为:“在不改变代码外在行为的前提下对对代码做出修改,以改进代码内部结构的过程。”可是我们为什么要改进已经能够工作的代码结构呢?我们不是都知道“如果它没有坏,就不要去修理它!”吗? 每一个软件模块都有3项职责。第一个职责是它运 阅读全文
posted @ 2018-03-18 16:08 liangxb 阅读(596) 评论(0) 推荐(0) 编辑
摘要: 第4章 测试 编写单元测试是进行验证,更是进行设计。同样,它更是在编写文档。编写单元测试终结了许多反馈循环,尤其是功能验证方面的反馈循环。 4.1 测试驱动开发 假设我们遵循如下3条简单规则: (1)除非编写了一个不能通过的单元测试,否则不编写任何产品代码。 (2)只要编写正好导致测试不通过或者编译 阅读全文
posted @ 2018-03-18 11:19 liangxb 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 第3章 计划3.1 初始探索 在项目开始时,开发人员会和客户商讨一下关于新系统的情况,以确定出所有真正重要的信息。然而,他们不会试图去确定所有的特性。随着项目的进展,客户会不断的发现新的特性。特性发现的过程会一直持续到项目完成。 当识别出一个特性时,会把它分解成一个或者多个用户故事,并把这些用户故事 阅读全文
posted @ 2018-03-18 11:18 liangxb 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 第2章 极限编程概述 作为开发人员,我们应该记住,XP并非唯一选择。--Pete McBreen,软件技术专家在第1章中,我们概述了有关敏捷软件开发方法方面的内容,但它没有确切地告诉我们去做些什么;其中给出了一些泛泛的陈述和目标,却没有给出实际的指导方法。本章要改变这种状况。2.1 极限编程实践2. 阅读全文
posted @ 2018-03-18 11:16 liangxb 阅读(467) 评论(0) 推荐(0) 编辑