「前端经验总结」大型业务项目中,前端如何撰写设计文档

项目开发流程

看一下这个项目开发流程图,当项目启动之后,产品的同事会先来一轮需求宣讲,告知大家本期大致做什么,产品的同事会整合各方的发言在完善一轮功能。

全部功能确定之后,会进入需求讨论,这个时候,开发会明确这一期需求中,到底要做哪些功能。也就进入了今天的正题,如何做开发设计。

为什么推荐写设计文档

我们先来回想一下最近的一次需求,下面几个问题,能回忆起几个:

  • 哪些功能是相似的?相似功能有没有做通用处理?
  • 哪个功能实现起来有难度?最后是怎么解决困难点的?
  • 主业务流程是什么?有几条不同的业务流程?业务代码设计的可扩展性怎么样?
  • 新增了几个公共组件?用途分别是什么?
  • 老代码有改动吗?新老代码的兼容性是怎么处理的?
  • 有没有全新的、以前从没接触过的业务概念和体系,是如何应对全新业务的?
  • 有没有连带功能?连带功能的覆盖范围是哪些?

......

产品视角的需求文档,需要在哪些地方做什么样的功能提供给用户。

开发视角的需求设计,不但要梳理清楚具体功能、功能所在的位置,还要考虑代码的质量。程序开发,不是单纯的代码堆砌。所以技术论坛了,我们看到很多优秀的怎么实现某类功能的文章。

设计文档是帮开发梳理业务功能,呈现优质的开发思维的载体。另外,当开发思路逐渐丰富,开发速度也就提上来了。

设计文档写什么?

上面的几个问题,也侧面的描述了设计文档中要写哪些内容。主要包括业务流程梳理,功能点梳理,功能的封装、通用、可扩展、兼容性设计,重点和难点归纳和实现方案,新业务概念和体系的应对方案,连带功能的覆盖范围总结。

下面我以最新一期接第三方支付的需求为例,讲讲这个耗时半个月的项目是怎么写前端设计文档的。

如何应对新的概念和体系

1、首先,梳理新概念中的新与旧,开发思维里按照这个维度将功能进行区分;

2、对于新的、没开发过的、不熟悉的概念和功能,独立划分出来,锁定具体哪方面没有开发经验,思考总结开发方案的同时,用查找资料、遵照成熟的开发设计的方式辅助设计开发方案。建议梳理开发的重点和难点,方便缩小开发难度的范围。

3、对于旧的、已经有开发经历的、熟悉的概念和功能,着重整理功能通用性、代码可扩展、代码可阅读等几个方面。

开发重点和难点

分类

内容

解决方案

难点

账户体系与权限的功能设计

详细设计见1.账户的两套设计方案

直接支付和第三方支付的差异设计

1、功能差异化处理

难点在于,虽然重新设计了账号体系,但是两种支付方式在功能上仍然有细小的差异化。

2、数据操作差异化

数据操作的难点在于,它既有在内部后台系统里录入的数据,也有从第三方过来的数据。

两种类型数据有三种按钮操作的情况:

1)没有数据权限类型;

2)内部后台支付数据类型;

3)第三方支付数据类型。

1、功能差异化处理

账户的信息下,增加支付方式的信息。依据支付方式区分功能差异。差异整理见2.系统的差异化功能整理

2、数据操作差异化

最重要是弄清楚数据权限,所以通过表格的方式将所有的按钮按照三种类型分类呈现,可以让后续的功能设计更加清晰。见3.后台系统不同数据类型按钮操作分类

功能设计上,采用物理隔离的方式,不同类型封装不同的组件。

功能较多且分散

多且分散的功能开发,容易出现以下几种情况:

1)容易出现遗漏;

2)流程梳理和功能点梳理的困难度会高一些;

3)评估开发周期容易出现排期紧张的情况;

4)大量功能情况下,功能设计有可能不是最优。

1、相似性提炼

将相同或者相似功能进行提炼,封装为业务组件,同时通过表格罗列分组,这样只要引入的所有位置检查一遍,就不会有遗漏。

2、思维导图

以往操作流程基本是画主流程,帮助梳理主线功能,一些辅助的操作不会画进去。细致末节都是通过表格记录,但是功能太多,容易漏掉某个点。

