读书笔记

今天,泛读了<代码:改善已有代码的设计>一书,获益良多.节选部分笔记,记录如下. 软件开发应该有一个理想国,在这个国中维持着完美秩序的,不是哲学家,而是模式. 代码被阅读和修改的次数远远多于它被编写的次数. 为避免自掘坟墓,重构必须系统化进行. 好的测试是重构的根本.花时间建立一个好的测试机制是完全值得的 作何一个傻瓜都能写出计算机可以理解的代码,惟有写出人类可理解的,才是优秀的程序员 重构的节奏:测试,小修改,测试,小修改,测试,小修改… 开发过程中,你可能花上数小时重构,其间用上数十个不同的重构准则. 你可以在软件内部做很多修改,但必须对软件”可受观察的外部行为”只带来很小的变化,甚至没有变化.性能优化常不改变组件行为,只改变内部结构,但出发点不同:性能优化往往使代码较难理解,但为了得到性能不得不如此. 有两顶帽子: 或有两种行为:加新功能,和重构.加新功能时,你不应该修改已有代码,只管加新功能.重构时代不能再加新功能,只管改进程序结构,且此时你不应该添加任何测试,除百发现先前漏掉的东西,只在非常必要时才修改测试. 你会发现,自己经常换帽子. 如果没有重构,程序设计会逐渐腐败变质.代码结构的流失是累积性的. 很多时候,那个”未来的开发者”就是自己. Ralph Johnson把早期重构描述为擦掉窗户上的污垢,使你看得更远.研究代码时我发现,重构把我带到更高的层次上. 我不是一个伟大的程序员,我只是有些一些优秀习惯的好程序员而已. 良好设计是快速软件开发的根本.如果没有良好设计,可能某一段时间内进展很快,但很快,恶劣设计会让你的速度慢下来,你会把时间花在设计上面,无法添加新功能,带来恶性循环. 重构不是一件需要特别抽出时间做的事,而是应该随时随地做.不应该为重构而重构,之所以,是因为你想做别的事,而重构可以帮助你把那件事做好 大多数重构都为程序引入了更多间接层 有时候已有代码实在太混乱,重构还不如重写. 代码的坏味道有如下种: duplicated code long method