软件架构的基础

书籍描述

在全球范围内薪酬调查定期将软件架构师放在十大最佳工作中,但没有真正的指导,以帮助开发人员成为建筑师。到现在。本书提供了软件架构的众多方面的第一个全面概述。抱负和现有的架构师都将研究架构特征,架构模式,组件确定,图表和呈现架构,进化架构以及许多其他主题。

Mark Richards和Neal Ford-Dovels-on Pornce,他们专业地教授了软件架构课程,多年来一直关注适用于所有技术堆栈的建筑原则。您将在现代光线中探索软件架构,同时考虑到过去十年的所有创新。

本书审查:

  • 架构模式:许多架构决策的技术基础
  • 组件:识别,耦合,凝聚力,分区和粒度
  • 软技能:有效的团队管理,会议,谈判,演示以及更多
  • 现代性:在过去的几年里,工程实践和操作方法发生了根本性
  • 建筑作为工程学科:可重复的结果,指标和具体估值,将严格添加到软件架构

目录

  1. 前言:无效公理
    1. 本书中使用的约定
    2. 使用代码示例
    3. 奥里利在线学习
    4. 如何联系我们
    5. 致谢
      1. Mark Richards的致谢
      2. 来自纽尔福特的致谢
  2. 1.介绍
    1. 定义软件架构
    2. 建筑师的期望
      1. 制定建筑决策
      2. 不断分析架构
      3. 保持最新趋势
      4. 确保遵守决策
      5. 多元化的接触和经历
      6. 有企业域知识
      7. 拥有人际交往技巧
      8. 理解和导航政治
    3. 建筑和......
      1. 工程实践
      2. 运营/ Devops.
      3. 过程
      4. 数据
    4. 软件架构定律
  3. I.基金会
  4. 2.建筑思维
    1. 建筑与设计
    2. 技术宽度
    3. 分析权衡
    4. 理解业务驱动因素
    5. 平衡建筑和实践编码
  5. 3.模块化
    1. 定义
    2. 测量模块化
      1. 凝聚
      2. 耦合
      3. 抽象性、不稳定性和与主序列的距离
      4. 距主要序列的距离
      5. 康吉斯
      6. 统一耦合和康纳辛格度量
    3. 从模块到组件
  6. 4.建筑特征定义
    1. 建筑特征(部分)列出
      1. 操作架构特征
      2. 结构架构特征
      3. 横切架构特征
    2. 权衡和最差最差的建筑
  7. 5.识别架构特征
    1. 从域名顾虑中提取架构特征
    2. 从要求中提取架构特征
    3. 案例研究:硅三明治
      1. 明确的特征
      2. 隐含特征
  8. 6.测量和管理架构特征
    1. 测量架构特征
      1. 运营措施
      2. 结构措施
      3. 过程措施
    2. 治理和健身功能
      1. 管理架构特征
      2. 健身功能
  9. 7.建筑特征的范围
    1. 耦合和康纳士
    2. 建筑Quanta和粒度
      1. 案例研究:去,去,走了
  10. 8.基于组件的思维
    1. 组件范围
    2. 建筑师角色
      1. 建筑分区
      2. 案例研究:Silicon Sandwiches:分区
    3. 开发人员角色
    4. 组件识别流程
      1. 识别初始组件
      2. 为组件分配要求
      3. 分析角色和责任
      4. 分析架构特征
      5. 重组组件
    5. 组件粒度
    6. 组件设计
      1. 发现组件
    7. 案例研究:去,去,走了:发现组件
    8. 架构量子还原:单片架构与分布式架构之间的选择
  11. II。建筑风格
  12. 9.基金会
    1. 基本模式
      1. 泥浆
      2. 酉建筑
      3. 客户端服务器
    2. 单片与分布式架构
      1. 谬误#1:网络是可靠的
      2. 谬误#2:延迟为零
      3. 谬误#3:带宽是无限的
      4. 谬误#4:网络是安全的
      5. 谬论#5:拓扑从未改变
      6. 谬误#6:只有一个管理员
      7. 谬误#7:运输成本为零
      8. 谬误#8:网络是均匀的
      9. 其他分布式考虑因素
  13. 10.分层架构风格
    1. 拓扑
    2. 隔离层
    3. 添加图层
    4. 其他考虑因素
    5. 为什么使用此架构风格
    6. 建筑特征评级
  14. 11.管道架构风格
    1. 拓扑
      1. 管子
      2. 过滤器
    2. 例子
    3. 建筑特征评级
  15. 12.微内核架构风格
    1. 拓扑
      1. 核心系统
      2. 插件组件
    2. 注册表
    3. 合同
    4. 例子和用例
    5. 建筑特征评级
  16. 13.基于服务的架构风格
    1. 拓扑
    2. 拓扑变体
    3. 服务设计和粒度
    4. 数据库分区
    5. 示例架构
    6. 建筑特征评级
    7. 何时使用此架构风格
  17. 14.活动驱动的架构风格
    1. 拓扑
    2. 经纪人拓扑
    3. 中介拓扑
    4. 异步能力
    5. 误差处理
    6. 防止数据丢失
    7. 广播能力
    8. 请求 - 回复
    9. 在基于请求和基于事件之间的选择
    10. 混合事件驱动的架构
    11. 建筑特征评级
  18. 15.基于空间的架构风格
    1. 一般拓扑
      1. 处理单元
      2. 虚拟化中间件
      3. 数据泵
      4. 数据作家
      5. 数据读者
    2. 数据碰撞
    3. 云与本地实现
    4. 复制缓存与分布式缓存
    5. 近缓存考虑因素
    6. 实施例子
      1. 音乐会票务系统
      2. 在线拍卖系统
    7. 建筑特征评级
  19. 16. Orchestration驱动的服务导向的架构
    1. 历史和哲学
    2. 拓扑
    3. 分类
      1. 商业服务
      2. 企业服务
      3. 应用服务
      4. 基础设施服务
      5. Orchestration引擎
      6. 消息流量
    4. 重复使用...和耦合
    5. 建筑特征评级
  20. 17.Microservices架构
    1. 历史
    2. 拓扑
    3. 分散式
    4. 限界上下文
      1. 粒度
      2. 数据隔离
    5. API层
    6. 操作重复使用
    7. 前锋
    8. 沟通
      1. 编排和编排
      2. 交易和佐贺赛
    9. 建筑特征评级
    10. 其他参考文献
  21. 18.选择适当的架构风格
    1. 在建筑中转移“时尚”
    2. 决策标准
    3. 整体案例研究:硅三明治
      1. 模块化单片
      2. microkernel.
    4. 分布式案例研究:去,走了,走了
  22. III。技术和软技能
  23. 19.建筑决策
    1. 体系结构决策反模式
      1. 涵盖您的资产防模式
      2. 土拨鼠日反形
      3. 电子邮件驱动的架构防模式
    2. 建筑言论
    3. 建筑决策记录
      1. 基本结构
      2. 存储ADR
      3. ADRS作为文档
      4. 使用ADR进行标准
      5. 例子
  24. 20.分析建筑风险
    1. 风险矩阵
    2. 风险评估
    3. 风险袭击
      1. 鉴别
      2. 共识
    4. 敏捷故事风险分析
    5. 风险袭击例子
      1. 可用性
      2. 弹性
      3. 安全
  25. 21.图和呈现架构
    1. 图表
      1. 工具
      2. 图解标准:UML,C4和Arcrimate
      3. 图表指南
    2. 提出
      1. 操纵时间
      2. 增量构建
      3. InfoDecks与演示文稿
      4. 幻灯片是故事的一半
      5. 隐形
  26. 22.使团队有效
    1. 团队界限
    2. 建筑师人物
      1. 控制怪胎
      2. 扶手椅建筑师
      3. 有效的建筑师
    3. 多少控制?
    4. 团队警告标志
    5. 利用清单
      1. 开发人员代码完成清单
      2. 单位和功能测试清单
      3. 软件发布清单
    6. 提供指导
    7. 总结
  27. 23.谈判和领导技能
    1. 谈判和促进
      1. 与业务利益相关者进行谈判
      2. 与其他建筑师谈判
      3. 与开发人员进行谈判
    2. 软件架构师作为领导者
      1. 4 C的建筑
      2. 是务实的,但有远见的
      3. 以示例为首的领先团队
    3. 与开发团队集成
    4. 总结
  28. 24.制定职业道路
    1. 20分钟的规则
    2. 开发个人雷达
      1. The ConsionWorks技术雷达
      2. 开源可视化位
    3. 使用社交媒体
    4. 分开建议的话语
  29. 自我评估问题
    1. 第1章:介绍
    2. 第2章:建筑思维
    3. 第三章:模块化
    4. 第四章:定义的架构特征
    5. 第5章:识别架构特征
    6. 第6章:测量和管理架构特征
    7. 第7章:架构特征的范围
    8. 第8章:基于组件的思维
    9. 第9章:架构风格
    10. 第10章:分层架构风格
    11. 第11章:管道架构
    12. 第12章:Microkernel架构
    13. 第13章:基于服务的架构
    14. 第14章:事件驱动的架构风格
    15. 第15章:基于空间的架构
    16. 第16章:由Orchestration驱动的服务导向架构
    17. 第17章:微服务架构
    18. 第18章:选择适当的架构风格
    19. 第19章:架构决策
    20. 第20章:分析架构风险
    21. 第21章:图和呈现架构
    22. 第22章:使团队有效
    23. 第23章:谈判和领导技巧
    24. 第24章:制定职业道路
  30. 指数

产品信息

  • 标题:软件架构的基础
  • 作者:标记Richards,Neal Ford
  • 发布日期:1月2020年1月
  • 出版商:O'Reilly Media,Inc。
  • ISBN:9781492043454