当前位置:网站首页>需求开发思考
需求开发思考
2022-07-04 18:32:00 【Nimrod__】
本次需求相较于上次的在线升级需求,属于是比较大需求,包含了UI、通信、配置修改等几个部分的内容,基本上涉及了项目的方方面面。
由于是在休假回来后接受的需求,因此在前期花了比较多的时间去熟悉代码、熟悉需求。
同时在本次需求还是有比较多的收获的。
从一个需求接手的三个方面来说一下收获。
前期熟悉:
要做到熟悉一个需求,个人认为要搞清楚几个问题:
1、需求目的是什么?
需求是为了解决问题,第一件事就是要搞清楚需求的目的是什么。
本次新乘风接入的需求为了实现动态生成表单,避免传统的表单固定后升级、更新较为麻烦的情况。
将表单的维护由Json数据 + 表单生成引擎来做。
采用抽象配置项方式,整体架构非常灵活,后续维护迭代成本大幅降低,乘风侧前后端无需代码变更,设备端更新代码完成配置即可。
2、需求怎么去做?
需求应该如何去实现?实现的目标是什么?
搞清楚这个问题之后,就能够真正掌握、了解这个需求的细节应该怎么去做,使用什么协议去完成,整体的通信链路是怎么样的。
本次需求的实现是采用Json做通信协议,与服务器之间建立webSockt,在webSocket中通过绑定后,完成后续的一系列通信工作完成动态表单的各个目标。
在本次需求的前期熟悉阶段自己没有做好的就是没有搞清楚这两个问题,导致在后续的开发过程当中始终感觉抓不到主线,导致一直没有很好效率去完成开发。
中期开发:
在实际上中期开发的过程中,前期熟悉的做的怎么样就很好的体现在了这一环节中。
由于自己在前期需求的熟悉阶段没有做好,导致自己在本次开发的过程中一直没有很好的把握整体,有种想到哪里做到哪里,没有准确、清晰的目标去走,导致自己经常会出现每次做完一部分后遍不知道下一部分在哪里的情况。
在开发的阶段,不应该急着去开发,而是要想明白、搞清楚自己要做的是什么,自己现在要开发的是哪一部份,这部分做完之后有什么改变,下一部分是什么?也就是要有清晰的整体意识,要搞清楚开发时的上下文关系,以后一定不能够出现这次的迷茫情况。
要花多点时间在前期设计上!
后期联调:
联调的过程中,自己最大的问题还是没有严格按照提供的文档来做通信。
由于本次的通信协议改动较多,经常会出现自己发送过去的实体Bean没有得到回应,或者得不到解析的情况。
对于这种情况,第一时间要做的事情还是确认实体Bean是否按照通信协议规定来做通信。
在联调的过程中要搞清楚每一个功能模块,以及功能可能的边界情况来进行处理。
收获总结:
1、需求开发之前一定还是要搞清楚需求。
2、Json的解析:
(1) 对于字段是常量,会给字段赋予默认值,若字段是对象变量,若字段没有赋值就默认为空,可以利用这个特点来做多态化的字段Json解析。
(2) Double跟Integer不能够强转
(3) 对于递归的Json解析,可以使用JSONObject来解析所有的 {} 情况,使用JSONArray解析 [] 的情况。
3、对于复杂的Json生成,要问
边栏推荐
- 2021 Hefei informatics competition primary school group
- HDU 1372 & POJ 2243 Knight Moves(广度优先搜索)
- HDU 1097 A hard puzzle
- The page element is vertically and horizontally centered, realizing the vertical and horizontal centering of known or unknown width.
- FPGA时序约束分享01_四大步骤简述
- Unity adds a function case similar to editor extension to its script, the use of ContextMenu
- 与二值化阈值处理相关的OpenCV函数、方法汇总,便于对比和拿来使用
- 页面元素垂直水平居中、实现已知或者未知宽度的垂直水平居中。
- 黑马程序员-软件测试--07阶段2-linux和数据库-09-24-linux命令学习步骤,通配符,绝对路径,相对路径,文件和目录常用命令,文件内容相关操作,查看日志文件,ping命令使用,
- QT realizes interface sliding switching effect
猜你喜欢
Swagger突然发癫
Introduction to polyfit software
FPGA timing constraint sharing 01_ Brief description of the four steps
Hough transform Hough transform principle
黑马程序员-软件测试--09阶段2-linux和数据库-31-43修改文件权限字母发的说明,-查找链接修改文件,查找文件命令,链接文件,压缩解压方式,vi编辑器基本使用,
JVM系列之对象的创建
如何使用Async-Awati异步任務處理代替BackgroundWorker?
在线SQL转Excel(xls/xlsx)工具
LM10丨余弦波动顺势网格策略
There are multiple divs in the large div, which are displayed on the same line. After overflow, scroll bars are generated without line breaks
随机推荐
HDU 1372 & POJ 2243 Knight moves (breadth first search)
测试工程师如何“攻城”(下)
HDU 1097 A hard puzzle
与二值化阈值处理相关的OpenCV函数、方法汇总,便于对比和拿来使用
Explicit random number
1008 Elevator(20 分)(PAT甲级)
"Only one trip", active recommendation and exploration of community installation and maintenance tasks
SSRS筛选器的IN运算(即包含于)用法
勾股数规律(任意三个数能够满足勾股定理需要满足的条件)
How test engineers "attack the city" (Part I)
Socket programming demo II
socket编程demo二
Reflection (I)
Pytest 可视化测试报告之 Allure
HDU 6440 2018 Chinese college student program design network competition
求2的n次方
kotlin 循环控制
LM10丨余弦波动顺势网格策略
Shell programming core technology "three"
Shell programming core technology "I"