|

1. Clean Code
Bob Martin叔叔(Uncle Bob Martin)在2008年撰写的最伟大的软件开发书籍之一。该书旨在教给软件工程师编写干净的编程代码的原理。里面有很多示例,展示了如何重构代码以使其更具可读性和可维护性。此外,它包括各种程序员常见错误的章节和解释面向对象设计的SOLID原理的章节。即使本书中的例子是用Java编写的,它对于其他面向对象的编程语言也同样有用。
2. The Pragmatic Programmer
本书为开发人员提供了技术和专业的实践建议,以使其成为更好的开发人员。它研究了从个人责任,职业发展到建筑技术等主题,探讨了成为现代开发人员的意义。即使写于1999年,它在许多方面仍然有效。本书的独特之处在于它通过一系列实用的技巧来教您实用的方法,以改善开发过程。例如,作者建议读者学习一个文本编辑器并将其用于所有内容,还建议即使是最小的项目也使用版本跟踪软件。
3. Code Complete
有人认为这本书是关于编程的最佳使用指南,强烈建议初学者阅读。同样,超过15年前写的其中一本书至今仍然有效。它涉及诸如设计,编码,调试和测试等主题。在超过900页中,作者描述了如何首先为人们编写程序,然后为计算机编写程序,如何按照域划分代码,以及如何掌握顶级编码人员的人文素质(谦虚,好奇心和最重要的方面,自我检查)。
4. Design Patterns: Elements of Reusable Object-Oriented Software
该列表中可能是最著名和最古老的书(1994年出版)。它在三个不同类别中描述了23种软件设计模式,以创建更灵活,更优雅和可重用的设计,而不必自己重新发现设计解决方案。将设计模式作为设计模式解决方案的可重用形式的想法来自建筑师 Christopher Alexander。对于复杂系统的架构师或开发人员来说,它是必读的。这些作者通常被称为“ 四人帮”(GoF)。本书包括C ++和Smalltalk中的示例。
5. Refactoring: Improving the Design of Existing Code
马丁·福勒(Martin Fowler)在这本书中 谈到了改进现有代码的设计。它表示重构是更改软件系统的过程,其方式是不改变代码的外部行为,但改善其内部结构。使用重构作为一种技术,可以采用不良的设计并将其重新设计为好的设计。在这本书中,您可以找到40多种经过验证的重构的目录,其中包含何时以及为何使用它的详细信息。他使用Java作为主要语言的第一版,但是这些原理适用于任何面向对象的语言。在第二版中,本书中使用的主要编程语言是JavaScript。
6. Introduction to Algorithms
关于各种算法的最着名著作之一(也称为CLRS)。它代表了从初学者到专业人士的所有读者的全面指南。每章都是相对独立的,可以作为学习单元。算法以英语和伪代码描述,因此即使没有太多编码的人也可以熟悉算法。可以说,它的理论书比实际的书要多。本书涵盖了诸如数据结构,快速算法,图论,计算几何等主题。
7. Structure and Interpretation of Computer Programs
这本书是学习编程基础知识(也称为SICP)的最佳书籍之一。它代表了麻省理工学院技术编程的基础课程,并使用Scheme展示了不同的编程概念。本书解释了四种最著名的编程语言范例:命令式,基于逻辑,面向对象和应用程序编程。
8. Working Effectively with Legacy Code
在本书中,迈克尔·费瑟斯(Michael Feathers)提供了不同的策略来处理未经测试的大型遗留代码库。这本书很重要,因为几乎每个职业生涯中的每个开发人员都必须使用遗留系统,并且它仍然代表了许多公司面临的最具挑战性的问题。这本书深入了解了软件更改的一般过程,例如添加功能,修复错误,优化性能等。此外,它将学习如何使遗留代码准备好进行测试以及确定代码需要更改的地方。本书中的示例使用C,C ++,C#和Java编写。
9. Programming Pearls
这本书代表了最有影响力的书籍之一,可以帮助人们以程序员的身份思考。本书中的每个概念都涉及实际问题和各种解决方案。该书挑战读者理解内存,CPU和算法中的核心概念,并逐渐增加难度,而不是立即给出答案。“ Programming Pearls”与该列表中的其他书籍略有不同,它代表了教授数据结构和算法问题(尤其是搜索,排序等)的可靠方法。
10. Patterns of Enterprise Application Architecture
该列表中的另一本书来自富有成效的作者 Martin Fowler,涉及企业应用程序开发的实践。这本书教给您不同的概念,例如:您是否正确地对应用程序进行了分层,是否了解可以从中选择的不同演示设计(MVC,MVVM,模板),如何访问数据等?Martin提供了40多种模式作为解决常见问题的解决方案,同时构建企业应用程序。它带有Java和C#中的许多UML图和代码示例。考虑到这本书是2002年出版的,因此缺少一些现代概念,例如REST,JSON或云。 |
|