❌事故

❌事故

2019, Apr 03    

背景介绍

今天公司里面出了事故, 直接影响线上 3w 左右用户.

问题原因

问题的直接原因是后台崩溃, 导致下发一系列错误数据.
问题放大器是代码不够健壮, 类型处理不够准确.
根本原因是重视度和意识不足.

反思 之其一

作为当事人, 及导师, 我反思了许多, 发现自己有许多地方没有做好:

  1. 方案审核 review 代码要求太低, 也不够仔细.
  2. 边界条件没有反复思考, 并且这么多年没有制定出一套统一的接口解决方案.接口相关开发全凭借个人素养和能力
  3. 个人能力成长不够, 至少在这件事情上未能胜任职务.

反思 之其二

作为项目的主力开发者, 我也有非常多的不足, 最大的问题就是安于现状:

  1. avoidCrash 明明发现别人写的不够健壮, 也不够全面, 为何不自己主动解决?
  2. codeReview 流程明明发现存在很多问题, 为何不主动导入工具去解决?
  3. 自动化测试和白盒测试, 只是向 leader 提了就够了吗? 别人不重视为何不能自己拉个小团队去解决?

反思 之其四

作为交易组主要成员, 我的眼界和能力都是有待提示的:

  1. 出现线上事故, 第一时间应该像 XSir 和 WLeader 一样先考虑用户, 先解决采用降级方案解决用户的问题.
  2. 在人员有限的情况下, 优先做最重要的事情, 就像 XSir 安排的一样
  3. 要对业务更加熟悉, 要了如指掌

反思 之其五

作为一个程序员, 要做正确的事情:

  1. 优化代码设计和架构, 比如这次缓存策略有问题, 发现问题就应该解决问题, 统一缓存策略, 避免后人踩坑.
  2. 学会做懒程序员, 能让机器解决的问题绝不人力来做.
  3. 成为”全栈”, 每当需要某些技能的时候, 才发现自己不会, 就错过了好多机会, 要有技术储备.

总而言之

千万级别的应用, 更需要我们开阔眼界, 想方设法取保证稳定性.
一年的需求导来的用户, 不如一次 bug 损失的用户多, 要重视.