如何清晰地描述一个项目架构

要让对方掌握项目架构,一个清晰的介绍架构和顺序可以事半功倍。

项目背景

在介绍项目架构之前,首先要介绍一下项目本身的意义和目的,便于对方了解项目背景

  • 解决了什么问题,满足了什么需求等?
  • 目标用户是谁?(可以用类似讲故事的方式介绍对目标用户的带来的价值)
  • 目前用户的使用情况如何(访问量,满意度,各个功能使用情况等数据)

功能点

项目针对用户需求或问题,开发了哪些功能

在介绍功能的时候,最好要有用户视角,而且可能还涉及到多个不同角色的用户。比如ToB的终端用户,B端企业用户,企业老板等

核心功能

满足用户核心需求、解决核心问题的功能

比如:

  • RPC框架中的远程调用
  • ORM框架中对象关系转换
  • 智能问答系统中问答功能

辅助功能

配合核心功能工作的辅助功能

比如:

  • RPC框架中的调用链路跟踪、监控、连接池管理、负载均衡等
  • ORM框架中的动态SQL、参数绑定、缓存等
  • 智能问答系统中的知识库管理、相似问题学习等

性能&安全

在比较完善的系统规划中,性能&安全都是重要功能特性之一,可以作为广义功能来介绍

比如:

  • 吞吐量
  • 响应时间
  • XSS/CSRF/SQL注入等漏洞修复
  • 数据安全等

这一部分也可以放在架构之后再介绍

发展规划

如果有的话,就简单介绍一下项目未来的发展方向(不要超过一张PPT,不要超过1分钟)


架构图

使用各种类型的图表、文字、动画等把项目的整体架构描述清楚,外行觉得很思路清晰,内行能够很容易掌握技术点,能够理解架构的优缺点。

优缺点是指架构设计中的取舍,取对项目重要的特性,舍弃本项目影响不大,可以接受的特性

模块层次图

系统中各个模块的组成,模块实现方式,模块层次,模块之间调用方式等

比如:存储模块、缓存模块、日志模块、运营数据、监控模块以及各个业务功能模块。

核心流程图

各个模块在核心功能及主要辅助功能流程中的作用,使用流程图把各个模块串联起来

使用流程图形式,让对方了解系统是如何使用各个模块协作实现核心功能

技术点

流程在使用各个模块中实现的技术点

比如:

  • 缓存及缓存同步
  • 分布式锁
  • 分布式会话管理
  • 负载均衡
  • 监控
  • AB Test
  • AOP或字节码修改等

如果有技术亮点,可以重点介绍一下

遗留的问题

没有一种架构是完美的,根据业务发展情况,有的问题的优先级不高,可以暂时保留

  • 比如缓存同步的方案、缓存数据量太大、运营数据比较杂乱等

改进方向

如何解决遗留的问题,如何更好满足未来的需求,当业务量不断增大的时候,是否有预案

比如:

  • 分库分表、异构数据库等
  • Set化
  • 数据冷热分离等

监控&告警

没有接入监控&告警系统的项目是不允许发布上线的

  • 项目使用了什么监控系统,监控了哪些指标,使用什么样的告警机制

高可用

如果是行业标准高可用方案的话,简单介绍一下即可


其他

  • 与其他类似项目的对比

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值