哈哈,方德童鞋
充分暴露了现在大龄技术的窘境
技术这行业,青春饭;年过 35 的话,不用过多考虑,能做一年是一年
如果你还足够年轻,你还是要继续在这个行业做,那就看自己目前的能力是否具备找到下一份好的工作,其次能持续稳定几年
果然飞哥还是这么高产优秀
一次性迭代需求,没啥好提效了,就跟新功能上线一个理,正常测试验证
如果是长期项目,那就看模型设计了,初期对应的需求设计的模型是可以支撑,后期不断产品迭代,有可能继续在原来模型上实现,就出现了一堆垃圾代码,需要重构,如果你能及时识别模型风险,提前重构,那对后期替换会降低很大成本
如果你能针对数据模型设计规范,出一个整体评估分,那就完美了
我现在做数据开发,给你几个思路
1、表监控,主键重复告警,表行数超阈值告警
2、产出及时性告警,延迟分析
3、输出的 dwd 表无下游使用的时候,告警
4、语法规范性检查,表更换底表之后,如何自动验证新逻辑表跟线上表的数据 差异
一路看着飞哥不断自我拔高,我辈楷模
深有感触~楼主这边做的分析非常深刻~
这种图快的方式,让前端做一堆计算逻辑的,对测试而言是巨坑,对整个系统而言就是存在非常大的数据安全问题,计算结果依赖前端计算是非常大的错误;
好的文章要细品,高飞讲到了本质,从事测试行业需要热爱这个行业,与时俱进的学习跟成长,才避免作为喷子的尴尬
两个字: 优秀~
插件地址有吗,开源了吗
比较关系这个健康值的定义是怎么定义的
好文,顶起
是啊,谁让你不来,- -
现在 spring 有些框架默认是不开启长连接的,开发需要代码上额外处理下
header 请求的 connection 是不是设置成 keep-live?
参考文章:https://blog.csdn.net/zhaohongyan6/article/details/70841456
😁😁😁我就是想减少一个入参处理,用 threadlocal 比较多,尤其在自定义注解这块;支付业务我是看我们服务实现处理,😄,用的比较漂亮
哈哈,果果,从你的回答就看到你确实没体会其中妙处,全局 map 定义这种尤其还不是静态变量,在编程规范是尽量避免的,threadloal 等于在本次业务请求处理中,是个全局临时变量,线程执行完成,自动销毁 threadlocal,这个在支付业务中,有很广的应用,可以作为订单处理异常的时候,资金解冻等相关处理
已经在应用了,给你段处理代码给你看下,拿来即用
public class DynamicLocalHolder {
public static final ThreadLocal<Map<String,Object>> hodler = new ThreadLocal<>();
public static Map<String,Object> get(){
return hodler.get();
}
public static void set(Map<String,Object> map){
hodler.set(map);
}
public static void set(String key,Object value){
Map<String,Object> map = hodler.get();
if(map == null){
map = Maps.newHashMap();
}
map.put(key,value);
set(map);
}
public static void clean(){
hodler.remove();
}
}
前一个接口设置值:
if(CollectionUtils.isNotEmpty(teacherQAResponseList)){
DynamicLocalHolder.set("teacherQAResponseList",teacherQAResponseList);
}
后一个接口获取值:
/**
* 设置讲师问答
*/
private void setTeacherQA(CreateCourseItemRequest createCourseItemRequest){
if(DynamicLocalHolder.get().containsKey("teacherQAResponseList")){
List<TeacherQAResponse> teacherQAResponseList = (List<TeacherQAResponse>) DynamicLocalHolder.get().get("teacherQAResponseList");
List<TeacherQARequest> teacherQARequestList = Lists.transform(teacherQAResponseList, new Function<TeacherQAResponse, TeacherQARequest>() {
@Override
public TeacherQARequest apply(TeacherQAResponse teacherQAResponse) {
TeacherQARequest teacherQARequest = new TeacherQARequest();
BeanUtils.copyProperties(teacherQAResponse,teacherQARequest);
return teacherQARequest;
}
});
createCourseItemRequest.setTeacherQAList(teacherQARequestList);
}
}
charles 修改响应结果,设置响应结果中想测试的字段设置为 null 即可;一般而言,客户端这边不会对所有用到的字段做判空处理,所以一旦为空出现 crash 的情况比较大,最好还是要规范服务端童鞋的编码规范,返回为空的时候返回默认值例如
List<String> stringList = null;
stringList = (CollectionUtils.isEmpty(stringList))? Lists.newArrayList():stringList;
有意思,有时间再看看
猜测只是打印出神策相关日志。根据打点要求,肉眼比对