首页 > 其他分享 >1-1 需求分析和架构设计

1-1 需求分析和架构设计

时间:2022-09-06 17:57:27浏览次数:70  
标签:需求 架构设计 思维 -- 分析 作品 架构师

1 一周导读

主要内容

  • 学习如何以架构师思维分析需求
  • 由浅入深的需求分析
  • 架构设计-多项目的关系
  • 核心数据结构设计
  • 写《技术方案设计》文档

关键词

  • 流程图 -- 分析需求的工具
  • 全局思维、整体思维、闭环思维 -- 架构师思维来分析需求
  • 业务组件库 -- 独立拆分出来,复用
  • 自定义事件统计 -- 业务的重要性,如何实现

学习方法

  • 要坚信: 技术永远都是为业务服务的,技术是实现业务增长的工具

注意事项

  • 不要关注细节,要看整体,看范围
  • 考虑扩展性
  • 设计时判断可行性,不确定的就调研一下(这需要大量的工作经验积累,技术能力)
  • 设计要考虑复杂度,越简单越好,不要过度设计,不要为了设计而设计

2 需求分析

  • 如何以架构师思维分析需求
  • 项目的浅层需求
  • 项目的深度需求
  • 需求总揽

2.1 以架构师思维分析需求

2.2 项目的浅层需求

  • 表面的需求
    • 登录
    • 创建一个作品,编辑,发布
    • 访问作品h5
  • 补充和分组
    • 用户信息
      • 登录(短信验证码登录)
      • 注册
      • 获取用户信息
    • 作品
      • 创建
      • 保存
      • 发布
      • 获取作品信息
      • 获取作品列表
    • 模板
      • 模板列表
      • 使用模板创建

2.3 项目的深度需求

1. 作品的管理

  • 删除和恢复
  • 转赠(例如,员工离职交接工作)
  • 复制

2. 作品统计

需求闭环

  • 统计
  • 分渠道统计,渠道对于运营人员非常重要

3. 作品发布

  • url 不能变
  • 支持多渠道

4. H5

  • 分享 -- 对业务增长负责

5. 后台管理

  • 数据统计
  • 作品管理,能快速下线作品,防止有违规内容
  • 用户管理,能快速冻结用户,防止有违规用户
  • 模板管理,能控制哪些模块展示、哪些不展示

2.4 需求总揽

主要产出

  • 熟悉产品需求
  • 学会以架构师的思维分析需求
  • 全局思维、整体思维、闭环思维
附:I和PM的关系
  • 程序员和PM的关系: 水火不容,势不两立
  • 架构师和PM的关系: 统一战线,对业务负责

3 架构设计

3.1 分析需求,确定需要创建的项目

  • 确定范围

1. 需要哪些项目

从需求来看,比较重要的几个方面: B端和编辑器, H5, 管理后台

  • B端和编辑器, 做前后端分离

    • biz-editor-fe
    • biz-editor-server
  • H5适合做SSR, 因为要考虑性能

    • H5-server
  • 管理后台,做前端分析

    • admin-fe
    • admin-server

2. 业务组件库

3.2 为何自研统计服务

  • 支持自定义事件统计
  • 支持 OpenAPI -- 重要

pv/uv 统计网站级别数据,参数级别需要自定义事件

3.3 各个项目之间的关系图

3.4 作品的数据结构设计

  • 这个项目可以用 vue+vuex 来实现,提问
    • 在点“保存”按钮的时候,往服务端传递的数据结构是什么样子的?
      • vnode 形式
    • 如何保证画布和属性面板是同步更新的?
      • 数组是可排序的
      • 如何用 vuex 表示当前选中的数组
    • 如果在扩展一个“图层”面板,数据结构该怎么设计?
      • computed 计算

正确的设计思路

正确的设计思路

  • vuex store
{
  // 作品 
  work: {
    title: '作品标题',
    setting: { /*一些可能的配置项,用不到就先预留*/ },
    props: { /*页面body的一些设置,如背景色*/ },
    components: [
      //components 要用数组,有序结构
      // 单个 node 要符合常见的vnode 格式
      {
        id: 'xxx', //每个组件都有id,不重复
        name:'文本1',
        tag:'text',
        attrs: { fontsize:'20px'},
        children: [
          '文本1'// 文本内容,有时候放在children,有时候放在attrs或者props,没有标准,看实际情况来确定
        ]
      },{
        id:'yyy',
        name:'图片1',
        tag:'image',
        attrs:{ src: 'xxx.png', width: '100px'},
        children: null
      }
    ]
  },
  //  画布当前选中的数组
  activeComponentId: 'xxx'
}
  • vuex getter
{
  layers() => {
    store.work.components.map(c => {
      return {
        id: c.id,
        name: c.name
      }
    })
  }
}
  • 总之,基本思路就是
    • 每个组件尽量符合 vnode 规范
    • 用数组来组织数据,有序
    • 尽量使用引用关系,不要冗余

