重构 重构 9.1分

依法重构

颠颠De我
2018-02-28 14:51:57
在软件开发的各种种类的书籍中,有诸如《算法导论》、《编译原理》这种逻辑严密,证明推导较多的基础著作。也有《C++ Primer》这种内容繁多、娓娓道来的介绍性书籍。这些书都是好书,但是如果让我来评论一下写作难度的话,我认为《重构》这本书的写作难度要大于前述的作品的。主要是因为以下的原因:
  1、计算机理论、架构、使用说明类书籍大多都有迹可查,一本好书只要能够用合适的措辞把事实陈述出来,配上较为生动的例子就足以让读者领会作者的意图了。而重构这项工作并没有真正意义上的谁好谁坏,也没有事实上的标准,这种经验性的东西,要写得有条理性,还要有理有据,难度不小。
  2、知识性的内容,读者大多会带着消化吸收的态度去学习,而经验性的条款,有探究精神的读者就会保留一分怀疑,而因为个人项目经历的不同导致的重构思路的差异是不可避免的,那么如何求同存异,总结出普遍适用的重构规律,让读者能够接受,这又是一个难点。
  令人庆幸的是《重构》的作者Martin Fowler写出了这一本好书。在读这本书之前我也算有一些小项目的开发经验,经常会因为类的抽象和代码段的重复问题烦心,但是这样的经验类的问题又很难通


...
显示全文
在软件开发的各种种类的书籍中,有诸如《算法导论》、《编译原理》这种逻辑严密,证明推导较多的基础著作。也有《C++ Primer》这种内容繁多、娓娓道来的介绍性书籍。这些书都是好书,但是如果让我来评论一下写作难度的话,我认为《重构》这本书的写作难度要大于前述的作品的。主要是因为以下的原因:
  1、计算机理论、架构、使用说明类书籍大多都有迹可查,一本好书只要能够用合适的措辞把事实陈述出来,配上较为生动的例子就足以让读者领会作者的意图了。而重构这项工作并没有真正意义上的谁好谁坏,也没有事实上的标准,这种经验性的东西,要写得有条理性,还要有理有据,难度不小。
  2、知识性的内容,读者大多会带着消化吸收的态度去学习,而经验性的条款,有探究精神的读者就会保留一分怀疑,而因为个人项目经历的不同导致的重构思路的差异是不可避免的,那么如何求同存异,总结出普遍适用的重构规律,让读者能够接受,这又是一个难点。
  令人庆幸的是《重构》的作者Martin Fowler写出了这一本好书。在读这本书之前我也算有一些小项目的开发经验,经常会因为类的抽象和代码段的重复问题烦心,但是这样的经验类的问题又很难通过网络得到有效的指导。于是就只能摸着石头过河,有时候灵光一闪而过能够做到Method Abstract,减小了代码的复杂度。但是有时候脑子不好使的时候又只能看着一块块重复的代码干着急,这对于想要提升自己代码水平的我来说简直就是折磨。
  这本书最令我佩服的地方就是,作者将所有的重构手法都进行了场景归类,还进行了命名。如果我们熟悉了其中的手法,就能很好的避免在重构时不知所措,或者是“冲动重构”的情况。在重构的过程中,每一步都能做到有的放矢,这样代码的质量就能稳稳地提升。这应该就是传说中的“按照基本法重构”?
  关于重构的书,本来就不多,我也只打算看这一本。重构毕竟还是一个经验活,就算知道了再多的重构手法,如果在实际工作中碰不到相应的案例,很快也便会忘记了。所以我把这本书长期放在我的工作台旁边,告诉自己:这里用了Extract Method,那里Extract 了 Subclass。通过这样的锻炼,慢慢掌握重构的技巧。
  总之,重构也是有其依据所在的,不过再好的著作都教不会不动手的人,慢慢在实践中去体会,就能够提升自己的代码质量了~



  PS:最近发现了提高自己的一个有效的技巧,那就是及时总结,一味的输入和输出都不是很可取,在固定的时间停下来,总结一下最近的工作。停下来品味一下高手写出来的程序,有时候会有莫名的收获。
0
0

查看更多豆瓣高分好书

回应(0)

添加回应

重构的更多书评

推荐重构的豆列

了解更多图书信息

豆瓣
免费下载 iOS / Android 版客户端