本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
1. 作者专业,内容靠谱:约翰.奥斯特豪特,斯坦福大学计算机科学教授,具有丰富的工业界经验和学术成就,是Tcl脚本语言的创建者,曾获多个技术奖项。
2. 系统化解决软件复杂性:全面探讨软件设计中的复杂性管理,提供具体方法以实现复杂软件系统的有效模块化。
3. 实用的设计哲学:与热销书的《代码整洁之道》进行对比,强调通用设计的选择,教导读者如何区分软件设计中的重要事项。
4. 内容全面更新:第二版在前一版基础上增加了新的设计策略和案例,提供更多实用的设计知识和技巧。
本书深入探讨了软件设计中的核心问题:如何将复杂的软件系统分解为可以相对独立实现的模块(例如类和方法),从而降低其复杂性并提高开发效率。本书首先介绍了软件设计中的基本问题,即复杂性的本质。其次,讨论了有关如何处理软件设计过程的“哲学”问题,如通用设计的重要性、与《代码整洁之道》中设计哲学的对比,以及如何将重要的东西和不重要的东西区分开等内容。最后,总结了在软件设计过程中应遵循的一系列设计原则,以及一系列识别设计问题的警示信号。
本书适合软件工程师、计算机科学专业的学生、教育者、对软件设计和开发感兴趣的自学者和技术管理者阅读。通过应用本书中的思想,读者可以最大限度地降低大型软件系统的复杂性,从而更快地以更低的成本编写软件,并构建更易于维护和增强的系统。
作者:
约翰.奥斯特豪特(John Ousterhout)
斯坦福大学计算机科学教授,美国国家工程院院士,曾任加州大学伯克利分校的计算机科学教授;获得了包括ACM软件系统奖、ACM Grace Murray Hopper奖、美国国家科学基金会总统青年研究者奖和加州大学伯克利分校杰出教学奖等多项荣誉;聚焦于与构建软件系统的基础设施相关的广泛主题,包括分布式系统、操作系统、存储系统、开发框架和编程语言;在工业界有14年的经验,创办了Scriptics 和Electric Cloud两家公司;Tcl脚本语言的创建者,并且以分布式操作系统和存储系统的相关工作而闻名。
译者:
茹炳晟
腾讯Tech Lead(技术经理),腾讯研究院特约研究员,腾讯集团技术委员会委员,中国计算机学会(CCF)TF研发效能SIG主席,“软件研发效能度量规范”团体标准核心编写专家,中国商业联合会互联网应用技术委员会智库专家,中国通信标准化协会TC608云计算标准和开源推进委员会云上软件工程工作组副组长,国内外各大技术峰会的联***、出品人和Keynote演讲嘉宾,公众号“茹炳晟聊软件研发”主理人。著有技术畅销书《测试工程师全栈技术进阶与实践》和《现代软件测试技术之美》等,译有《现代软件工程》和《DevOps 实践指南(第2版)》等。
王海鹏
1994年毕业于华东师范大学,获物理学理学学士学位和英国语言文学学士学位;是独立咨询顾问、培训讲师、译者和软件开发者;拥有30年的软件开发经验,专注于软件架构和方法学研究,致力于提高软件开发的品质与效率;翻译了20余本软件开发相关图书,内容涵盖敏捷方法学、需求工程、UML 建模和测试等多个领域。
John Ousterhout教授以其敏锐的洞察力,深入剖析了软件设计中的深层逻辑与哲学内涵。本书不仅关注代码的简洁与架构的优雅,还涉及设计原则与实践策略,每一处见解都闪烁着智慧的光芒。本书不仅是技术指导手册,更是一部提升软件设计思维的作品,激励读者重新思考软件设计的本质。无论你是编程新手还是资深工程师,阅读本书都将使你在软件设计的旅途中获得启发,领略软件设计的真谛。
——卢山 腾讯技术工程事业群总裁
无论你是软件工程师还是对软件设计和开发感兴趣的自学者,本书都具有阅读价值。软件作为数字化转型的核心要素,既要兼容过去,又要面向未来。我们总是需要在软件不断增加的功能、开发效率和维护成本之间寻求平衡点。由于我们都不能预知未来,因此当下的优未必是将来的优。书中的观点和案例将助力读者确立以战略性编程思维降低软件复杂性的设计原则。
——宋继强 英特尔中国研究院院长
在这个技术迅猛发展的时代,本书为我们提供了一个深入思考的契机。作为软件设计领域的扛鼎之作作,本书不仅深入探讨了设计的技术细节,还揭示了背后的哲学思想。它引导我们在复杂的业务需求与设计的优雅之间寻求平衡,并从哲学的角度理解软件设计中的决策与权衡。这是一本值得反复品读的佳作,它将引领我们在软件设计的旅途中不断追求卓越与优雅。
——谢涛 北京大学讲席教授,欧洲科学院外籍院士
软件设计应该是人类所从事的所有工程设计领域中复杂的一项活动,其第一性原理即是“最小化复杂性”。本书从剖析和降低软件复杂性的根源入手,精心提炼并总结了软件设计领域几十年来积累的宝贵原则、方法和实践经验。值得一提的是,在大模型快速推动软件开发革新的今天,这些哲学性的思考和实践指导对于人工智能如何应对软件设计的复杂性,仍然具有深远的意义。
——李建忠 CSDN高级副总裁
《重构:改善既有代码的设计》通过大量实例展示了代码微观设计的优化方法,而本书则从更为抽象的角度探讨了优秀与拙劣设计背后的根本差异。软件工程师若能深入学习本书,并思考如何用实例来支持或辩驳书中的观点,将会获得一次非常具有价值的思维锻炼。
——邹欣 《编程之美》和《构建之法》的作者