一周的闪念胶囊,总有一个能帮助到你

简介: 1、不管是做需求还是测试,都应该考虑整个链路,确保兼容性或者其他模块不受影响。比如内容创作改动,应该考虑到审核侧、内容分发侧是否正常。2、需求一定要经过测试。不要站在自己的角度,以为测试人员无法测试某种场景。因为方法总比困难多,比如可以把链路当中修改的点单独拎出来进行对比测试。还要多提一点的是,尽量在代码修改处添加日记,确保测试能覆盖到。3、输出日记时也要避免空指针异常。如果在业务逻辑中不会出现空指针异常,却在输出日记时抛异常,那真的是冤大头了。4、批量回刷或者删数据有风险,特别是无法恢复的物理硬删除。所以此类场景应该由用户主动触发,而不是借助定时任务批量执行。5、数据和操作行

1、不管是做需求还是测试,都应该考虑整个链路,确保兼容性或者其他模块不受影响。比如内容创作改动,应该考虑到审核侧、内容分发侧是否正常。

2、需求一定要经过测试。不要站在自己的角度,以为测试人员无法测试某种场景。因为方法总比困难多,比如可以把链路当中修改的点单独拎出来进行对比测试。还要多提一点的是,尽量在代码修改处添加日记,确保测试能覆盖到。

3、输出日记时也要避免空指针异常。如果在业务逻辑中不会出现空指针异常,却在输出日记时抛异常,那真的是冤大头了。

4、批量回刷或者删数据有风险,特别是无法恢复的物理硬删除。所以此类场景应该由用户主动触发,而不是借助定时任务批量执行。

5、数据和操作行为应该足够方便溯源。比如图片上传、批量删除数据。

6、代码上线时间也应该当成需求时间。当团队严格控制代码上线流程,比如技术方案评审、代码评审、提测、灰度发布、线上监控,你就会发现上线成本还是很高的。所以,管理好开发队列变得很重要。而秘决在于,质量优先,效率第二。

7、上游依赖接口检查。不只是要检查可用,还要检查准确度和质量。比如每页返回的数据量是否正常、返回的数据是否满足合规性和可用性。

8、避免过度设计。某些历史的实体POJO类的字段类型千奇百怪,可能是包装类Integer,也可能是基本类型Int,那么在MyBatis框架中使用xml定义一个大而全的SQL,比如使用来拼接Update方法,很容易将不需要处理的数据清空。当然手机号转让根本原因是POJO定义的问题,不过这是历史原因了,此时再修改它里面的字段类型,成本很高。所以,此时最好的方式是,新增的方法只更新它需要的,不要过度设计,不要急着考虑通用性。

9、开闭原则。它的意思是对扩展开放,对修改关闭。这个设计原则其实我们每天都在接触,比如方法入参定义为实体对象,当需要新增一个参数时无需修改参数列表,只需要在实体类中新增一个字体即可。这个原则的作用是应对变化的时候,还能够保证系统的稳定性。

10、依赖倒置原则。上游依赖属于原子类,具体细节不应该混杂在业务代码中。那样代码复用性差,而且当该业务方法出问题时,不能直接判断是否是业务代码的缺陷还是某个上游依赖的缺陷。甚至上游接口需要升级切换时,使用到它的都需要进行翻新,得不偿失。所以上游接口尽量抽象出来并且添加相应监控。

11、增强系统健壮性。主动检测不支持的情况并抛出异常,避免系统产生不可预期的结果,比如首先进行参数校验再处理业务。很简单的操作,但是可以有效增强系统的健壮性。

目录
相关文章
|
8月前
7-35 情人节 (15 分)
7-35 情人节 (15 分)
62 0
|
8月前
|
算法 Java API
算法编程(二十四):日期之间隔几天
算法编程(二十四):日期之间隔几天
81 0
leetcode 1921. 消灭怪物的最大数量(每日一题)
leetcode 1921. 消灭怪物的最大数量(每日一题)
87 0
|
人工智能 前端开发 IDE
前端已死?后端已亡?弯弯绕绕,几分真几分假
前端已死?后端已亡?弯弯绕绕,几分真几分假
147 0
L1-035 情人节 (15 分)
L1-035 情人节 (15 分)
141 0
L1-035 情人节 (15 分)
L1-075 强迫症 (10 分)
L1-075 强迫症 (10 分)
310 0
|
索引 Python
滑动宫格验证码都给碰上了?没事儿,看完此文分分钟拿下
本节我们将介绍新浪微博宫格验证码的识别。微博宫格验证码是一种新型交互式验证码,每个宫格之间会有一条指示连线,指示了应该的滑动轨迹。我们要按照滑动轨迹依次从起始宫格滑动到终止宫格,才可以完成验证,如下图所示。