在人间做韭菜的那些年(2)--搬砖军规
写了好几年代码,今天梳理和沉淀一些搬砖盖楼的方法论,时刻鞭策自己去遵守以及重温它们。
编码军规
- 并发控制,默认使用悲观锁,一锁二判三更新,乐观引入须谨慎。
- 幂等拦截,幂等新老要兼容,字段约束需一致,异常场景防击穿。
- 状态推进,流转设计要完整,状态推进凭指令,业务态不可逆。
- 对象设置,成员变量慎赋值,引值引址需眼晰,对象比较用 equals。
- 数据库表,SQL必须带字段, where条件有索引,索引不含隐式转。
- 时间设置,关注时区和时,避兔设置当地值, string传值带时区。
- 异常防御,请求校验防慕改,异常 catch不能吞,线程对象清理好。
- 代码质量,CR单测集成测,结果断言边界值,金量回归不能少。
中间件使用
- 消息使用, grouped要唯一,重复投递质关注,事务回查防悬挂,
- 缓存设计,缓存击穿要,过期设计去热点,存储容量需考虑。
- 事务处理,悬挂告警要及财,严禁造成空国滚,确保最终一致性。
- 调度任务,调度重要免,图取数据可配置,熔断能力需具备。
- 限流配置,增量覆盖要分清,删规则要小心,异常限流调算法。
- druid使用,连接数量需评估,耗时上要警惕,FO机制来保障。
防御编程
- 强弱依赖合理
针对强依赖一般禁止高级别应用依赖低级别应用。
针对弱依赖系统,注意捕获调用异常,合理设置超时时间 - 业务环境隔离
为了避免业务之间产生能,必要的业务进行线程。
限流值连接池的基至进行存储的隔离。
资金安全
- 资金风险,证账实要对清楚,业务规则细分析,配置上下需一致。
- 金额计算,注意币种元和分,计算使用 Money类,外汇买卖方向对。
- 核对设计,过程终态均核对,包含金额状态码,中间帐户对余额。
- 资金应急,上报止血要及时,数据捞取要复核,应急调账需审批。
数据质量军规细则
- 业务保障,资损舆情录场景,时效保障用基线,上下协同保业务。
- 引擎变更,变更方案要评审,灰度测试融演练,巡检免疫要到位。
- 数据研发,研发规范须遵守,冒烟测试不可少,仿真灰度保稳定。
- 监控核对,任务监控要添加,内容核对要重视,及时降噪禁麻木。
- 风险治理,潜在风险配巡检,风险接收须治理,不治升级要限权。
生产变更
- 提前计划,下周变更本周理,重大高危需报备,沟通确认应有效
- 灰度分批,生产之前先灰度,分批操作控比例,关键业务须盯盘。
- 防御检测,变更前后配校验,监控巡检覆盖全,防御规则勤演练。
- 变更过程,恢复手段提前定,应急操作有人盯,出现问题变更停。
应象止血军规
- 应急值班,手机电脑随身带,电量网络要确保,暂时离开有备份。
- 应急响应,接到告警快响应,出现风脸速升级,预案执行要谨慎。
- 应急过程,恢复止血是第一,高危操作先灰度,谨慎小心防扩大。
- 应急手段,发现变更先回滚,容量不够降和限,容灾切换来兜底。
- 应急建设,实战攻防日常练,定位自愈助提升,历史故障取经验。