3.5 数据流转

  • 核心: B端、c端、管理后台,共用一个数据库
  • 创建作品: 初始化一个 JSON数据
  • 保存作品: 修改 JSON 数据
  • 发布作品: 修改一个标记,仅此而已
  • C端浏览作品: 获取 JSON 数据,SSR 渲染页面
  • 屏蔽作品: 修改一个标记,C端来判断

当然,其中C端还有缓存,防止频繁访问数据库

注意事项

  • 论证:可行性、扩展性、复杂性

3.6 写技术方案设计文档

3.7 总结

1. 主要产出

  • 《整体技术方案设计》文档
  • 学会如何写技术方案设计

2. 主要内容

  • 分析需求,确定需要创建的项目(业务复杂,需要多个项目)
  • 搭建独立的业务组件库
  • 自研自定义事件统计服务
  • 作品的数据结构设计
  • 写《技术方案设计》文档

标签:需求,架构设计,思维,--,分析,作品,架构师
From: https://www.cnblogs.com/pleaseAnswer/p/16662741.html

相关文章

  • 面向对象分析与设计的底层逻辑
    作者:不拔面向对象是符合人认识事物的基本方法人是怎么认识事物的在面向对象出现之前,已有面向过程的分析方法,为什么面向对象被提出了呢?究其本质原因,人们发现面向过程并......
  • vuex源码分析
      什么是vuex是一个专为Vue.js应用程序开发的状态管理模式。什么是状态管理模式,vue根据data的变化会渲染模板,vuex则是把一些数据集中进行管理方便在vue组件中使......
  • GPU 利用率低常见原因分析及优化
    一、GPU利用率的定义本文的GPU利用率主要指GPU在时间片上的利用率,即通过nvidia-smi显示的GPU-util这个指标。统计方式为:在采样周期内,GPU上面有kernel执行的......
  • 汽车电子电路技术完整分析
    汽车电子电路技术完整分析参考文献链接https://mp.weixin.qq.com/s/-Wt6HfM3Pq-qpbbblvUTFwhttps://mp.weixin.qq.com/s/KRNmE4aaCW4EWpp8M0V-cAhttps://mp.weixin.qq.......
  • 国内RPA厂商综合分析之【来也科技】
    由于工作的缘故,小爬这段时间对国内主流RPA产品进行了一番细致的调研和产品试用,对这些产品和厂商也算是打过几次交道,对他们的产品特性和优缺点算是有一些了解。今天我们......
  • Day06页面结构分析
    页面结构分析header:标记头部区域的内容(用于页面或页面中的一块区域)footer:标记脚步区域的内容(用于整个页面或页面的一块区域)section:Web页面中的一块独立区域article:独立......
  • pandas_pandas_网站log分析
    #读取整个文件夹的log,合并到一个dataframe\1.遍历文件夹读取log\2.然后通过concat函数将这些log合并一个大的dataframe-----------------------------------------......
  • 股票分析-市盈率
    PE市盈率=股价/每股收益=总市值/净利润租售比:房子的价格/每年租金投资某一项回本的年限(PE)1*市盈率(PE)在12到14倍之间是符合(回本期限)动态:当总市值/今年(估算今年的净利润......
  • 【UML分析、建模与设计】我在工作时遇到UML
    一、前言UML分析、建模与设计来自现实世界中的概念的抽象描述方法(摘取自《UML面向对象分析、建模与设计(第2版)》)就我对UML分析与建模技术的认知,最早可追溯至2019年时的......
  • 干货 | H5性能分析实战来啦~
    ⬇️点击“下方链接”,提升测试核心竞争力!>>更多技术文章分享和免费资料领取H5性能该如何测试呢?很多人不知道该如何下手。其实可以借用W3C协议完成自动化H5性能测试。因......