每位开发者都应该阅读的 5 本书,以及一些额外推荐。
这篇文章最初发表在我的全新博客“开发者地牢”上。
上周我写了一篇文章,回顾了我从事开发工作的头五年,并提出了一些建议,其中一条就是“一定要读技术书籍!”。很多人对此很感兴趣,所以我决定再写一篇文章,介绍我认为对开发者最有用的书籍。
如果您对第一篇文章感兴趣,可以点击这里阅读!
我一直以来都更喜欢教程和在线课程,但遗憾的是,它们无法涵盖那些能将你的开发技能提升到一个全新水平的基础知识。过去两年,我一直在如饥似渴地阅读技术书籍,并尝试将书中的知识应用到日常工作中。我发现我的代码质量有了显著提升,同时也注意到自己犯了很多错误,这促使我为自己设定了更高的标准,并不断精进我的技术。现在回想起来,在开始阅读这类书籍之前,我“浪费”了多少时间,真希望自己能早点开始。希望这篇文章能帮助你走上成为一名优秀开发者的道路。
坦白说,有些链接是亚马逊联盟链接,有些不是,有些书甚至是免费的。你不一定要通过这些链接购买,但如果你购买了,我会非常感激。
1. 《代码整洁之道:敏捷软件开发手册》(罗伯特·C·马丁著)
这本书真是个绝佳的起点,我绝对会把它视为入门之作。它涵盖了依赖关系、方法和类的命名、注释、测试等诸多主题。就我个人而言,读完这本书后,我感觉自己像个傻瓜,觉得自己之前做的一切都是错的,它彻底颠覆了我之前对软件开发的认知。但
我相信,读完这本书后,我的代码更易于维护、测试,也更容易理解。
这本书写得也非常好,所以即使反复阅读也毫不费力。
2. 《程序员修炼之道:你的精通之旅》(戴夫·托马斯和安德鲁·亨特著)
这本经典著作的20周年纪念版出版了,我两年前读过原版。这是我读的第一本技术书籍,非常棒,可以和《代码整洁之道》相提并论。
这本书充满了各种实用技巧,可以帮助你改进软件,从如何处理测试和重构,到创建自动化工具,再到避免重复劳动,应有尽有。书中技巧层出不穷,而且通过案例和实例,使这些技巧更容易理解和掌握。
3. 《代码整洁之道:专业程序员的行为准则》(罗伯特·C·马丁著)
是的,这又是罗伯特·C·马丁(又名“鲍勃大叔”)的一本书。他是一位观点鲜明、对软件充满热情的人。这本书正是源于他对软件的这份热情,探讨了我们应该如何处理软件创建和维护的各个环节,并试图建立一套所有开发者都应该遵循的原则。我真心认为这本书对每位开发者来说都是必读之作。就我个人而言,它让我开始反思自己的职业操守,并激励我以不同的方式开展日常工作。
4.如何高效地处理遗留代码(Michael Feathers)
这本书的书名似乎包含了你可能需要的一切,对吧?至少我看到的时候是这么想的。我们不是一直都在处理遗留代码吗?你现在在做一个全新的项目,还没有测试,所以这跟你没关系?
读完这本书,你对遗留代码的看法将截然不同。你会发现,我们的大部分工作都是在处理遗留代码,而这本书将为你提供大量工具,助你将遗留代码带入新的辉煌时代。这本书也会让你反思自己之前的做法,甚至让你对自己开发的软件感到羞愧。正是在这种反思中,巨大的进步才会发生。
5.测试驱动开发实例(Kent Beck)
这可能有点争议,这里会有两种论点。第一种是:“我真的需要测试吗?” 你会惊讶地发现,2019 年还有很多开发者不测试他们的代码。他们没有意识到,开发工作的一部分就是提供一种可重复的方法来证明程序的正确性(或者说,证明程序没有失败)。
第二个论点是:你是否真的需要测试驱动开发(TDD)。你可能在软件构建完成后才进行测试,并认为两者是一样的,但事实并非如此。TDD 提供了一些你在代码编写完成后再进行测试所无法获得的特性,尤其是对测试套件的完全信任,这使得你能够轻松地进行重构,从而自动地改进代码。
读完本书后,你将理解其中的区别。但你仍然无法理解的是,在没有 TDD 的情况下,你是如何开发软件的。
以上是我最看重的五件事,其实还有很多,但我觉得这几件是必备的。我一般不读关于特定技术的专著,因为技术发展太快,这类书出版的时候往往就已经过时了。我发现,最好是学习那些与具体技术无关的知识。
如果你已经读过那些书了,我在这里留下一些我读过并且非常喜欢的其他书籍的链接。
自适应代码:运用设计模式和SOLID原则进行敏捷编码(Gary McLean Hall著)
计算机程序的结构与解释(Harold Abelson 和
Gerald Jay Sussman,
Julie Sussman 合著)
《Head First 设计模式:一本易于理解的指南》(Eric Freeman 和 Elisabeth Robson 著)
如果你需要书籍推荐,请告诉我,我的藏书里总有新书哦😃。
非常感谢您抽出时间阅读这篇文章,您读过文中提到的任何一本书吗?我很想在评论区看到您的看法。
您有什么书推荐吗?欢迎随时告诉我。




