不要笑,这是一个伪命题,作为一个IT老兵,开发完成后依然会有很bug,倍感打击。所以我想总结和分析一下原因。写出高质量,少bug的代码。
1:认真领会需求,最好能把理解消化过的需求和产品或者熟悉业务的同事对照一次,如果没有歧义建议记录起来,以备日后参 考;分析一下特殊场景,预估风险。
(PS:我遇到很多这样的场景,我们现在开发只有原型稿,关键的业务逻辑,原型上会备注,产品经理会开宣讲会,再听会的时候只是跟着接受,理解只能到会后了,开发的时候会发现很多细节都很模糊,就会产生很多bug,和自己的粗心大意也有关系)
2:设计表,这是开发的基石,也是设计的灵魂,除了满足三大范式之外,还有主要很多细节;字段命名要合理,类型,长度等; 还有最容易被忽略的,字段的备注 和 索引;
(PS:现在JAVA开发 底层代码 基本都是代码生成工具生成的,字段的命名和备注直接影响到底层代码的质量;不要试图通过代码保证数据不会重复,我已经遇到过几次这样的问题,因为现在都是多线程的项目,集群部署,通过代码保证数据不会重复是不可能的,必须设置数据库唯一主键;默认所有的表 都有创建人,创建时间,更新人,更新时间,逻辑删除标记;varchar 类型的默认空字符串(更高效),不要默认NULL)
3:保持基础通用方法的纯粹性,不要再这样的方法中增加特殊的业务逻辑;如果需要特殊的业务逻辑自己再扩展新的方法;
4:代码开发符合阿里规约,保持代码的规范性,每一个分支 要考虑if,else,还有会不会出现NULL的情况;还要考虑多线程,分布式事务等;
4:VO,DTO 对象封装(也包括JS 对象封装),不要把多个对象的字段 合成一个对象,这样太混乱了,尽量对象里放对象,每个对象都保证它的纯粹性;
6:review! 重构!注释!功能能开发到基本能用的时候就可以重构了,主要是重构不合理 不规范,重复的代码;增加注释,review自己的代码看看有没有潜在的bug;再过几天之后再review一次,现在的思路已经和开发时候的不一样,算上能从第三者的视角看; 最后 的结果 干净,优美,纯粹,清晰明朗。
5:功能开发完成后自测,或者和产品业务对照一次,确保功能能正常使用,页面上有很多小细节,再和原型对照一下这些都会成为测试同学的bug?;
6:真实遇到--状态回退,页面没有控制,后台也没有控制,造成状态回退。(DB系统客户离店)
7:真实遇到--懒人做法,全表更新,同一个时间点消费多个消息处理同一条数据,这条数据就会被更新的乱七八糟,消费每条消息只更新自己相关字段,其他的不更新;
希望我的总结能帮我大家,我也能按照这些方式执行!
(后续补充:1:接口数据的正确性,落库数据的的正确性;2:系统间数据的同步,一致性)