从零开始搞基建(3)——设计方案

简介:   最近看了一篇文章,文章中提到在开发流程中包含一个设计方案的阶段,位于需求评审之后,用于描述自己对于该需求的实现思路、模块划分等相关考虑的点,可供今后自己或他人查阅。  目的就是在编码前理清思路,整体架构,查缺补漏,作为他人或自己的技术参考文档。  自己在项目开发的过程中,也曽有过这样类似的想法,但没有作者那样写的系统,也没有在团队中落地。  基于文章中的设计方案,自己做了点修改。设计方案包括4个部分:需求、调研、实现和复盘。

  最近看了一篇文章,文章中提到在开发流程中包含一个设计方案的阶段,位于需求评审之后,用于描述自己对于该需求的实现思路、模块划分等相关考虑的点,可供今后自己或他人查阅。

  目的就是在编码前理清思路,整体架构,查缺补漏,作为他人或自己的技术参考文档。

  自己在项目开发的过程中,也曽有过这样类似的想法,但没有作者那样写的系统,也没有在团队中落地。

  基于文章中的设计方案,自己做了点修改。设计方案包括4个部分:需求、调研、实现和复盘。

1)需求

  在设计方案的开头,列出相关人员(便于精确找人),需求信息和各类时间。


需求背景:因为我们要做线下推广,提高xxxxxxxxx
PRD:产品文档链接
产品:老吴
UI:梨子
测试:小木
前端:隽隽
服务端:必煦
联调时间:2021.07.30
提测时间:2021.07.31
上线时间:2021.08.10


2)调研

  功能的技术选型,对比不同方案的优缺点,适当取舍,形成一套适合当前场景的最优方案。

  以复杂动画为例:

  • 自己之前有没有做过类似的动画,可以借鉴?
  • 公司内部有没有自制的动画库,可以引用?
  • 业界有没有现成的动画库或不错的实现思路,可以参考?
  • 用原生实现,与遇到哪些问题,兼容会不会很困难?
  • .........

3)实现

  需要思考很多方面:业务的完整流程、数据结构的设计、关键功能的逻辑描述、异常处理、安全、性能、与现有业务的耦合情况、组件复用等。

  保证自己和他人在看到这份方案时,能清楚明白你的设计思路、代码意图和模块划分。

  可用任意方式表达自己的思路,例如伪代码、图表或纯文字等。

  流程图让自己和他人对需求有个直观的了解。


56.png


  伪代码在不写具体代码前,展示自己的编码思路,传达代码意图,即使是不会代码的人也能读懂,给你点意见。


function getSomeData() {
  let data;
  if(无缓存) {
    // 请求数据
    if(请求异常) // 展示错误页面;
    data = 请求到的数据;
  }
  // 展示页面
}


  模块划分是架构的一个点,需要考虑哪些是独立模块、哪些是公共模块、哪些是与业务耦合的模块。

  用例图可整理出大大小小的场景,在列出后就会发现流程中缺少的部分,以及各种未考虑到的边界。


57.png


  还有安全问题,例如防止恶意的接口访问。页面中是否有性能问题。未来若扩展需求,那么当前设计的扩展性是否能满足需求的变化。

4)复盘

  复盘总结的内容可自由发挥,按照自己的实践,记录与需求相关的一切,例如:

  • 撰写方案时遇到的问题,以及解决方案。
  • 代码上线后,收到的反馈,做的好的方面和做的差的方面。
  • 别人在做设计方案时,有什么值得学习的地方。
  • 在整个项目开发中,流程中的哪个点处理的不好(例如低效无用的沟通等),之后讨论改进方案。
  • .........
相关文章
|
Java 程序员
收藏!阿里毕玄16篇文章,深度讲解Java开发、系统设计、职业发展
阿里毕玄结合自己的经历深度讲解Java开发、系统设计、职业发展等问题,快来一键收藏吧。
34576 1
|
5月前
|
运维 关系型数据库 Linux
九五从零开始的运维之路(其二十)
本篇将简述的内容:Linux系统下的LAMP平台部署 基于discuz框架的论坛搭建
45 0
|
测试技术
测开-基础篇
测开-基础篇
105 0
|
前端开发 架构师 算法
技术一号位的方法论《个人篇》——人成长的本质以及如何构建个人成长路线图
不论你是职场新人还是35岁的职场“老人”,成长是每个职场人都绕不开的话题,同时也是贯穿每个人职业生涯的痛点。本文主要帮助读者建立起对个人成长的认知,然后在此认知的基础上让大家理解成长的本质,最终通过文章的引导,来帮助读者完成个人成长路线图的确定以及落地实践。
12688 3
技术一号位的方法论《个人篇》——人成长的本质以及如何构建个人成长路线图
|
8月前
|
架构师 搜索推荐 IDE
架构师13年经验而成的软件平台架构设计与技术管理之道终于曝光了
计算机技术的发展日新月异,市面上软件架构、项目管理、IT技术类书籍层出不穷,从软件专业和技术视角进行阐述的居多,但对技术烂熟于胸,还是无法保证你能成为优秀架构师或驾驭平台的技术负责人。
|
8月前
|
缓存 负载均衡 监控
如何攻克项目难点
如何攻克项目难点
|
12月前
|
JavaScript 前端开发 数据库
从零开始搞基建(5)——代码质量
从零开始搞基建(5)——代码质量
|
架构师 算法 搜索推荐
直击架构本质:优秀架构师必须掌握的几种架构思维
直击架构本质:优秀架构师必须掌握的几种架构思维
201 0
直击架构本质:优秀架构师必须掌握的几种架构思维
|
JSON 前端开发 测试技术
从零开始搞基建(2)——团队协作规范
前端会与公司的所有部门有协作,若在某一环出现问题,就会发生不必要的时间开销,降低开发效率。所以有必要制订一套完善的协作流程。
|
存储 移动开发 前端开发
从零开始搞基建(1)——前端代码规范
对所有引用都使用 const,不要使用 var。原因:这样做可以确保你无法重新分配引用,以避免出现错误和难以理解的代码。 如果引用是可变动的,使用 let 代替 var。原因:let 是块级作用域的,而不像 var 属于函数级作用域。 坚持使用全等 === 摒弃相等 ==,原因:相等会进行隐式的类型转换。 使用浏览器全局变量时加上 window 前缀,document 和 navigator 除外。