从零开始搞基建(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)复盘

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

  • 撰写方案时遇到的问题,以及解决方案。
  • 代码上线后,收到的反馈,做的好的方面和做的差的方面。
  • 别人在做设计方案时,有什么值得学习的地方。
  • 在整个项目开发中,流程中的哪个点处理的不好(例如低效无用的沟通等),之后讨论改进方案。
  • .........
目录
打赏
0
0
0
0
20
分享
相关文章
收藏!阿里毕玄16篇文章,深度讲解Java开发、系统设计、职业发展
阿里毕玄结合自己的经历深度讲解Java开发、系统设计、职业发展等问题,快来一键收藏吧。
34852 1
万字心路历程:从十年老架构决定重构开始
不论是从产品演进,还是从开发体验,原有iLogtail架构已经严重制约了其快速发展。因此,对iLogtail的架构进行升级已经迫在眉睫。
1163 10
大数据必知必会系列——面试官一问就懵:你们做过的项目技术是如何选型的?[新星计划]
大数据必知必会系列——面试官一问就懵:你们做过的项目技术是如何选型的?[新星计划]
78 0
阿里架构师十年开发总结的《分布式系统开发学习笔记》太强了
分布式系统 分布式系统是将多台小型微型机互连组成的一种新型计算机系统。它冲破了传统的集中式单机局面,从分散处理的概念出发来组织计算机系统,具有较高的性能价格比,灵活的系统可扩充性, 良好的实时性、可靠性与容错性等潜在优点,是近几年来计算机科学技术领域中极受重视的新型计算机系统,现已成为迅速发展的一个新方向。
架构师13年经验而成的软件平台架构设计与技术管理之道终于曝光了
计算机技术的发展日新月异,市面上软件架构、项目管理、IT技术类书籍层出不穷,从软件专业和技术视角进行阐述的居多,但对技术烂熟于胸,还是无法保证你能成为优秀架构师或驾驭平台的技术负责人。
从零开始搞基建(1)——前端代码规范
对所有引用都使用 const,不要使用 var。原因:这样做可以确保你无法重新分配引用,以避免出现错误和难以理解的代码。 如果引用是可变动的,使用 let 代替 var。原因:let 是块级作用域的,而不像 var 属于函数级作用域。 坚持使用全等 === 摒弃相等 ==,原因:相等会进行隐式的类型转换。 使用浏览器全局变量时加上 window 前缀,document 和 navigator 除外。
从零开始搞基建(2)——团队协作规范
前端会与公司的所有部门有协作,若在某一环出现问题,就会发生不必要的时间开销,降低开发效率。所以有必要制订一套完善的协作流程。
经验分享:5个可以轻松实践的高效工作秘诀
工作产出 = 单位时间产能 × 有效工作时间,本篇文章介绍了如何提高工作效率,希望每个人都能找到属于自己的高效之路。
1130 0
经验分享:5个可以轻松实践的高效工作秘诀
阿里毕玄:系统架构师如何做好系统设计?
阿里妹导读:毕玄是阿里巴巴资深技术专家,07年加入阿里,一手打造了HSF,十多年来更见证参与了阿里在基础技术上的演进与发展。他觉得系统设计是远比 Java 编程技能更难的培训,很容易变成务虚课。为了挑战难题,毕玄决定大胆尝试在内部搞了个民间培训。
11858 0