首页 > 其他分享 >代码重构注意点及测试覆盖-复盘(公共通用逻辑修改需要注意点)

代码重构注意点及测试覆盖-复盘(公共通用逻辑修改需要注意点)

时间:2024-04-21 09:55:52浏览次数:31  
标签:逻辑 点及 代码 对接 接口 查询 注意 公共 复盘

1.sqlmap查询的字段是否是全部字段,在使用实体类对象的时候,需要判断是否正确的获取到数据。
如果查询的是个别的字段,而使用的字段不在查询的字段中,就会无法获取到值。
建议的做法:按中台的思路,提供的查询方法是大而全的方法。提供对业务的支持。

2.测试的方法:查询数据提供了查库和查缓存的两种访问方式,但是访问的地址不同。
这样在做postman接口测试的时候,首先需要确认地址和端口是否正确。

3.开发接口的文档的维护的重要性,可以将版本号,变更内容和时间等维护上去,比如对接不同的供应商,每家的需求不同,
提供出去的是通用标准化的文档,但是每家对接的需求不同,哪些接口做了对接,哪些接口没有做对接,可以在文档中明确的标识出来,
方便日后的排查和回顾。时间长了,很多都很容易遗忘。代码注释同理。
对开发的总结,方便后续对接类似或相同需求的快速接入。避免每次都是需要从头开始梳理。

4.公共逻辑,底层逻辑的改动方法,首先需要考虑影响的上层调用的方法,接口。并且需要做测试覆盖和回归。警惕:非空逻辑的判断
并且不能在公共方法中抛出异常等,中断业务逻辑。公共逻辑更多的是做兼容并包的逻辑,而不是特立独行的逻辑。
如果是特立独行的逻辑,可以将公共逻辑抽象出来,具体的实现类来继承,个性化的逻辑在具体的实现类中来处理。
减少对公共业务逻辑的代码污染。

5.接口设计的兜底方案,比如:if elseif else {},可以理解为最后一个else就是兜底,如果条件都不允许,则做兜底的逻辑。
比如获取经纬度城市名称,为了减少查询高德接口的次数,内部业务系统A在接收到业务系统B接口的数据,有数据用接口数据,没有数据,则业务系统A接口内部根据经纬度来反查城市名称。

6.公开化的接口或页面,方便发现问题(比如下单页面)。定时任务的接口等不容易发现,隐蔽性强。往往不容易发现的是更加需要警惕的。

7.代码的review和项目组内沟通,一个人开发视角的局限性,多人参与可以从不同的角度来分析,规避问题,避免上线后出现问题。

标签:逻辑,点及,代码,对接,接口,查询,注意,公共,复盘
From: https://www.cnblogs.com/oktokeep/p/18148616

相关文章

  • 4 20复盘
     显示的是springboot无法注入这个bean对象。当浏览器访问登录接口,后台生成token并响应给浏览器,浏览器在访问其他接口时都需要携带该令牌。登录后使用jwt并根据当前用户信息生成个人token,该token会响应给浏览器,同时把这个token存到redis中,访问其他接口时,在拦截器中分别从浏览器......
  • ABC240 复盘
    ABC240复盘[ABC240C]JumpingTakahashi思路解析显而易见,求是否可能,用可能性dp即可。code#include<bits/stdc++.h>usingnamespacestd;constintN=1e2+10,M=1e4+10;intn,x,a[N],b[N];boolf[N][M];intmain(){ cin>>n>>x; for(inti=1;i......
  • ABC191 复盘
    ABC191复盘[ABC191C]DigitalGraffiti思路解析求不规则图形的边数,根据题目可知多边形的内角只有\(90^\circ\)和\(270^\circ\),所以只需要从四个方向扫描一遍,求出每个方向上分别有几条边即可。code#include<bits/stdc++.h>usingnamespacestd;intn,m;charch[15][15......
  • ABC229 复盘
    ABC229复盘[ABC229C]Cheese思路解析题目已经告诉了你每克比萨能带来的美味度,因此直接以每克的美味度为关键字贪心即可。时间复杂度:一次排序,\(O(n\logn)\)。code#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#definePIIpair<longlong,longl......
  • Educational Codeforces Round 157 (Rated for Div. 2) 复盘
    又是vp的稀烂的一场。A没问题。被B一道800卡了。但是确实非常简单,就是从式子上入手,让\(|x_1-x_2|+|y_1-y_2|\)最小就可以了。所以就把两维度分开来看,这两维之间的距离是不会影响代价的,这是曼哈顿距离的特点。那么就很明显了,就是从中间分开。但是我vp的时候并没有看出来。而是......
  • ABC212 复盘
    ABC212复盘[ABC212C]MinDifference思路解析与\(a_i\)差值最小的某个\(b_j\)要么是第一个大于它的值,要么是第一个小于它的值,而这两个值都可以用二分求得,于是我们直接将\(b\)数组排序,然后对于每一个\(a_i\)都用二分找到上文提到的两个值即可。code#include<bits/std......
  • ABC211 复盘
    ABC211复盘[ABC211C]chokudai思路解析题目说的很明白,看到匹配子序列可以轻易想到是简单dp,直接做即可。时间复杂度:两个字符串两层循环,\(O(8\timesN)\)。code#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+10;constlonglongmod=1e9+7;stri......
  • 【笔记】RedmiBookPro15锐龙板(7840hs)安装ubuntu2204注意事项
    /** 2024-04-17 12:53:52*/1、不要安装ubuntu2004,驱动问题很烦入,尤其是AMD的显卡驱动,不论哪个版本都不要打AMD的官方驱动,经常花屏,卡的完全不能操作,自带的开源驱动就行了,偶尔出现一两道花屏的,不影响使用,而且一会就消失了。如果经常出现在bios里调大显存试试,默认512估计不够,我......
  • wpf程序修改启动入口注意事项
    如果你在自定义的Main方法中直接使用App类并启动应用程序,但发现App.xaml中定义的资源没有被正确加载,那么问题可能在于如何正确配置App.xaml与你的App类的交互。确保App.xaml文件中的x:Class属性正确指向你的App类。这样,当你创建App类的实例并调用Run方法时,它......
  • 【Mac取证篇】macOS取证注意事项
    【Mac取证篇】macOS取证注意事项今天看到群组小伙伴讨论这个,就想起来了多年前做的笔记,找了下没找到,已经不懂现在躺在那块硬盘里吃灰,算了,让它继续躺着吧,最近事情有点多,公众号都没时间更新……。本篇直接使用的Apple官方文档,针对"Mac文件保险箱"和"Mac时间机器",以及自行外延了一点小......