读《修改代码的艺术》--http://book.csdn.net/bookfiles/506/

原创 2007年09月22日 16:18:00



         本书是由Object Mentor公司总裁,Robert C. Martin,一位面向对象技术大师所著。
        今天偶然在csdn读书首页看见它的介绍和部分章节的试读,因为最近对软件的设计想要多多了解,所以就试读了一下。
        昨天刚看了一本关于极限编程(xp)的书,还没看完,刚看到第二章说到一些基本的软件设计的模式,啥瀑布式,原型式,步步提交式,当然还有该书倡导的xp,都谈到了软件设计的一些不可忽视的问题。该如何最大限度的设计一款稳固,实用,令用户愉悦的软件?这是一个很值得探讨的问题,这些设计模式难于解决的一个重要问题在于:需求总是在改变.

        Martin“给那些腐化得散发着臭味的程序起了一个别致的名字:遗留代码”。

        “什么是遗留代码?我未加定义就直接使用了这一术语。现在来看一看它的严格定义:遗留代码就是指从其他人那儿得来的代码。导致这一点的原因很多,例如,可能是我们的公司从其他公司那儿获取了代码;可能是原来的团队转而去做另一个项目了(从而遗留下了一堆代码)。总而言之,遗留代码就是指其他人编写的代码。不过,在程序员的口中,该术语所蕴涵的意义却远远不只这些。遗留代码这一说法随着时间的推移已经拥有了某些独特的含义。”

        “ 对我来说,遗留代码就是那些没有编写相应测试的代码。明白这一点是很痛苦的。人们会问,代码的好坏与是否编写了测试有什么关系呢?答案很明显,而这也正是我将要在本书中阐述的:没有编写测试的代码是糟糕的代码。不管我们有多细心地去编写它们,不管它们有多漂亮、面向对象或封装良好,只要没有编写测试,我们实际上就不知道修改后的代码是变得更好了还是更糟了。反之,有了测试,我们就能够迅速、可验证地修改代码的行为。

         他也对xp做了一些评价:“我们常常使用极限编程实践来帮助团队控制他们的工作、实现通力合作以及代码的交付。我常常觉得极限编程(XP)与其说是一种软件开发的方式,倒不如说是一种有助于组建起一支良好合作的工作团队的思想理念,而这个团队能够每两星期交付漂亮的软件则只不过碰巧是这一理念的副产品之一而已。

“修改软件的四个起因

为了简明起见,让我们来看看修改软件的四个主要起因:

(1) 添加新特性;

(2) 修正bug;

(3) 改善设计;

(4) 优化资源使用。”


           他也谈到了“优化与重构类似,但目标不同。对于重构和优化,我们都可以说:“我们在进行修改的过程中将会保持功能不变,但我们可能会改变某些其他东西。”对于重构来说,这里的“某些其他东西”就是指程序的结构,我们想让代码更容易维护。而对于优化来说,“某些其他东西”则是指程序所使用的某些资源,通常指时间或内存。”
 

http://book.csdn.net/bookfiles/403/

 http://book.csdn.net/bookfiles/403/
  • mmm123lmj
  • mmm123lmj
  • 2009年09月19日 02:07
  • 337

http://book.csdn.net/bookfiles/68/

http://book.csdn.net/bookfiles/68/
  • pengjihong960
  • pengjihong960
  • 2008年05月26日 13:08
  • 433

http://book.csdn.net/bookfiles/541/10054118239.shtml

http://book.csdn.net/bookfiles/541/10054118239.shtml5.7  多页面间传递数据当遇到一个非常大的表单时,不可能把所有的表单都放在一个页面里面,需要将...
  • jiang1hai2zhou3
  • jiang1hai2zhou3
  • 2008年11月15日 10:15
  • 765

http://book.csdn.net/bookfiles/629/10062920203.shtml

http://book.csdn.net/bookfiles/629/10062920203.shtml
  • colin_gan
  • colin_gan
  • 2009年09月26日 13:44
  • 166

http://book.csdn.net/bookfiles/29/index.html

http://book.csdn.net/bookfiles/29/index.html http://club.beelink.com.cn/dispbbs.asp?boardid=168&id=1...
  • chutiange
  • chutiange
  • 2007年01月26日 17:31
  • 349

http://book.csdn.net/bookfiles/15/10015611.shtml

http://book.csdn.net/bookfiles/15/10015611.shtml
  • cyuyan112233
  • cyuyan112233
  • 2010年06月15日 13:32
  • 276

http://book.csdn.net/bookfiles/556/10055618512.shtml

http://book.csdn.net/bookfiles/556/10055618513.shtmlAJAX的全名为Asynchronous JavaScript And XML,基本上它是多种技...
  • zstzw
  • zstzw
  • 2008年04月16日 21:26
  • 616

修改代码的艺术 读书笔记(一,修改代码的四种原因)

修改代码的四个主要原因: 1 增加一个功能 2 修复一个bug 3 improve design 4 优化资源利用,例如内存或时间。 这四种修改代码的原因和它影响系统的方面:           ...
  • hongchangfirst
  • hongchangfirst
  • 2016年09月13日 13:31
  • 661

修改代码的艺术 读书笔记(二,修改现有代码的四种技巧)

在没有Unit Tests的代码下如何更好的更改代码?四种方法: 1 Sprout Method,衍生方法 Class Experiment {   void existingMethod() {  ...
  • hongchangfirst
  • hongchangfirst
  • 2016年09月13日 13:33
  • 574

读书报告之《修改代码的艺术》 (I)

《修改代码的艺术》,英文名《Working Effectively with Legacy Code》,中文翻译的文笔上绝对谈不上“艺术”二字,愧对艺术二字(当然译者不是这个意思)。书中第三部分不论是...
  • crylearner
  • crylearner
  • 2014年09月05日 00:20
  • 3219
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:读《修改代码的艺术》--http://book.csdn.net/bookfiles/506/
举报原因:
原因补充:

(最多只允许输入30个字)