孤尽T31训练营-架构设计-Day1

本文探讨了需求分析的重要性,强调了理解用户本源需求和产品化过程。通过KISS和DRY原则,确保系统扩展性和可维护性。介绍了架构决策、模块划分以及UML类图中的各种关系。同时,阐述了如何处理伪需求和权利需求,并提出了架构图的四种视图。文章还涵盖了软件设计原则和架构图的分类,为构建高效系统提供了指导。
摘要由CSDN通过智能技术生成

需求分析

理解和挖掘用户的诉求、以及背后的逻辑,转化成可行性的分析结果。从非结构化到结构化,确定系统的职责、模块的过程。
边界、用户故事、用户路径

  • 分析背后的人性:人性是提出需求的本源
  • 需求产品化:模块化、配置化、有逻辑
  • 需求落地路径:
    需求分析->可行性->设计->编码->测试->发布
    伪需求:没有调研、没有目标、没有逻辑的无脑需求
    应对:1、用数据化结果否定需求合理性
    2、用正反案例来说明需求需要改进的地方
    3、用户路径和触点推演需求合理性
    权利需求:老板或者是强势业务方的需求
    应对:1、先肯定需求价值再提出需求实现的成本
    2、给出更好的需求替代方案
    3、从数据和案例角度说明需求快速上线危害性
    问题的分层
    (本源问题) 用户问题:“我想支付”
    (经营视角) 业务问题:支持一切可以支付的第三方支付工具
    (体系结构) 产品问题:支付需要逆向流程、异常流程、对账模块等
    (架构代码) 技术问题:高并发、可用性,实现第三方支付的链路
    KISS原则
  • 如何让我们的系统由可扩展性和可维护性
  • 如何让我们的系统能够恰到好处地解决问题
  • 如何让我们的系统能够运行3-5年不重构
    DRY原则
    Don’t Repeat yourself
    重复代码的危害性:
  • 不一致性
  • 代码冗余
  • 易出BUG

设计原则

  • 单一职责原则
  • 里氏替换原则
  • 接口隔离原则
  • 组合复用原则
  • 依赖倒置原则
  • 迪米特原则
  • 开闭原则

架构与架构图

什么是架构
  • 架构是一种能力,而不是一个职位
  • 架构=组成+决策
  • 组成=模块结构+模块关系
  • 决策=约束+设计原则+演化方向
架构图的分类
  • 业务架构
  • 应用架构
  • 数据架构
  • 技术架构
传统架构图
  • 物理视图:和部署相关的架构决策(一般不画)
  • 逻辑视图:设计满足功能需求的架构(逻辑结构图)
  • 开发视图:设计满足开发期质量属性的架构(UML图)
  • 处理视图:设计满足运行期质量属性的架构(UML图)
  • 场景视图:需求分析技术,通常采用UML的用例图进行设计
UML类图的六大关系
  • 泛化关系:即继承关系
  • 实现关系:实现接口
  • 聚合关系:业务上整体与部分可以分开,是关联关系的特例
  • 组合关系:业务上整体与部分不可以分开,同样是关联关系的特例
  • 依赖关系:只要在类中用到了对方,就存在依赖关系
  • 关联关系:体现的是业务逻辑的关系,是依赖关系的特例,具有导航性&多重性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值