软件开发中最要不得信任
因为信任,所以简单。
但是在软件开发中,不要相信你的上游、下游、队友、中间件。
在开发过程中,需要时时谨记的是在别人错误的情况下,如何实现软件的自保。自救为开发核心,毕竟干100件正确的事情没人记住,一次错误的事情就可能全功尽弃。而不是实现业务流程!
1.提高代码健壮性
开关逻辑(救命逻辑) : 对于新增功能,改动功能,使用开关进行逻辑分离
参数 尽量用符合条件的判断,而不是排除条件的判断
npe : 所有要使用的参数,首先进行空指针的判断
try{}catch{}代码块。在catch块中进行兜底
2.提高业务监控的敏感性
提高代码的健壮性,是保证我们的代码尽量不出错。但是错误有时是不可避免的。
添加监控,监控总体的逻辑就是过滤与聚合。
添加监控的目的是为什么?报警啊!!! 我们一定要实现分钟级的错误报警。
现在搞下报警!
如何做业务监控
首先统计得有维度,维度即所有数据需要按照该key进行分类(group by)。 在每一个类中进行数据聚合。(max,min,avg,sum)作为观察指标。
报警该如何配
指标
通过维度聚合出数据指标(1分钟之内的所有数据分类聚合/分钟级聚合,秒级聚合,单位时间内的数据进行聚合)
成功率 成功量 rt 流量
如果觉得指标波动比较厉害 可以取几分钟的平均值(继续聚合指标)
波动
判断曲线波动 比如top95就是一条标准线 或者成功率90%就是一条标准线
同比: 对比上周、昨天的曲线波动
环比:对比相邻时间的曲线波动
3.做好新功能上线流量的灰度
对于新功能,实现灰度发布,层层验证后在全量