八步,助你成为架构师

八步,助你成为架构师

架构思维是通用的, 掌握架构思维有利于提升自身专业素养


一、理解功能需求

二、发现隐藏的质量需求: 即DFX, 包括可伸缩性、可用性、可扩展性、可测试性、是否兼容历史版本等

三、 知道约束是什么

  • 给定或选定的不可更改的设计决策
  • 设备硬件约束
  • 历史包袱等
  • 需求限制等,比如必须用阿里云,不能用谷歌云
  • 安全约束

四、已有的架构能否满足, 列举已有的架构有哪些

  • 请添加图片描述

    • MVC模式:“模型-视图-控制”, 经典的 WebUI 架构,控制处理请求从而更新模型和返回视图,模型更新驱动视图更新,视图请求控制处理。
    • 分层模式:应用通常分为多层(控制层、服务层、领域层、数据层、基础设施层),是最常见的技术架构模式。
    • 端口适配模式:系统通过各种端口适配器将输入转换为系统能够处理的输入,或者将系统输出转换为外部能够接收的输出。通常也称为接口模式,用于子系统交互或消息适配。模拟器也是适配器的一种
    • 插件模式:系统支持加载不同的插件来完善自身功能。微内核是一种插件模式,其自身只包含最核心的模块,其它模块通过插件机制动态加载进来。
    • 管道过滤器模式:由一系列过滤器通过管道连接,构成一个处理流水线。linux 管道就是典范。
    • SOA:应用分解为多个分布式的服务组件,通过消息总线和标准服务对象格式来通信。
    • 微服务模式:应用分解为多个分布式的微服务组件,通过 RPC 或消息队列来通信。
    • 事件驱动模式:组件的变化会产生事件,任何组件都可以发布和监听事件。当事件发布时,监听者获得通知并进行处理,从而又会创建事件,推动进一步的监听和处理,往复循环。
    • 发布订阅模式:订阅者订阅消息发布者的某类消息。当消息发送后,订阅者将接收消息进行处理。通常用于解耦多个生产者和消费者。
    • 共享数据模式:多个应用通过共享数据库来访问数据。通常是有一个中心数据库,只有少量组件有写权限,而其它组件具备读权限。
    • AKF立方体:从功能职责、数据、服务实例三个维度来分解架构职责。
    • 单体应用模式:构建一个单体应用,包含了所有的模块和功能组件。通常是为了尽快交付一次性使用系统,不考虑长远维护。

    不同的技术架构模式具备不同的整体结构特征,对于不同质量属性的支持程度也是不同的,引入的系统复杂度也是不同的。各个架构模式的详细讲解及所能达成的质量属性,可参阅: 《软件架构基础(影印版)》

五、设计架构并可视化

  • 遵循原则:
    • 以人为本、推迟决策、善于借鉴、化虚为实
      请添加图片描述

    • 考虑开发实现

  • 采用ARS工作簿

六、评估设计

  • 架构简报:关于架构整体设计及架构设计变更的阐述及及时更新到关注人。
  • 决策矩阵:类似技术选型的对比表格,说明各个方案的利弊,是否切合当前项目需求,最终决策及考量和依据。
  • 场景走查:用实际场景走查,看看技术方案是否满足。在中型系统重构时,尤其要用此法来检验新方案能否解决所有已有的业务场景。
  • 测量和监控:关于性能、稳定性相关的问题,需要通过测量和监控来论证可行性。
  • 问题、评论、关注事项:团队成员对技术设计方案进行评论、指出问题、讨论问题。
  • 风险风暴:团队成员一起来进行风险风暴,一起讨论设计方案在应对需求时存在的潜在风险及应对方案。
  • 合理性检查:检查技术方案在满足需求、约束、规范方面的合理性。
  • 代码审查: 通过代码审查,确定设计方案落实到系统实现中。

七、开研讨会决策讨论并修改

  • 利用团队的智慧
  • 让开发、产品、测试等参与评审,让别人多批评

八、 多实践


参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值