bug 记录

下游接口使用出错
错误:需要使用下游的分页查询接口,但是却使用了下游加密的分页查询接口。导致加密的逻辑扰乱了流程。
正解:使用下游接口时应该尽量和项目负责人确认,若接口是通用的逻辑,那么至少也要看清下游的实现逻辑。
根源:流程意识不足,思考不够全面。只关注到了本次改动流程,而没有考虑到经过本次改动的其他流程。

波及面较大的改动,一定要考虑加开关,而且最好的方法是:开关可以做在统一的客户端上
错误:财务所有服务上缓存改造,部分服务没有加开关,风险意识不够强。新缓存客户端运行一周后出问题,导致缓存不可用,收银台受影响。
正解:树立正确的风险意识,前期开发、改造投入更多的精力,确保自己服务的健壮性。
根源:风险意识不足,前期因加开关的工作量较大,对代码设计不好,所以没有加入开关,导致出问题时,无法做到紧急回滚时,系统可用性降低。
推荐方案:开关可以做到缓存改造客户端内部。

@Max 限定最大,@Min 限定最小
错误:@Min(1000) 限定最大
正解:@Max(1000) 限定最大

A模块调B模块的api,当B模块改了接口后。
错误:A模块重新引依赖,直接测试。
正解:B模块还需要上推代码,并构建。
此情况下的整体流程:
B模块改接口 -》 B模块推送代码并发包、测试构建 -》 A模块引入新包 -》A模块针对更改做代码改动

循环遍历整个List, 在循环内做计数,并计数器=1000时则处理一次结果,并归零计数器。
错误:最后一次循环,如果循环内的计数器达不到1000,那么就会忽略掉最后的一次结果。
正解:在循环退出后,要判断计数器是否大于0,如果大于0,则要处理掉最后的结果。

正确判断异常类型的方式

if (e instanceof RPCException) {
    if (((RPCException) e).getStatus().equals(FrtException.AUDIT_STATUS_ERROR)) {

    }
}

项目启动错误:Exception: io.netty.resolver.dns.DnsServerAddressStreamProviders
正解:

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.1.25.Final</version>
</dependency>

拨线上接口
正解:
在这里插入图片描述
注意:网关发布时,要设置无需登录+无需校验

String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢?
原理知识:

  1. 如果参数类型是原始类型,那么传过来的就是这个参数的一个副本,也就是这个原始参数的值,这个跟之前所谈的传值是一样的。如果在函数中改变了副本的 值不会改变原始的值.
  2. 如果参数类型是引用类型,那么传过来的就是这个引用参数的副本,这个副本存放的是参数的地址。
    a.如果在函数中没有改变这个副本的地址,而是改变了地址中的 值,那么在函数内的改变会影响到传入的参数。
    b.如果在函数中改变了副本的地址,如new一个,那么副本就指向了一个新的地址,此时传入的参数还是指向原来的 地址,所以不会改变参数的值。

由于String类型的不可变性,String在被重新赋值时会重新new出一个字符串,放到常量池中。故String虽然是引用传递,但实质上并不能把里层函数的修改带到外部函数来。

public void soutA() {
	String a = "";
	this.changeA(a); 
	System.out.printfln("a=" + a);
}

private changeA(String a) {
	a = "A";
}

此时输出:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值