软件工程师必备书单

人邮异步社区 人邮异步社区     2022-12-13     491

关键词:

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开发工程师一般负责后端开发,当然也有专门做JavaWeb的工程师,但是随着前后端的分离,越来越多的Java工程师需要往大后端方向发展。今天我们就来介绍一下Java后端开发者的书单。首先要感谢一下江南白衣大大的后端书架... 查看详情

程序员入门必备经典书单

...所以能够成功,是因为拥有一个共同点,都深切关注创建软件所需的各项实践。他们将软件开发视为一种需要精雕细琢加以修炼的技艺,他们以专业人士的标准要求自己,他们具有职业素养。伟 查看详情

推荐书单2.0:测试工程师进阶之路

18年年初,写过一篇博客:推荐书单1.0:测试工程师成长之路。里面包含了软件测试基础方法论、UI自动化测试、性能测试、python、协议、数据库、中间件、泛产品经理相关的一些书单。今年我也算看了一些书,类型比较杂,散... 查看详情

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

?软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件有电... 查看详情

书单|测试人员必读的15本书——在你的软件测试工程师路上能帮到你很多!

软件测试发展了几十年,留下了不少经典的著作。本篇文章是从我个人的角度推荐的15本测试人员必读书籍,主要推荐的依据更多的以开宗立派或者有提出方法或体系为主的书籍。而像一些测试工具操作相关的工具书没有考虑在... 查看详情

分析软件工程师必备技能

关于软件测试专业知识有很多,那么作为一个软件测试人员应该掌握哪些基础专业技能,作为自己的知识储备呢?以下从专业出发,整理了一些有用的⒈    测试主页技能掌握关于软件测试,所需要的专业技能:基... 查看详情

进阶软件测试工程师的必备

所谓长江后浪推前浪,不想提升的工程师不是好测试员。对于软件测试新人来说,除了需要掌握测试的理论知识之外,自身的定位,对学习的态度以及对工作的热情这些都是考核一个软件测试员的基本标准。态度决定了你是否具... 查看详情

11个网络工程师必备实用软件

平时网络工程师都用啥软件工作,其实网上有很多安利,这个主要还是见仁见智,用了才知道到底香不香。老杨列举一些自己平时喜欢用的软件,希望能安利给有需要的小友,提升你的工作效率。喜欢的记得... 查看详情

软件工程师必备的简历模板

...答写几行字,全局概括。工作经历XXX有限公司资深XX工程师(20YY.MM~2 查看详情

一份程序员必备的经典算法书单

点击关注 异步图书,置顶公众号每天与你分享IT好书技术干货职场知识 参与文末话题讨论,每日赠送异步图书——异步小编当我们在工作中使用算法时,通常都是希望能更有效地解决问题、使程序运行得更快,并且让解... 查看详情

网络工程师必备知识点

《Windows系统管理》 ################################################################################什么是BIOS?如何进入BIOS? BIOS基本输入输出系统,一般按DEL或F2进BIOS设置程序。什么是虚拟机? 虚拟机运行在计算机上的一款软件程序... 查看详情

软件工程师成长为架构师必备的十项技能

  深度学习Keras之父、谷歌大脑人工智能和深度学习研究员Fran?oisChollet撰写了一本深度学Python教程实战书籍《Python深度学习》,书中介绍了深度学习使用Python语言和强大Keras库,详实新颖。    近日,Fran?oisChollet接受了采... 查看详情

这份ic设计必读书单,值得所有ic设计工程师一看!

...人:ExASIC把verilog变网表的必备参考书,前端设计工程师的能力提升必经之路《FromAlgorithmstoHardwareArchitectures》作者:KarimAbbasThisbookusesdigitalradiosasachallengingdesignexamplegeneralizedtobridgeatypicalgapbetweendesignerswhoworkonalgorithmsandtho... 查看详情

软件测试工程师必备技能之java基础

目录一、环境依赖二、基础语法基本数据类型:数据类型转化:关键字运算符类和方法时间和日期三、json四、集合五、testng注解一、环境依赖1.jdk依赖2.环境变量配置3.参考文档https://www.w3cschool.cn/java/java-character.html二、基... 查看详情

前端工程师在ubuntu下载必备软件以及git命令(代码片段)

1.下载vscode编辑器code下载官网sudosudodpkg-i安装包名称.deb2.下载gitgit下载官网一条命名搞定!sudoapt-getinstallgit3.ubuntu下git常用命令#ctrl+l-清屏。cLear#ctrl+c-终止命令。#ctrl+d-退出shell,好像也可以表示EOF。#ctrl+z-将当... 查看详情

11个网络工程师必备实用软件,别说一口君藏私不告诉你

平时网络工程师都用啥软件工作,其实网上有很多安利,这个主要还是见仁见智,用了才知道到底香不香。老杨列举一些自己平时喜欢用的软件,希望能安利给有需要的小友,提升你的工作效率。喜欢的记得... 查看详情

嵌入式软件工程师笔试面试必备(很有帮助)

数组指针与指针数组:数组指针定义int(*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长... 查看详情

月薪20k以上的软件测试工程师的必备知识点?拿来吧你!

我们都知道作为一个软件测试工程师,入门相对比较简单,但是要达到技术精通,甚至薪资能达到20k以上的话,那绝对需要对测试开发有一个系统的了解,以及对这些系统的知识能够熟练掌握。今天的话是我... 查看详情