重构不是银弹

成书时,面向对象尚是小众,而如今函数式编程已开始流行

时至今日,重构的大部分思想以及方法,有点追求的程序员都略有耳闻,如果是 Java 程序员,更是不想知道都难

发展至今,重构已经类似于编码的一部分了

此书 1 2 3 章已把重构是什么以及什么时候重构说清楚了,应该细看

4 5 6 7 8 9 10 11 都是具体的方法,熟悉 Java 的可以对应着看一下

之后的章节大略过一下就行了


曾经在学校里刷了《代码大全》,所以,再看此书,相对就没那么重要了

比如虽然我 iOS 弱爆了,但看到现在公司的项目,上来蹭蹭蹭几百行的函数,大量的重复代码,各种神奇数字,也是醉了

当然这并不是说之前项目不好,毕竟大家都有被 deadline 逼成傻逼的时候

总得来说,此书还是应该过一遍,毕竟封面印着:

普通程序员进阶到编程高手必须修炼的秘籍

因为不看的话,可能意识不到一些前人路过的坑

像我对临时变量的理解就不妥

还有以前写函数过于随意,像参数不带 let ,不暴露的也没加 private

比较有启发的是:

  • 消除 临时变量
  • 多态 替换 Switch
  • Null Object

目前做 iOS 的时间尚短,属于初级程序员,不懂的地方巨多,每每在试错中做功能,写的时候这些东东也就统统忽略了

虽然时常想着功能 OK 后立即重构,但人都有惰性,往往看到能跑了就万事大吉,然后把整理代码的希望寄托在重构上

比较理想的情况是:
版本控制 + Review + 结对 + 重构 (目前的公司好赞啊,已实现了大半)

但这又让我想起了 Fred Brooks 在 1987 年所发表的一篇关于软件工程的经典论文 ——《没有银弹》

重构当然也不是银弹

只能重写了少年