当前位置:网站首页>需求开发思考
需求开发思考
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生成,要问
边栏推荐
猜你喜欢
BCG 使用之CBCGPProgressDlg进度条使用
Online sql to excel (xls/xlsx) tool
BCG 使用之CBCGPTabWnd控件(相当于MFC TabControl)
关于判断点是否位于轮廓内的一点思考
abc229 总结(区间最长连续字符 图的联通分量计数)
一文掌握数仓中auto analyze的使用
Master the use of auto analyze in data warehouse
JVM系列之对象的创建
There are multiple divs in the large div, which are displayed on the same line. After overflow, scroll bars are generated without line breaks
黑马程序员-软件测试--09阶段2-linux和数据库-31-43修改文件权限字母发的说明,-查找链接修改文件,查找文件命令,链接文件,压缩解压方式,vi编辑器基本使用,
随机推荐
Matrix flip (array simulation)
FPGA timing constraint sharing 01_ Brief description of the four steps
1005 Spell It Right(20 分)(PAT甲级)
Stream stream
BCG 使用之CBCGPProgressDlgCtrl進度條使用
How test engineers "attack the city" (Part I)
YOLOv5s-ShuffleNetV2
1002. A+b for Polynomials (25) (PAT class a)
HDU 6440 2018 Chinese college student program design network competition
线上数据库迁移的几种方法
明明的随机数
abc229 总结(区间最长连续字符 图的联通分量计数)
Introduction to polyfit software
联想首次详解绿色智城数字孪生平台 破解城市双碳升级难点
The explain statement in MySQL queries whether SQL is indexed, and several types in extra collate and summarize
1003 emergency (25 points) (PAT class a)
HDU 1372 & POJ 2243 Knight moves (breadth first search)
Shell 编程核心技术《三》
Functional interface
黑马程序员-软件测试--09阶段2-linux和数据库-31-43修改文件权限字母发的说明,-查找链接修改文件,查找文件命令,链接文件,压缩解压方式,vi编辑器基本使用,