(本人表示任重道远,惭愧)
基本技能:
- 各种应用技术JAVA
、Mysql等;有专攻、有覆盖;
- 理解计算机工作原理;算法/数据结构;
- 沟通:态度、理解、表达
- 工程能力
- 执行力和自我管理能力
个人认为接手一个服务的一般过程:
第一步:理解系统需求的前世今生(这里需要阅读文档,约谈PM,RD等),最终能一个需求过来能判断是不是服务的边界范围之内
第二步:阅读接手的代码,要求能做到能够画出系统的架构图,清楚依赖方
第三步:从小需求开始,以点带面,包括前端后台到数据库,包括代码的提交到最终的部署上线等等
第四步:对服务的未来规划,推广有自己的方案输出,后续能坚持执行等
|
要求
|
内容,或例子
|
---|---|---|
开发 与 实现 | 1.理解业务模型 2.工程模块化管理(要必要的话) 3.代码仓库管理 4.文档输出 |
比如sinai得业务服务的边界,服务只管信息的聚合,并不着重检索。
完整、准确的把产品需求转换成合理的软件模型。比如sinai分成各个模块,哪些依赖包,真正部署在线上的哪个模块
对新的需求评审能力,单独开发能力,能够画出系统的架构图等等
代码的模块部署结构,多分支开发、进度控制、代码/资源/对外输出文档管理,对于每个服务应该有自己的文档主页,如sinai的文档给调用放节省了不少RD交流时间 |
质量 与 保证 | 坚持BASE原则, 可用+一致性+分布式 等等。 1.保证功能,3个9还是4个9 2.性能 3.健壮 4.排查问题机制,或是事故处理,或是排查问题处理 5.代码风格 | 功能:
性能:
健壮性
代码风格
|
运维 与 简捷
| 1.监控 2.报警 3.部署管理 4.数据库的迁移和备份 5.处理事故
努力做到,对等机房节点配置相同,发布部署方式统一 | 监控/报警/排查、解决问题
一些琐事:机器申请、磁盘日志清理、自动重启等 |