infoq_InfoQ编辑推荐读物清单

infoq

最近,我们在InfoQ编辑团队中进行了一次对话,讨论了我们最推荐给InfoQ读者的书籍,这些书籍基于我们认为对程序员,架构师和管理人员影响最大的书籍。 这是我们最终同意的十六本书的最终清单,以及其他一些技巧,以及最初建议它们的编辑的评论。

亚历克斯·布莱维特(Alex Blewitt)
《极限编程入门》(Kent Beck)是XP的不错的入门,即使您不赞成“敏捷万能”的方法,也可以很好地阅读。 可能不是参考文献。

我的参考指南是《算法入门》 (Cormen / Leiserson / Rivest / Stein),这本书非常密集,但非常有价值。

约翰·史密斯(John Smith) 陷入困境的IT项目可能是您以前从未遇到过的项目,但实际上解释了在管理项目时可能出错的许多事情。 作为您当前正在研究的项目的记分卡,它也很有趣…

不过,我认为可能值得观察的是,这取决于您对哪种书类型(或应该被推荐)的经验水平。 肯特(Kent)的XP书适合新手和不熟悉敏捷的人使用,但科克本(Cockburn)的书可能更适合经验丰富的人。 同样,我不会对完整的新手进行算法介绍,但是,如果您想知道如何实现B树或理解算法的复杂性度量,则必不可少。

黛博拉·哈特曼
在敏捷软件开发的高度协作环境中,Jean Tabaka撰写的《 协作说明:软件项目负责人的便利技能》一书提供了解决棘手的管理问题(如冲突,人际沟通和时间限制)的答案。 如果您讨厌会议和/或认为会议应该有所改善,那么您必须阅读本书-无论您是否参与敏捷项目!

查尔斯·汉布尔
Harold Abelson,Gerald Jay Sussman和Julie Sussman编写的计算机程序的结构和解释 :几年前,当我与朋友聊天时,我被推荐为“ SIC-P”,因为我的编码能力似乎已经达到平台。 这不是一本特别容易的书,如果您正在寻找快速解决问题的方法,那么这不是您想要的书。 但是,这是有益的,密集的阅读,它可能对我的编码的影响要大于我所阅读的其他内容。

Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides撰写的《 Design Patterns》是SIC-P的一本不错的后续书籍,尽管我承认我第一次阅读时并不喜欢它。 无可否认,尽管它在一处获得了丰富的面向对象设计专业知识,但我最初感到其中很多是有趣的理论,我永远不会真正使用。 随着时间的流逝,尽管我越来越喜欢这些想法,但是当我坚持进行一些设计工作时,我仍然会经常引用它。 强烈推荐。

马克·莱文森
敏捷软件开发: Alistair Cockburn撰写的合作游戏(第二版) 。 可能是我读过的关于敏捷软件开发的最有趣的书。 它与任何一种方法都不相关,而是Alistair分析游戏性,个人沟通,团队合作:所有软件开发的核心要素。 该书还包括有关软件外部敏捷性的部分,对各种方法的概述以及更多内容。

乔恩·卡岑巴赫(Jon Katzenbach)和道格拉斯·史密斯(Douglas Smith)所著的《团队的智慧》 -敏捷前的一本书,卡岑巴赫和史密斯研究了许多行业中的真正团队,对这些团队成功的成因提出了一些真实的分析和严格要求。 到本书结尾,您将发现“没有什么可以保证高绩效团队的建立。您可以做的最好的事情就是创造条件,以帮助他们形成。” 这本书是我的系列《 Scrum为什么起作用》的核心。

斯里尼·彭奇卡拉
《企业应用程序体系结构的模式》,作者 :Martin Fowler:我喜欢这本书,因为它是有关架构师或开发人员在进行典型软件开发项目时遇到的几乎所有设计问题的唯一信息资源。 它可能是最好的模式书(连同“四个设计模式”一书 ),涵盖了领域逻辑,表示层,管理会话状态以及对象关系结构和行为模式等主题。 像任何好的资源一样,无论您仍在使用EJB3之前的J2EE技术??,JEE还是轻量级的框架(如Hibernate和Spring)或.NET应用程序,本书中讨论的模式都是相关且有效的。 每个开发人员都必须阅读和拥有的书籍。

埃里克·埃文斯(Eric Evans)的领域驱动设计 :自从2004年发行以来,这本书一直对软件开发社区有很好的参考。它强调了使业务领域与软件设计和开发保持一致的重要性。 所讨论的一些概念,例如无处不在的语言,模型驱动的设计,有界的上下文和反腐败层,可以在任何中型到大型商业域中使用,以管理域模型的复杂性。 阅读本书之后,我开始在适用的项目中应用DDD原理,并且我成功地消除了贫乏的领域模型并以一种更加面向对象的方式处理业务逻辑。 本书中讨论的概念与技术和框架无关,因此可以将它们应用于基于Java,.NET或其他技术的任何软件开发项目中。 同样,这本书是我去年发表的“领域驱动的设计和开发实践” 文章的主要灵感。 对于参与创建或管理业务域的任何软件开发人员来说,这本书都是必读的。