所以这次尝试用用思维导图的方式,将细节点补充到思维导图中。

4.思维导图

批量导入操作

批量导入操作的难点在于数据量过大。

批量是为了解决超过100条数据操作的问题,所以批量导入的数据是不设限制的,这个时候后端可能一次性给过来几千条数据,前端一次性加载有一定概率导致页面卡顿。

1、数据量过大解决方案

参考了林三心大佬的「后端一次给你10万条数据,如何优雅展示,到底考察我什么?」

重点

支付流程

1、流程图

流程图帮助梳理支付流程,见5.支付流程图

1.账户的两套设计方案

两套方案实现难度差不多。可以根据最终接口返回的数据详细程度,选择最终的方案。

我个人更倾向于方案一通过账号信息,设置账户的权限功能。

方案名称

优点

缺点

通过账号信息

1、如果接口返回了明显的标识可以区分当前用户的类型以及支付类型,可以直接使用;

2、如果没有,则前端按照用户的类型,手动添加支付类型标识。

功能集中,只需要处理一处地方就可以知道当前登录用户的支付方式。

1、有不确定性,如果没有明确标识,则需要手动添加;

2、改动权重过大,后续增加其他功能性标识的时候需要改动用户信息的公共功能。

需要判断的地方调用公共方法

封装一个判断支付方式的公共方法,需要进行支付类型判断的地方进行引入操作。

不必担心公共功能被修改的问题。

分散,只专注了下单业务,没有考虑系统全局。

2.系统的差异化功能整理

功能位置

功能描述

处理方案

订单列表

提交支付,根据支付类型不同,支付弹窗的内容不同

新增的第三方支付功能单独开发,根据当前用户的支付类型进行区分展示。

3.后台系统不同数据类型按钮操作分类

订单管理

数据类型

可操作按钮

备注

没有数据权限

详情、日志

内部后台支付数据

支付、退款

第三方支付数据

支付

第三方支付的数据目前不支持在内部后台进行退款操作

4.思维导图

5.支付流程图

总结

又是一个有收获的八月。

去年八月,我完成了设计文档的升级,开发思路越来越清晰,侧面帮助提升了开发速度。

今年八月,我的开发设计文档再次升级,将原本繁星点缀、星罗棋布的设计思维,改良为现在的纲领在前、繁星在后,优先想清楚重点和难点的卡点在哪以及解决方案,复杂流程结合琐碎细节的需求如何设计才能更优雅且不发生遗漏等。

