软件工程师必备书单

Posted 人邮异步社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件工程师必备书单相关的知识,希望对你有一定的参考价值。

1、好代码 ,坏代码

[英] 汤姆·朗(Tom Long) 著,姚军,茹蓓 译

Google开发工程师从零讲解高质量代码,整合作者及团队多年的软件开发实践经验,通过50+条锦囊妙计、100+个案例,帮你轻松理解和掌握编程技能。

本书分享的实用技巧可以帮助你编写鲁棒、可靠且易于团队成员理解和适应不断变化需求的代码。内容涉及如何像高效的软件工程师一样思考代码,如何编写读起来像一个结构良好的句子的函数,如何确保代码可靠且无错误,如何进行有效的单元测试,如何识别可能导致问题的代码并对其进行改进,如何编写可重用并适应新需求的代码,如何提高读者的中长期生产力,同时还介绍了如何节省开发人员及团队的宝贵时间,等等。

2、拥抱开源(第2版)

[美] 戈登·哈夫(Gordon Haff) 著,X-lab 开放实验室 译

开源发展历程解读,无开源,不软件,开源即未来,构建软件新生态,深入理解开源世界背后的本质。

本书深入阐释了自由软件如何成为开源软件以及如何销售开源软件。本书从开源如何彻底改变软件的编写方式、合作方式、沟通方式、组织结构以及商业价值等多个方向展开论述。内容涉及开源所创造的机会和随之而来的挑战,公司如何创造商业模式来成功地销售“自由”软件,如何从创建社区到销售商业产品应用开源开发模式,审视与开源项目和产品管理及许可相关的重要问题,以及开源原则如何更广泛地适用于DevOps和其他组织实践。

本书不仅适合对开源软件感兴趣的人员、IT从业人员以及致力于开源健康发展的人员阅读参考,而且适合作为高等院校相关专业的开源教育通识读物。

3、代码整洁之道

罗伯特·C.,马丁(Robert,C.,Martin) 著,韩磊 译

鲍勃大叔作品,程序员,汇聚编程数十年编程生涯的心得体会,阐释如何解决软件开发人员、项目经理及软件项目领导们所面临的棘手的问题。

软件质量,不但依赖架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。

本书提出一种观点:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自实际项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。

本书阅读对象为一切有志于改善代码质量的程序员及技术经理。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。

4、重构:改善既有代码的设计(第2版)

[美] 马丁·福勒(Martin Fowler) 著,熊节,林从羽 译

重构20年,生动阐述重构原理和具体做法,普通程序员进阶到编程高手的修炼秘笈和代码整洁之道。

本书是经典著作《重构》出版20年后的更新版。书中清晰揭示了重构的过程,解释了重构的原理和实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了60多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助开发人员一次一小步地修改代码,从而减少了开发过程中的风险。

本书适合软件开发人员、项目管理人员等阅读,也可作为高等院校计算机及相关专业师生的参考读物。

5、持续交付2.0:业务引领的DevOps精要(增订本)

乔梁 著

持续交付领域,敏捷与精益转型导师乔梁新作,世界互联网公司软件交付工作原则与方法解析,国内大型互联网公司多位管理者与领域专家合力倾情推荐。

本书“重新定义”了持续交付,增补了组织管理和架构两个维度,辅助以真实案例,对持续交付的诸多原则和实践加以解读,并对持续交付过程中的取舍原则加以论述。

本书分为3个部分:第一部分作者根据自己近十年的工作及咨询经历,通过不断总结、提炼和反思,对原有的持续交付进行修正,重新定义持续交付为实现组织战略目标的能力,并引入持续交付的能力模型;第二部分阐述组织打造持续交付能力模型所需遵循的原则,包括基础原则、组织原则和架构原则;第三部分通过对多个互联网公司案例的解读,阐述如何根据组织的当前状况应用相关原则对最佳实践进行取舍,并快速达到组织能力目标。

本书适合大型互联网公司的技术VP、技术负责人,中小型互联网公司的CTO、技术VP、研发/测试/运维负责人、主管及骨干,以及组织变革者阅读。

6、领域驱动设计:软件核心复杂性应对之道(修订版)

[美] 埃里克·埃文斯(Eric Evans) 著,赵俐,盛海艳,刘霞 译

领域驱动设计(DDD)之父作品,众多声名显赫软件师鼎力推荐,深度剖析构建高质量复杂系统的核心技术。

要通过创建领域模型来加速复杂的软件开发,就需要利用大量实践和标准模式在开发团队中形成统一的交流语言;不但要重构代码,而且要重构代码底层的模型;同时采取反复迭代的敏捷开发方法,深入理解领域特点,促进领域专家与程序员的良好沟通。针对这些内容,本书结合真实项目,系统地介绍了领域驱动开发的目标、意义和方法,充分讨论了复杂系统的建模与设计问题。

本书将指导面向对象开发人员、系统分析人员和设计人员合理地组织工作,各有侧重、彼此协作,有条不紊地进行复杂系统的开发,帮助他们建立丰富而实用的领域模型,并由此创建长期适用的优质软件。

7、编程珠玑(第2版)[美] 乔恩·本特利(Jon Bentley) 著,黄倩,钱丽艳 译

算法和数据结构习题,程序员案头书单,融实战技术与趣味轶事于一炉,带你领略计算机科学之美。

本书是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。作者Jon Bentley 以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。本书对各个层次的程序员都具有很高的阅读价值。

以上是关于软件工程师必备书单的主要内容,如果未能解决你的问题,请参考以下文章

Java工程师必备书单

Java后端工程师必备书单,你读过几本呢

卓越分享丨程序员面试必备书单

程序员入门必备经典书单

互联网公司的敏捷开发是怎么回事?这一份软件工程书单送给你!

大牛书单 | 消息队列方向的好书