企业集成模式:设计,构建和部署消息解决方案作者:Gregor Hohpe和Bobby Woolf:自2004年首次阅读本书以来,这一直是我最喜欢的书之一。 作者很好地组织和描述了几种异步设计模式,这些模式在每天的企业应用程序中非常有用,尤其是那些涉及多系统集成的应用程序。 核心讨论是关于各种集成样式,包括“消息传递”,这是异步通信模式的核心。 本书中的示例包括流行的贷款经纪人流程应用程序,该应用程序已在几个最新的ESB框架中实现。 本书是对最近大多数SOA集成和ESB框架(例如ServiceMix , Mule和Spring Integration )的启发,它们支持本书中讨论的集成模式。

Peopleware-汤姆·德马可(Tom DeMarco)和提摩西·李斯特(Timothy Lister)的生产性项目和团队 :去年,在一位朋友推荐之后,我读了这本书。 我不得不说这是我读过的最有影响力的书之一。 在这本书中,作者借助行业示例,调查和统计数据表明,软件开发中的主要问题是人为的(因此称为Peopleware),而不是技术(如硬件或软件)。 他们的理论是,开发人员,设计师和其他脑力劳动者达到一种称为“流程”的状态,他们可以在解决复杂问题上取得长足的进步。 但是任何中断(无论是电子邮件,电话还是漫游)都将中断该流程,并且需要一段时间(根据统计数据平均需要15分钟)才能再次返回该流程。 根据作者的说法,经理的工作不是使团队成员工作,而是使他们能够工作。 自从本书首次出版以来已经有20多年的时间了,即使在所有新的软件开发技术和框架以及敏捷项目管理方法论出现之后,本书中讨论的概念仍然具??有相关性和有效性。 这是每位经理和负责领导团队成员的团队领导者必读的书。 我强烈建议每位软件管理员阅读这本书-不止一次。

沃纳·舒斯特(Werner Schuster)
务实的思维和学习:安迪·亨特(Andy Hunt) 重构您的垃圾软件将务实的程序员的观点带到了最终平台:我们头的灰质。 它包含许多使用Dreyfus学习模型来帮助改善学习,工作等的方法。

机器内部:乔恩·斯托克斯(Jon Stokes)的微处理器和计算机体系结构插图集,收集了Ars Technica关于CPU和其他技术的多年文章。 乔恩·斯托克斯(Jon Stokes,“汉尼拔”)破解了CPU的黑匣子,并指出了一些有趣的地方-他在现代CPU(例如最近的x86和Power CPU)中做到了。 知道指令融合如何帮助提高重排序缓冲区效率对于冷却器的讨论非常有用-但是了解内存层次结构和缓存行为如何影响现代CPU的性能可能只会帮助您优化自己。

也可以看看HOPL会议的会议记录 。 许多论文可以在线获得,也可以印刷形式获得。 似乎C式,命令式,花括号语言的单调世界可能被各种范式所加深。 随着这些事情的发展:未来的语言或想法已经存在了数十年。 HOPL论文是许多语言的详细历史,这些语言要么曾引起人们的关注,要么可能会来临,例如Smalltalk,Erlang,Lua,LISP或许多其他语言。

艾伦·凯(Alan Kay)关于“小话的早期历史”的论文提供了很多信息。 我每年都开始重新阅读它-不知何故我总是找到新的东西。 在上一读中,我意识到基于Actors模型的原始Smalltalk到底有多少。

HOPL的论文显然主要是关于历史的-但是我发现许多开发人员甚至都没有发生过的事件和以前开发的技术的基本知识(哦,1995年)。向“有经验的”开发人员展示40年的技术有点令人不安并看到他们难以置信地喘着粗气(这样做的好处是看起来像普罗米修斯,上面举着新奇的礼物,尽管很快就很无聊)。

瑞安·斯洛博扬(Ryan Slobojan)
有效的Java由约书亚·布洛克:有效的Java被广泛推崇为Java开发的圣经之一。 它不仅使读者理解语言,如许多其他书籍一样,而且了解如何最有效地利用Java语言和API创建快速,可靠,可扩展和可维护的软件。 许多原则也适用于其他编程语言,因为良好的软件设计的许多原则都是通用的。 我发现,在阅读本书之后,我以另一种眼光看待了我编写的代码-变得更易于阅读,总的代码行更少,并且稍后再阅读时更易于修复错误。 。 对于以Java语言进行开发的任何人,我认为这本书都是必读的书-它不仅告诉您其中的内容,而且还告诉您何时以及如何最有效地使用它。

斯蒂芬·蒂尔科夫(Stefan Tilkov)
我最近读过的最好的书之一是迈克尔·尼加德的《发行》! –充满了以谋生为生的人的实用建议。 这本书充满了战争故事,显示了大型系统发生故障的地方,迈克尔利用他丰富的经验提取了一些常见的反模式,这些问题在幼稚的设计中屡屡发生。 然后,他展示了如何使用适当的模式来解决它们。 我发现这本书非常有趣,仅涉及现实生活中的轶事,并且在您每次构建真正需要工作的系统时都提供了实用的建议。

翻译自: https://www.infoq.com/articles/recommended_reading_list/opicPageSponsorship=c1246725-b0a7-43a6-9ef9-68102c8d48e1

infoq

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览34716 人正在系统学习中 相关资源:经典刻录软件尼禄Nero6.6.1.4中文安装版及序列号-其它工具类资源…

来源:cunfu6353

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月8日
下一篇 2020年6月8日

相关推荐