首先我以个人开发者的角度来评论这本书,因个人经历所限,并未有大型团队协作,多人并行开发的经历,所以我比较关注的地方在于如何能适应需求变更,快速高质量的满足客户需求。我想每个开发者都应该有感受,需求是不断不断变化的,特别现在互联网时代,客户很可能都不知道自己想要什么需求,在版本迭代中慢慢形成,或者客户虽然刚开始明确但过程中要对最终做重大改变,所以软件开发中灵活高效解决需求变更是十分重要的。
讲完背景,所以,本书中前两章敏捷开发和极限编程我没有太多感触。
以下是我觉得这本书对我来说很重要的几个点。
测试驱动开发。
这个是本书对我影响较大的第一个点,我相信很少开发者在代码之前会写测试代码,认为那是浪费时间。但我们很容易遇到两个问题:1.你后台部分代码写完了,但这些代码需要前台事件来触发才能执行,那你必须要等前台完工且他有时间,且验证时刻你必须要依赖于前台能提供的一些事件来确保代码正确性,通常前台不可能触发所有可能的case;2.你修复了一个bug或者更改了一点小的需求,但你很难确保(如果有很好的设计习惯有可能可以确保)这个变动不会引发负面影响,你需要跑一下主功能但也没办法覆盖所有可能的测试情况。如果你采用的是测试驱动开发的方式,那么前两种问题将不存在,测试驱动开发方式提示你可以伪造一个前台,伪造他的任何事件来验证你的后台代码,测试驱动开发对每个功能点甚至每个方法都有验证,针对情况2你只需要跑一下你之前的单元测试用例即可。
软件设计原则。
刚刚有提到修复bug或者增加需求可能会带来不确定因素,但是如果你有良好的软件设计习惯,可以把这个风险降到最低。这个良好设计习惯即书中的软件设计原则:OCP、SRP、DIP等,这些原则可以让你的代码远离一些“坏味”的噩梦,让你在面临需求变更的时候更高效,代码更健壮;更易维护和拓展。
设计模式。
我强调一下书中的观点,不要为了设计模式和设计模式。比如所有对象new都可以使用工厂模式,但是你是否真的需要呢?考虑好你的场景,根据需求,甚至刚开始能不引入的情况都不使用,在适当的时候发现重构代码引入设计模式可以让你的代码更优雅有效时才引入。本书对设计模式的讲解在于例子比较实际,不想网上概念介绍都是为模式而模式,你可以不引入模式实现同样代码,且你的代码看起来会更简洁优雅一些。
总体来讲,这是一本好书,一本比较实际实用的书。推荐写过一段时间代码,对代码组织能力和变更能力感觉到吃力,或者觉得现有代码很难维护想更好重构的人读,不推荐还在学习语言语法和使用的人读。不太满意之处,在于很多设计模式有些过时或者不是很恰当,翻译有时不是特别尽人意(无可避免,有些字读英文很容易理解但你理解后你也翻译不好)。
一本好书,一本实用的书。
测试驱动开发与设计模式入门
《敏捷软件开发》热门书评
-
好书不代表是好教材
18有用 3无用 总很有神叔 2009-11-16
好的技术书籍的标准是通俗易懂;文字精炼;耐读,有吸引力;有思想性。uncle bob的书写功力有目共睹,而且他的技术修为也绝对无人质疑。因此他写的这本书秉承了他一贯的优势。符合所有好处所具备的条件。所有我们可以毫无内疚的宣称,“这本书是我见过最好的书”。孟岩作序,也为这本书的推广添砖加瓦。在序中他表...
-
又一本设计模式
12有用 8无用 optman 2007-07-23
看到前面有评论说,此书与敏捷的关系不大,颇有同感。所谓敏捷,那就是代码先写了再说,且看我们是如何做到,这就是读了这本书的感受。中文版没有把特定的英文缩写在第一次引用时列出来(只能在后面的索引表里找到),让我很不爽,比如DIP和SRP。不过,说到底还是中文看得快,比看小说都快。本书的一大特点就是浅显,...
-
这本书里有一个爱情故事!
5有用 7无用 LipingTaBaBa 2009-02-13
孟岩为这本书写了一个代序.这个代序很长,有两页半,其中一页半用来讲述孟岩本人和这本书的感情纠葛.我为大家复述一下这段感人至深的故事.下面孟先生代表孟岩,小doocaubm和Asd代表什么,请您自己判断.2001年秋天,北京,孟先生那时候已经颇有些成就了,见识也颇有些广泛了,但是他碰见doocaubm...
-
模式案例书
5有用 0无用 一格 2011-01-13
敏捷软件开发提倡测试先行,设计适应要求,迭代式渐进开发。一、通过用例来确认需求,分析软件行为:针对用例中的事物对象建立合理的类结构;分析用例中类似情形的变化因素,尽量用抽象来统一一类变化,由此建立系统的大致静态结构。在此不需要、也很难确定好系统的最终结构,因为还没有实际的类交互,还不能很好明确此时的...
-
java晋级绝对推荐
3有用 4无用 pesome 2006-02-08
我2年前读这本书,只能理解20%,但觉水平已经上了一个档次。现在重读,更觉经典。这是能够读多遍,每次都让你有新体会的技术书。它涉及XP,UML,原则,模式,实战等,绝对值得收藏。...
书名: 敏捷软件开发
作者: [美] Robert C·Martin
出版社: 清华大学出版社
原作名: Agile Software Development: Principles, Patterns, and Practices
副标题: 原则、模式与实践
译者: 邓辉
出版年: 2003-09-01
页数: 476
定价: 59.00元
装帧: 平装
丛书: 软件工程实践丛书
ISBN: 9787302071976