代码重构
- - ITeye博客随着程序的演化,我们有必要重新思考早先的决策,并重写部分代码. 代码需要演化;它不是静态的事物. 重写、重做和重新架构代码合起来,称为重构. 当你遇到绊脚石 --- 代码不在合适,你注意到有两样东西其实应该合并或是其他任何对你来说是"错误"的东西 -------- . 如果代码具备以下特征,你都应该考虑重构代码:.
1982年年初,Lisa软件开发组决定让软件在随后的6个月里有一个大的提升。有些管理层的人认为,按周计算每个程序员开发的代码行数,用这种方法来跟踪项目的进度是个不错的主意。他们设计了一个表格,每个程序员周五要在表格上填写他们本周所开发的代码行数。
比尔·阿特金森(Bill Atkinson),Quickdraw软件的作者、用户接口主要设计人、迄今为止Lisa软件最重要的实现者,他认为用代码行数作为评价软件开发生产率的指标是愚蠢可笑的。在他的心中,尽量写出即小又快的程序是他追求的目标,统计代码行数只会鼓励人们写出糟糕、臃肿、不能用的代码。
他目前的主要工作是优化Quickdraw软件的区域计算算法,他使用了一个更简单、更常规的算法重写了区域计算引擎,经过一番调整,区域操作比以前快了6倍。作为附带效应,他的重写使代码的行数大概减少了2000行。
当他完成这些优化工作后,正好赶上管理部门第一次要求填写那个表单。当看到表单上有要求填写代码行数那部分内容时,他停顿了2秒,然后填写了这样的数字:-2000。
我不知道管理层对此作何反应,但过了几周后他们就不再要求比尔填这种表格里,比尔也很乐意这样。