程序员2020年新书推荐之 02 软件构架基础-工程方法 《Fundamentals of Software Architecture: An Engineering Approach》
软件构架基础-工程方法 《Fundamentals of Software Architecture: An Engineering Approach》
数学家根据公理创建了理论,这些公理毫无疑问是正确的。软件构架师也建立公理,但是软件世界比数学更软:基本事物在软件世界中继续以快速的速度变化。
软件开发生态系统以动态平衡的恒定状态存在:尽管它在任何给定的时间点以平衡状态存在,但它长期显示动态行为。容器化的提升和随之而来的变化是该生态系统性质的一个很好的现代例子:像Kubernetes这样的工具在十年前就不存在了,但是现在存在整个软件会议来为其用户服务。软件生态系统的变化是分形的:一个小的变化会引起另一个小的变化;当重复数百次时,它会产生一个新的生态系统。
建筑师有重要责任继续质疑以前时代遗留下来的假设和公理。许多有关软件体系结构的书都是在一个几乎与当今世界不相上下的时代编写的。
实际上,作者认为,鉴于改进的工程实践,运营生态系统,软件开发流程,我们必须定期质疑基本公理,而所有这些都构成了建筑师和开发人员每天工作的混乱,动态平衡。
随着时间的流逝,细心的软件体系结构观察者看到了功能的缓慢发展。从eXtreme编程的工程师实践开始,到持续交付,DevOps革命,微服务,容器化以及现在的基于云的资源,所有这些创新导致了新的功能和权衡。作为这种观点转变的一个很好的例证,多年来,软件体系结构的细语定义是“以后很难更改的东西”。然后,出现了微服务架构样式,其中更改是一流的设计考虑因素。
每个新时代都需要新的实践,工具,度量,模式以及许多其他更改。本书以现代的眼光审视了软件体系结构,其中考虑了过去十年中的所有创新,以及一些适用于现在可用的新结构和观点的新指标和度量。
本书不会在一夜之间使某人成为软件架构,这是一个涉及许多方面的细微差别领域。我们希望为现有和新兴的架构师提供良好的软件架构及其各个方面的现代概述,从结构到软件技能。尽管本书涵盖了众所周知的模式,但是我们采用了一种新方法,即借鉴了现代经验,工具,工程实践和其他投入,以构建一本有关软件体系结构的现代书籍。
关于作者
Mark Richards是一位经验丰富的动手软件架构师,他参与了J2EE和其他技术的微服务架构,面向服务的架构以及分布式系统的架构,设计和实现。
尼尔·福特(Neal Ford)是ThoughtWorks(全球IT咨询公司)的总监,软件架构师和Meme Wrangler,该公司专门致力于端到端软件开发和交付。加入ThoughtWorks之前,Neal是DSW Group,Ltd.(一家全国认可的培训和开发公司)的首席技术官。
观点
-
好书,涵盖了有关软件体系结构许多细节方面的许多细节。它可用作参考教科书。
-
优秀的结构使简单到复杂,老到新以及建筑风格之间的权衡形成对比。建议同时用于启动文化(每个开发人员都会影响到所有事物,包括解决方案体系结构)和企业文化(以使战略讨论更加清晰)以及新事物和那些在事前进行软件体系结构的人(以及在“是物”之前是物)。
加入我们共同进步
群名称:程序员思维模型
群 号:144079203
教程网站:www.swiftuigit.com
相关文章
- Asp.net 中高亮显示搜索关键字简单方法
- 《安全软件开发之道:构筑软件安全的本质方法》
- 你的Jmeter是不是经常乱码?教你用四种方法解决它
- 同步FIFO的两种Verilog设计方法(计数器法、高位扩展法)
- Java日期计算常用方法《简述版》
- 迅雷软件一直出现崩溃问题的解决方法
- 《软件工程方法与实践》—— 2.2 什么是软件过程
- 《软件工程方法与实践》—— 3.3 传统的软件过程模型
- 【测试的艺术】+软件测试用例常用7大方法
- 《个体软件过程》—第8章8.8节管理承诺的方法
- Tomcat 输入http://localhost:8080打不开网页的解决方法
- 介绍几种等待多线程任务执行完毕的方法
- 《Effective Debugging:软件和系统调试的66个有效方法》——第3条:确保前置条件与后置条件都能够得到满足
- 《Effective Debugging:软件和系统调试的66个有效方法》——第14条:考虑对软件进行更新
- 模板方法模式
- 程序员如何具有分析眼光(读书笔记《软件构架基础 工程方法》)
- 《软件建模与设计: UML、用例、模式和软件体系结构》一一1.5 COMET:一种基于UML的软件应用建模和设计方法
- Acunetix Web Vulnerability Scanner使用和生成报告的方法
- jquery中的trigger()和preventDefault()方法
- 软件定义网络安全:一种"零接触"方法
- log4j打印出线程号和方法名
- python找不到模块的问题解决方法(有空钻研一下具体的原因)