系统健壮性设计
1.entity作为传入的参数,不单要进行非空校验,而且要进行具体参数的校验,
2.根据id查询获得users对象,要判断users是否为空
3.注释//生成用户列表 很模糊,要注释成为 生成属于这个角色的用户列表
4.1,3,4是错误的
1.魔法数字应该定义为常量
2.log的时候出错奥带上messageVo否则不知到什么地方出错
3.直接使用toString输出日志
F5 龙卷风的最高等级
软件负载
同机房,同单元优先 1ms一下
跨机房 5ms左右
跨区域 200ms以上
新加坡发起调用请求,中国有机房美国也有机房,根据区域优先的规则,应当优先调用中国的机房
1.限流:限制一部分用户的访问,限制西部地区的用户的访问,限制恶意用户的访问,加入黑名单,短时间内多次访问的用户。
2.降级:对用户的使用体验降级
eg:双十一汪汪的头像全部点亮,减少服务器的负荷。
eg:es使用了10台服务器搭建起来的集群提供搜索服务,此时挂了5台,呢么就将搜素的匹配精度下调50%
3.熔断:停止全部都服务保证核心的流程
4.灾备:保证遇到问题的时候可以恢复到正常状态的能力
控制台是基于springboot搭建的可以自己设置规则
只能做到准时,再怎么快也无法做到实时的监控
1.主备准实时备份,一般1主3备
2.杜绝物理删除,只使用逻辑删除
3.定时对数据进行冷备份(日志快照)
4.为了防止自然灾害,要往云端备份,防止遇到自然灾害导致数据物理销毁
一开始如果是public接口那么如果需要改变成为,protect、private会很麻烦,因为已经有很多人直接调用了这个接口,所以一开始设定的范围呀小一点,使用private这样修改会简单
封装是一种思维方式,自己用private,子类用protect
弱网的情况下更能看出一个app的质量
坏处是有时间差的,无论怎么迅速,一定是有时间差
双电式是最好的 但是价格昂贵
起到一个稳压的作用
有其他机房但是不敢切换,因为怕数据不一致
同城灾备切换的时候时间差会小,dtc的同步框架
思维就是力量
代码覆盖率
90%覆盖率高还是低?有些覆盖没有用
a3,b4,c==5 还要测 组合的,之后的代码如果还有if、else 的嵌套,路径+条件覆盖才算覆盖,很复杂很多
代码覆盖率低的有问题 ,代码覆盖率高也不一定就没有问题,所以自动化测试不是没用的,但是想要全部的覆盖也需要写很多的脚本,
所以自动化测试其实是针对固定的输入输出效率高
netflix拍网剧的公司,提供了很多技术的潮流
asm侵入式的代码侵入inject