领域驱动设计:软件核心复杂性应对之道_推荐五本优秀的软件工程书籍

b64ad266e38a1be3196c27ad6d8292d5.png
链接: https:// medium.com/ki-labs-engi neering/top-5-contemporary-software-engineering-books-8b5ca6a28e83

如果你从事软件工程已经有一段时间了,并且喜欢阅读,那么你可能已经读过了《代码整洁之道》、《重构》、《人月神话》、《人件》等,不得不说,他们都是经典中的经典,本文还将推荐5本新书,都是近一两年才出版的,你不用担心它过时。

这五本书涵盖了多个领域,如软件设计和管理甚至涉及到“人员问题”,每一本书的推荐我都说明了为什么我认为你应该阅读这本书的原因。

1、《Software Design X-Rays》

4b116a625201666e44849f0d73de2074.png

本书这是我读过的关于软件工程的最重要的书之一。亚当·托恩希尔(Adam Tornhill)还有另一本书《Your Code as a Crime Scene》是关于代码分析和“代码健康”这一主题。

书中作者展示了许多技术(大部分是基于版本控制系统的数据)用于识别热点,复杂性趋势,耦合,或者重构。所有的材料都匹配了相应的例子,参考资料和一些有趣的图例。读完这本书后,你可能会问自己:如何做到将自己学到的新知识应用到的开发过程中,并且让身边的同事认可这些方法。

为什么你应该阅读这本书?

通过这本书,你将学习如何分析代码库,如何保持代码健康,以及如何组织团队创建更加可持续的工作。如果你是位负责任的软件工程师,架构师或工程经理,那本书一定要去阅读

较旧/类似的书籍

《Your Code as a Crime Scene》,此外本书某些部分和这些书的主题一样:《修改代码的艺术》、《重构》、《架构整洁之道》

2、《A Philosophy of Software Design》

bfad364f3dc984894b478a5c067a5396.png

本书介绍了John Ousterhout自己在各种大型系统上工作的经验以及他的斯坦福大学课程,将自己的教学方法和多年的系统开发经验相结合,以此探讨关于系统复杂性。如果有人让我推荐关于提高编码和设计技巧的书,那一定是这一本。

有趣的是,单元测试,测试驱动开发或敏捷开发等主题仅在其中一章中进行了简要讨论,该章节与本书的其余部分一样:充分论证,直接切中要害。查阅更多可点击:《当我读了《软件设计的哲学》......》

为什么你要读这本书?

《软件设计的哲学》的核心主题是简单性,因此,本书本身很容易理解,单单深度和浅层模块的章节就对得起本书的价格了,同时它还讨论了一些流行的实践方法,如OO设计模式以及关于代码整洁的小方法等。

较旧/类似书籍

《代码大全》、《编写可读代码的艺术》、《代码整洁之道》

3、《数据密集型应用系统设计》

97328e1eecb499cdf6b277d3b5c8683b.png

通过诸如云本地应用程序、微服务架构或NoSQL数据存储,对分布式系统和数据的特征进行讨论。这本由研究员兼软件工程师Martin Kleppmann撰写的书解释了数据驱动应用程序的理论和实践,从本书你就能看出作者对该领域的认识有多深刻(毕竟,只有你对一个主题有深刻的认识,你才能教好它)。

为什么你要阅读这本书?

分布式系统是一个存在大量研究的领域,对该主题的讨论很容易成为一个学术问题,Kleppmann在保证深度的前提下以一种通俗易懂的方式向读者解释,和《Software Design X-Rays》有点类似,本书在实用性和学术性之间取得一个很好的平衡

较旧/类似书籍

《Somehow related: Designing Distributed Systems》、《 Building Microservices》、《企业应用架构模式》

4、《Developer Hegemony》

dbbabb20cee06ea61389011bba6bb8ed.png

这本书可能是我读过的所有书中最独特的一本,不过我不会向初级软件工程师推荐这本书,虽然这本书写的非常好。它解释了公司结构、管理风格和职业阶梯背后的驱动力。

为什么你应该阅读这本书?

如果你是在金字塔式的公司结构中工作,那它会教你如何生存,如果你已经从事软件工程已经有一段时间了,你可能会在你的同事、领导甚至是公司政策上已经发现到一些现象,这本书它揭示了如何在不强迫别人的情况下,让事情朝着对你有利的方向发展

较旧/类似书籍

可能没有,或者是《人月神话》、《人件》、《项目百态 》

5、《The Manager’s Path》

74497aa036e6d3cec46ecf58592adf48.png

作为软件工程师,你的经验越丰富,就越需要在管理和领导方面承担起更多的责任,经理的职业道路涵盖了从单个团队的工程领导到管理多个团队并代表公司的技术领导。这是一本关于科技公司的技术领导、管理和人员主题的实用而真实的书——没有戏剧化和肤浅的建议。

为什么你应该阅读这本书?

尽管这本书主要是关于工程管理的,但是对于软件工程师来说,这本书是很有价值的。你将了解团队功能障碍、项目管理以及软件开发过程中常见问题的解决方案。也许不是开创性的,但如果你只想读一本关于工程管理的书,我推荐这本书,因为它包含了许多实用和可行的建议。

较旧/类似书籍

《格鲁夫给经理人的第一课》、《Debugging Teams》、《人件》、《人月神话》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值