
本网站不提供下载链接,喜欢看书的朋友请关注公众号:【lennylee的碎碎念】(lennyleede),首页回复:授人以渔,自动获取搜索资源的方法。
内容简介:
通常,人们对软件架构师持两种错误的看法。有人认为软件架构师是一种高高在上的职位;有人认为软件架构师完全不懂开发,只是会画条条框框的指挥家。本书将打破这些传统的认知,模糊软件开发和架构在流程中的界限,进而为软件架构正名。本书是一本强调实践、注重实效、轻量级、面向开发者的软件架构指南。
作者简介:
推荐序一:架构师真正要学会的事情 ix
推荐序二 xii
译者序2.0 xiii
序 xvi
关于本书 xix
软件架构培训 xxii
Part Ⅰ 什么是软件架构
第1章 什么是架构 2
第2章 架构的种类 4
第3章 软件架构是什么 6
第4章 敏捷软件架构是什么 8
第5章 架构对上设计 11
第6章 软件架构重要吗 13
第7章 问题 15
Part Ⅱ 软件架构的角色
第8章 软件架构的角色 18
第9章 软件架构师应该编码吗 22
第10章 软件架构师应该是建造大师 25
第11章 从开发者到架构师 30
第12章 拓展T 32
第13章 软技能 34
第14章 软件架构不是接力运动 36
第15章 软件架构要引入控制吗 38
第16章 小心鸿沟 40
第17章 未来的软件架构师在哪里 42
第18章 每个人都是架构师,除非他们有其他身份 44
第19章 软件架构咨询师 46
第20章 问题 48
Part Ⅲ 设计软件
第21章 架构驱动力 50
第22章 质量属性(非功能需求) 52
第23章 处理非功能需求 55
第24章 约束 57
第25章 原则 60
第26章 技术不是实现细节 63
第27章 更多分层等于更高复杂度 66
第28章 协同设计是一把双刃剑 68
第29章 软件架构是对话的平台 70
第30章 SharePoint项目也需要软件架构 72
第31章 问题 74
Part Ⅳ 可视化软件
第32章 沟通障碍 76
第33章 对草图的需要 78
第34章 无效的草图 81
第35章 C4:语境、容器、组件和类 91
第36章 语境图 94
第37章 容器图 98
第38章 组件图 102
第39章 是否包含技术选择 107
第40章 你会那样编码吗 110
第41章 软件架构和编码 112
第42章 你不需要UML工具 117
第43章 有效的草图 120
第44章 C4的常见问题 124
第45章 问题 126
Part Ⅴ 为软件生成文档
第46章 代码不会讲述完整的故事 128
第47章 软件文档即指南 131
第48章 语境 136
第49章 功能性概览 137
第50章 质量属性 139
第51章 约束 141
第52章 原则 143
第53章 软件架构 145
第54章 外部接口 147
第55章 代码 149
第56章 数据 151
第57章 基础设施架构 153
第58章 部署 155
第59章 运营和支持 157
第60章 决策日志 159
第61章 问题 161
Part Ⅵ 开发生命周期中的软件架构
第62章 敏捷和架构的冲突:神话还是现实 164
第63章 量化风险 167
第64章 风险风暴 169
第65章 恰如其分的预先设计 173
第66章 初识软件架构 179
第67章 问题 183
Part Ⅶ 金融风险系统
第68章 金融风险系统 186
Part Ⅷ 附录:“技术部落”的软件指南
· · · · · · (收起)
原文摘录:
很多团队使用关系型数据库,这个选择可能被认为很重要。为了减少在数据库技术变化时必要的返工量,很多团队会使用Hibernate或Entity Framework这样的ORM框架。引入额外的ORM层使得数据库操作能与代码的其他部分解耦,而且理论上,不用花费很多精力就能独立地切换数据库。
引入额外层的决策是将某个部分从软件系统中解耦的经典技术,促进了低耦合、高内聚和更好的关注点分离。此外,有了ORM以后,可能一个下午就完成了数据库的切换。从这一点来说,从架构上它不会再被看作是重要的。
然而,当数据库的选择可能不再被当作重要决策时,通过引入额外层实现解耦就应该是重要决策。如果你想知道为什么,试想把你当前所用的ORM或Web MVC框架完全替换成另一个,要花多长时间。当然,你可以在所选的ORM上再添加其他层,以隔离业务逻辑,并提供轻松替换ORM的敏捷性。但是,你又做出了另一个重要决策:引入了额外的分层、复杂性和成本。
尽管“重要决策”没法彻底消失,但能通过架构分层等多种策略来改变。软件系统架构流程的一部分就是搞清楚哪些是重要的及为什么。 (查看原文)
yuan
2016-09-30 21:40:13
—— 引自章节:架构对上设计