如果你是一名程序员,想要提长自己,那么这几本书推荐给你。
1、好代码 ,坏代码
为了写出优良的代码,我们必须对手上的方案有合理的判断,并彻底想清楚特定方法的结果(好的和坏的)。为此,我们必须了解问题的根本:我们编写代码到底是为了实现什么目标?实现那些目标需要考虑哪些高层因素?本书第一部分将介绍理论方面的内容,以便读者可以为编写优良代码打下坚实基础。
第二部分中的每一章说明代码质量的一个支柱,每一节阐述一项特定的考虑因素或者技术。通常的模式是首先阐释常见的代码问题,然后说明如何使用特定技术改善这一情况。每一节的组织相对独立,这样能为每个希望向其他工程师解释特定概念或考虑因素(例如在代码评审期间)的读者提供有用的参考。
在创建能正常工作(且保持正常工作)的代码和软件时,测试是必不可少的一部分。正如第1章所讨论的,测试有不同的级别,但单元测试通常是工程师日常生活中接触最多的一种测试。关于单元测试的部分在本书的最后介绍,但请不要由此推断单元测试是只在编写完代码后才附加考虑的事项。正如我们在前几章中所看到的,测试和可测试性是我们在编写代码时一直应该考虑的事情。而且,我们将在第10章中看到,有些学派甚至走得更远——倡导在编写代码之前编写测试。
本书分享的实用技巧可以帮助你编写鲁棒、可靠且易于团队成员理解和适应不断变化需求的代码。内容涉及如何像高效的软件工程师一样思考代码,如何编写读起来像一个结构良好的句子的函数,如何确保代码可靠且无错误,如何进行有效的单元测试,如何识别可能导致问题的代码并对其进行改进,如何编写可重用并适应新需求的代码,如何提高读者的中长期生产力,同时还介绍了如何节省开发人员及团队的宝贵时间,等等。
2、代码整洁之道
你会看到好代码,也会看到糟糕的代码。你会看到糟糕的代码如何转化为好代码。你会看到启发、规条和技巧的列表。你会看到一个又一个例子。但最终结果取决于你自己。学写整洁代码很难。它可不止于要求你掌握原则和模式。你得在这上面花工夫。你须自行实践,且体验自己的失败。你须观察他人的实践与失败。你须看看别人是怎样蹒跚学步,再转头研究他们的路数。你须看看别人是如何绞尽脑汁做出决策,又是如何为错误决策付出代价。
阅读本书要多用心思。这可不是那种降落前就能读完的“感觉不错”的飞机书。本书要让你用功,而且是非常用功。如何用功?阅读代码——大量代码。而且你要去琢磨某段代码好在什么地方、坏在什么地方。在我们分解,而后组合模块时,你得亦步亦趋地跟上。这得花些工夫,不过值得一试。
本书大致可分为3个部分。前几章介绍编写整洁代码的原则、模式和实践。第2部分最需要花工夫。这部分包括几个复杂性不断增加的案例研究。你付出的劳动将在第3部分得到回报。这部分只有一章,列出从上述案例研究中得到的启示和灵感。在遍览和清理案例中的代码时,我们把每个操作理由记录为一种启示或灵感。
本书提出一种观点:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自实际项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。
本书阅读对象为一切有志于改善代码质量的程序员及技术经理。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。
3、重构 改善既有代码的设计(第2版 平装版)
本书是一本为专业程序员编写的重构指南。我的目的是告诉你如何以一种可控且高效的方式进行重构。你将学会如何有条不紊地改进程序结构,而且不会引入错误,这就是正确的重构方式。
1章展示了一个小程序,其中有些常见的设计缺陷,我把它重构得更容易理解和修改。其间你可以看到重构的过程,以及几个很有用的重构手法。如果你想知道重构到底是怎么回事,这一章不可不读。
第2章讨论重构的一般性原则、定义,以及进行重构的原因,我也大致介绍了重构面临的一些挑战。第3章由Kent Beck介绍如何嗅出代码中的“坏味道”,以及如何运用重构清除这些“坏味道”。测试在重构中扮演着非常重要的角色,第4章介绍如何在代码中构筑测试。
从第5章往后的篇幅就是本书的核心部分——重构名录。