读书笔记 架构 第一章

第一章:概述
软件架构的定义
软件架构包括四个部分:

系统结构
架构特性
架构决策
设计原则
系统结构
系统结构是指系统实现的架构风格,例如:

微服务
分层
微内核
架构特性
架构特性是指系统成功的标准,通常和系统功能是正交的。架构特性包括但不限于:

可用性
可靠性
可测试性
可伸缩性
安全性
灵活性
容错性
弹性
可恢复性
性能
可部署性
可学习性
架构决策
架构决策定义了系统构建的规则。例如前端不能越过服务层直接访问数据库。当出现违反这些规则的情况,成为架构不一致。架构不一致通常需要被架构委员会评审

设计原则
设计原则与架构决策不同,它只是一个指引,不是硬规则。例如:微服务之间的调用尽量使用异步消息以提高性能,这只能是一个设计原则,它不能覆盖所有情况

架构师的期待
架构师要有以下8种能力

做出架构决策
持续分析架构
保持与最新趋势同步
保证架构决策被执行
要有多种技术、框架、平台和环境的经验
拥有业务领域知识
拥有人际技能
理解并能玩弄政治
软件架构的法则
软件架构的第一定律
软件架构的任何事情都是取舍

软件架构的第二定律
为什么比如何做更重要