将收获转化成知识进行传播,就是我写这篇文章的初衷。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
目录 1. 介绍 5 1.1 项目概述 5 1.2 范围 5 1.3 参考 5 2. 用例视图 6 2.1 WAS - SAP R/3 集成用例 6 2.1.1 车辆列表功能 6 2.1.2 车辆订购申请单的创建功能 7 2.1.3 车辆订购申请单查询功能 7 2.1.4 车辆订购申请单的修改功能 7 2.1.5 索赔单的创建 8 2.1.6 数据交换需求 8 2.2 PORTAL集成的用例 8 2.2.1 经销商 Portal 框架 9 2.2.2 车辆销售系统和Portal的整合 9 2.2.3 Nadcon system 和Portal系统的整合 10 2.2.4 车辆销售系统和Nadcon 的整合 10 3. 逻辑视图 10 3.1 兼容性 10 3.2 系统架构 10 3.2.1 逻辑架构 10 3.2.2 Web 应用的包设计 12 3.3 组件设计 - J2EE WEB APPLICATION 13 3.3.1 MVC 框架 – Struts 13 3.3.2 日志 14 3.3.3 BAPI代理结构 15 3.3.4 销售商用户信息组件和安全组件 16 3.3.5 页面表现框架 17 3.3.6 车辆列表功能 18 3.3.7 车辆订购请求单创建 24 3.3.8 车辆订购申请单查询列表 32 3.3.9 车辆订购申 请单修改 37 3.3.10 索赔单创建 43 3.3.11 数据交换 50 3.3.12 登录 & 退出 53 4. 数据视图 56 4.1 车辆列一表 57 4.2 车辆订购申请单创建 58 4.3 车辆订购申请单列表 59 4.4 车辆订购申请单修改 60 4.5 索赔单创建 61 5. 实现视图 62 5.1 缓存策略 62 5.2 会话管理 62 5.3 连接管理 62 5.4 集成的需要 62 5.4.1 WAS – SAP 集成 63 5.4.2 单点登陆 63 5.4.3 Vehicle Sale 系统 和 Nadcon的集成 63 6. 部署视图 64 6.1 安装需求 64 6.1.1 服务器的安装 64 6.2 服务支持的考虑 64 6.2.1 安全 64 6.2.2 服务器管理 64 7. 实现环境视图 64 7.1 开发环境 64 7.2 测试环境 64 7.3 生产环境 65 7.3.1 网络 65 7.4 域信息 65
### 回答1: 在前端项目开发经历,应该描述你曾经参与过的项目的信息,包括项目名称、项目描述、项目责任、使用的技术栈等。 例如: - 项目名称:XXX商城 - 项目描述:该项目是一个电商网站,包含商品展示、购物车、订单结算等功能。 - 项目责任:负责项目前端部分的开发工作,包括页面设计前端代码编写、测试等。 - 使用的技术栈:HTML、CSS、JavaScript、Vue.js、axios等。 另外, 如果有相关的项目链接或截图也可以放在项目经历里面, 这样能给面试官更直观的了解你的项目经验. ### 回答2: 前端项目开发经历是指个人在前端项目开发过程所积累的经验和技能。在写前端项目开发经历时,可以按照以下结构进行展开: 1. 项目简介:首先简要介绍所参与的前端项目,包括项目名称、时间周期、项目规模等基本信息。 2. 职责和任务:说明自己在项目的职责和承担的任务,例如负责页面设计、布局和样式编写等。 3. 技术工具:列举在项目使用的技术和工具,例如HTML、CSS、JavaScript、框架(如React、Vue)、版本控制工具(如Git)等。 4. 页面实现和交互设计:详细描述所参与页面的实现过程,包括页面结构、样式设计和交互实现等。可以提及所用到的各类资源和库,以及遇到的问题和解决方法。 5. 与后端的协作:说明与后端开发人员之间的协作过程,包括前后端接口的对接、数据的交互等。可以强调自己如何与后端开发人员配合,提高项目开发效率。 6. 其他技术提升:列举在项目开发过程所遇到的技术难题,以及自己是如何克服的。可以提及通过学习文档、查阅资料、请教他人等方式来提升自己的技术能力。 7. 总结和收获:总结自己在项目开发的经验和教训,反思自己的不足之处,并提出对后续项目改进的建议。同时也可以指出自己在项目所获得的经验和技能。 通过以上结构来展开前端项目开发经历的写作,会使文章更加有条理和清晰,能够突出自己在项目开发的个人贡献和技术实力,并展现自己的思考和成长。 ### 回答3: 在前端项目开发经历,我首先会记录整个项目的背景和目标。这包括项目业务需求、项目规模和所涉及的技术栈。我会描述项目的主要功能和特点,以及我在项目承担的角色和责任。 接下来,我会详细描述项目开发过程。我会提到我使用的开发工具和环境,包括编辑器、版本控制系统和调试工具。我会说明我与团队成员之间的协作方式和沟通工具。 我会描述每个阶段的工作和任务。例如,我会提到我的角色及职责,我的任务清单以及每个任务的完成时间。我会记录我在项目遇到的挑战和解决方案,并提到我如何与团队成员一起解决问题。 我会详细记录每个功能的开发过程。这包括我所使用的技术和框架,以及我在实施过程遇到的困难和解决方案。我会描述每个功能的测试方法和结果,并提到我在修复和优化过程所做的改进。 最后,我会总结整个项目的成果和经验。我会提到我在这个项目学到的东西,以及我如何将这些经验应用到未来的项目。我还会提供在项目获得的成果和反馈,以证明项目的成功和客户的满意度。 通过以上方式,我可以清晰地描述我在前端项目开发的经历,并展示我的技术能力和项目管理能力。这将使雇主或招聘者对我的经验和能力有一个全面的了解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶一一yyy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值