十大最伟大的软件开发书籍
1.Clean Code
这是鲍勃·马丁叔叔2008年编写的最伟大的软件开发书籍之一。它是为了教软件工程师编写干净的编程代码的原则而写的。里面有很多例子,说明如何重构代码以提高可读性和可维护性。此外,它还包括各种程序员常见错误的章节,以及解释面向对象设计的坚实原则的章节。尽管书中的例子是用Java制作的,但它对于其他面向对象的编程语言也同样有用。
除了这本书,在Bob叔叔系列中还有更多的书,例如:清洁编码器,清洁建筑等
2.The Pragmatic Programmer
3.Code Complete
4.Design Patterns:Elements of ReusableObject-Oriented Software
可能是这份名单上最著名和最古老的书(1994年出版)。它描述了三个不同类别的23种软件设计模式,以创建更加灵活、优雅和可重用的设计,而不必重新发现设计解决方案本身。将设计模式作为设计模式的解决方案的可重用形式的想法是从架构师那里获得的。克里斯托弗·亚历山大。对于一个复杂系统的架构师或开发人员来说,它是必须阅读的。提交人常被称为。这本书包括C++和Smalltalk中的例子。
5.Refactoring:lmproving the Design of Existing Code
在这本书里马丁·福勒编写有关改进现有代码的设计的文章。它将重构表示为一个改变软件系统的过程,其方式是不改变代码的外部行为,而是改进其内部结构。使用重构作为一种技术,它有可能采取一个糟糕的设计,并将其改造成一个好的设计。在这本书中,人们可以找到一个目录的40多个已证实的重构,并详细说明何时和为什么使用它。这是他使用Java作为主要语言的第一版,但这些原则适用于任何面向对象的语言。在第二版中,本书使用的主要编程语言是JavaScript。
6.Introduction to Algorithms
最著名的书籍之一,关于各种算法的深度(也称为CLRS)。它代表了一个全面的指南,为所有类型的读者,从初学者到专业人士。每一章都是相对独立的,可以作为一个研究单位.算法是用英语和伪代码描述的,所以即使是那些没有做太多编码的人也可以熟悉。可以说,它与其说是一本实用的书,不如说是一本理论著作。这本书涵盖的主题,如数据结构,快速算法,图论,计算几何和更多。
7.Structure and Interpretation of Computer Programs
这本书是最好的书籍之一,学习编程的基础(也称为SICP)。它代表了麻省理工学院技术编程的基础课程,并使用Scheme来展示不同的编程概念。本书解释了四种最著名的编程语言范式:命令式编程、基于逻辑的编程、面向对象编程和应用编程.
8.Working Effectively with Legacy Code
在这本书中,迈克尔羽毛提供了不同的策略,如何处理大型和未经测试的遗留代码库。这本书很重要,因为几乎每个开发人员在职业生涯的某个阶段都必须使用遗留系统,而且它仍然代表着许多公司面临的最具挑战性的问题。本书深入了解了软件更改的一般过程,如添加特性、修复bug、优化性能等。此外,它还将学习如何为测试准备遗留代码,并确定代码需要更改的位置。本书中的例子是用C、C++、C#和Java编写的。
9.Programming Pearls
这本书代表了最有影响力的书籍之一,帮助一个人思考作为一个程序员。书中的每一个概念都包含了实际问题和各种解决方案。这本书要求读者理解内存、CPU和算法中的核心概念,并逐渐增加困难,而不是马上给出答案。“编程珍珠”是一个有点不同的书,在这个列表中,它代表了一个坚实的方式来教授问题的数据结构和算法,特别是搜索,排序等。
10.Patterns of Enterprise Application Architecture
荣誉奖?
除了十大最伟大的软件开发书籍之外,还有更多的好书不容易被排除在这个列表之外。以下是我强烈建议阅读的一些建议:
头优先设计模式,是一本描述其他开发人员用于创建功能、可重用、优雅和灵活的软件的设计模式和最佳实践的书。它也充满了伟大的可视化,这将帮助你更容易地学习新的概念。
企业集成模式,是一本描述应用程序如何交换数据和通信的书。它包括消息传递模式、消息传递组件和一些关于如何设计银行系统的真实实例。
单元测试的艺术。这本书的重点是单元测试作为一个残酷的事情,任何开发人员需要做的,以交付好的软件。本书解释了如何进行单元测试、如何对其进行范围以及单元测试的核心能力。
Peopleware:生产性项目和团队是软件管理的经典著作之一。它讲述了为什么管理者给他们的团队这么多的回旋余地来完成任务,以及为什么微软有这么多高效的特警队。这本书探讨 会学或政治问题,如团体化学,“流动的时间”和安静的工作环境。
神话中的男人月讨论生产率,解决一个神话,即如果你雇佣更多的工程师来做这项工作,那么一名工程师所花的时间可以平分。它描述了如何处理项目交付中的延迟,如何作为项目负责人进行有效的沟通,以及如何管理项目迭代。
领域驱动设计:解决软件核心的复杂性说明如何将过程转化为软件。它描述了对于不编写软件的人来说,流程是什么样子的,以及如何交流进程,以便将其转换为软件系统。
凤凰计划:一本关于IT、DevOps和帮助您的企业获胜的小说讲述的是一家虚构的公司,该公司正在从一个较旧的较不完整的工作模式过渡到DevOps模式。它谈到在业务和发展之间协调方面的挑战以及如何建立这一桥梁。
软件技能:软件开发人员生命手册。每个程序员在他的职业生涯中都需要一些软技能,特别是随着时间的推移责任的增加,所以这本书完美地出现在这个地方。与大学、客户的互动,如何自信地交谈或谈判是你会在这本书中找到的。此外,它还包含了一些关于如何建立正确的习惯以提高生产力的生产力技巧。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!