开发过程遇到的问题

开发过程遇到的问题


1.数据库先从缓存中读取,没有再从数据库中读取。
2.会变化的数据尽量从数据库中获取,不要固定写到程序中,方便不改化码和情况下实现更新。
3.产品最好区分控制方式(APP、面板)。
4.产品上报设备型号和相关产品信息。
5.产品最好可以上报IP地址。
6.接口返回以模型的方式返回,方便后面返回多个参数。
7.接口传参以模型方式进行,方便后面参数的扩展。
8.判断语名前后放相关的log,方便调试定位。
9.会抛出异常的语名用try-cache语句进行包围着。
10.用maven模块的方式进行项目公共资源的共享。
11.初始化数据做好相关数据初始化的接口,方便环境的快速建立。
12.所有参数都应该进行判空操作。
13.数据保存要有保存时间和修改时间,最好有保存修改记录。
14.返回前端数据要有时间戮。
15.数据库中的统计数据可以用数据库中的聚合函数来进行统计。
16.swager可以加快接口的调试,方便后面进行调试用,可以返回MAP以方便显示JSON数据格式。
17.先整理好如何做再做再做,要不然做的过程中也是要整理如何做的。
18.对于一些配置参数,最好保存到缓存中(数据库中),但每次从缓存中取也不是办法,最好是定期刷亲新到代码中的变量中。
19.如果过多的服务嵌套(服务器之间),会出现很长的延时,可以将信息存到缓存中,再开启新的线程处理后面的逻辑处理。
20.可以把公用工具放到docker进行,方便后面服务器的更换,不用重新安装这些工具。
21.如晨返回数据格式是一致的,但数据模型不一致的,可以用泛型的方式来进行。
22.模型的使用应该通过继承多个简单模型来集合而成,特别是返回到WEB的。
23.数据库的应该按功能进行模块字段进行建表,不要在一张表内又有另一张表的内容(在同一张表内可以加快应用查询速度、不在一张表要查询多次),但更改内容时会麻烦。
24.与URL相关的的最好的分不同的常量定义不同部分,方便后面的更改,(以“/”开头,尾部不用加“/”)
25.公用方法写成一个包,方便其它应用的使用。
26.返回对象的接口返回对象应该是一个新的对象,否则可能会在其他应用中修改对象。
27.创建数据库的时候记得设置数据库的编码方式 例如 UTF-8,
28.一些资源的URL如果会与相关型号相关原话,最好是写在前端中,服务器只是保存URL的名字,防止因多个产品前端界面不一样发生的资源路径冲突。
29.log输出中,用AOP和注解的办法在WEB接口中输出可以区别于其他log输出的内容,有得于调试用。对于有这种注解的输出分隔符便于区分。
30.log中加可以区别于不同用户信息,方便调试进行过滤用。
31.做输入参数判空处理接口,前端返回统一数据格式。
32.要有数据库访问接口(swagger方式),方便数据的管理(要有密码校验)。
33.数据库要有备份,防止误删。
34.用户数据(常变),和产品数据(少变或不变)要分开不同的数据库进行保存,动态数据切经常进行备份,不变数据要定时备份。
35.数据库加入一个版本管理编号,方便后面进行对数据进行版本管理操作。
36.基础包:http(get,post),日期格式化,JSON序列化(反序列化),log输出处理,
37.如果是通用的可以考虑使用泛型的方式实现。
38.数据库保存、更新、删入口要输出log,方便日后数据出现异常可以进行定位。
39.最好加入协议转换版本和接口版本进行管理。
40.要保存到数据库的数据,如果又要在逻辑后面直接使的话,数据最好从数据库中取出后使用,而不是直接使用传进来的保存参数。
41.产品最好有可以进行设备解绑所有用户的功能。
42.每个对外接口以一个java文件进行实现,进行接口层次化结构处理,方便接口管理。
43.数据库接口层和公用接口层最好做到所有项目可以共用,提高开发效率。
44.进入不同的工作方式时,过行不同的方法进行显示,进入的方式最好统一(如产品WIFI进入和显示)
45.URL与controler接口层次结构一致,方便定位。
46.产品惟一码应当可以得出产品型号、品类等区分不同产品种类的信息。
47.图片URL不要写到数据库中,应只有文件名,方便测试环境与正式环境数据的共享,不用从新导入数据。
48.数据库一定要有备份,防止机器出现问题,宕机时要看二进制日志的最后一条有没有更新到数据库,防止数据宕机时的不一致。
49.把功能做成模块化(所有这个功能的内容都放在这个模块里),实现模块复制即可用。
50.做数据库删除时,不是真正删除数据,而是设置一个标志位完成
51.数据库动态信息与静态信息分离,方便信息管理
52.进行数据库设计时,为了减小数据库的查询次数,可将名称部分也加到记录中,但也为后面数据变更增加难度。
53.要确保修改数据时不出错(或让前端修改(只进行一个ID判断是不够的))可以要求前端返回原来的数据,原来的数据再从数据库中读取出来,对比是不是没有被前端修改过。最好还是按参数个数来进行API的编写(也方便权限的控制)
54.List要判空和长度是否为0
55.拦截器、注解进行操作权限的管理
56.过虑器结合URL进行操作权限的管理
57.自定义注解校验数据有效性
58.SQL 视图的作用
59.ERP操作数据验证:
数据必要性、合法性验证(AOP可以实现)
数据合理性验证(重复性、惟一性、存在性)(业务处理验证)
权限数据范围,通过定义权限、可看字段、条件字段、时间字段可以保存时间范围
操作权限可以通过在接口处放注解进行AOP来处理

60.通过抛出运行异常(IllegalArgumentException),可以减小在代码中进行返回值是否为空的处理
61.try cache 的作用是捕获异常,如果不进行捕获,异常就会抛到JVM中,那么程序会中断执行,所以如果程序还要执行就要用try cache

62.做统一的log输出方式
63.接口要做相关参的校验,并输出参数的log,方便开发
64.








猜你喜欢

转载自huangyongxing310.iteye.com/blog/2346046