8.1 程序员的职业素养:靠谱
素养
解决问题能力
团队协作能力
自我驱动能力
8.2 解决问题能力
何为好的解决问题能力
- 快速定位
- 深入分析
- 取舍解决
线.上发生了集群崩溃问题你会如何解决?
快速定位
- 依据报警快速粗筛: 接口耗时,数据库耗时,网络耗时,JVM OOM?
- 快速止血:熔断降级,限流,重启?
- 验证尝试:是否恢复
集联问题最难解决:系统边界划分,容错设计
深入分析
- 具体原因是什么:数据量过大,慢sq|, 发布bug, 被刷了?
- 触发条件:线_上运行的好好的突然出问题一定是有触发条件
- 总结原因:分析定位总结原因
取舍解决
用什么方案解决什么问题,还会不会引入别的问题,后续如何改进
举例
- 问题:线上系统突然崩溃,用户间歇性无法登录交易
- 快速定位
排查无法交易的接口监控报错
获取token异常
错误日志和监控显示redis client无法获取链接
redis cluster server单机故障,CPU打满, 关注到有大量key写入
排查写入接口发现登录请求巨大
重启redis cluster server,客户端重连
故障间歇性恢复
- 深入分析
被恶意登录刷token,刷交易量
异常流量处理,网络层封杀对应客户端IP
故障完全恢复
- 取舍解决
系统需要具备可以防刷的能力
token下发能力限制,对IP封杀(可能会引入误伤),验证码机制(影响正常用户体验)
8.3 团队协作能力
何为好的团队协作能力
- 协作模式
- 冲突解决
- 主导项目
协作模式
- 润滑剂模式:正面向上,互帮互助
- 权责模式:明确边界,大公无私型模式
- 混合模式:明确边界,正面向上
冲突解决
- 遇到冲突积极解决,明确职责范畴,互相体谅,共同改进进步
主导项目
- 明确目标
- 职责分工
- 过程管理
- 结果导向
- 复盘改进
8.4 自我驱动能力
主动学习
- 最近主动学了什么,有什么收获,分享一下?
积极承担
- 模糊边界地带积极承担责任,拿到结果
自我迭代
- 复盘了吗
