职业之路的思考
# 1. 技术人成长的重要元素
# 1.1 公司关注的人才要素
- 聪明
- 智力水平
- 后天努力
- 业务能力过硬
- 专长某一领域,减少竞争
- 基本功扎实
- 软实力
- 硬实力
# 1.2 知识的理解层次
第一层:了解,知道,没有使用过
第二层:会使用,了解基本原理,会做些常见的优化
第三层:知晓原理,熟悉底层实现,掌握各类优化
# 2. 软件研发能力
# 2.1 软件工程能力
- 目的是为用户/客户创造价值
- 质量是生命线,质量第一
- 实现软件的可持续交付
- 使用科学的方法
- 持续提升研发效率
# 2.2 软件研发能力要求
设计阶段
- 需求分析
- 分清需求和解决方案。仅做需求分析
- 系统设计
- 避免过度设计,仅设计目前所需
编码阶段
- 编码能力
- 鲁棒
- 高效
- 简洁
- 风格统一
- 高内聚,低耦合
- 有意义的命名
- 注释
- 复用
- 可测试
- 可监控
- 代码提交
- Change List的描述:做了哪些更改,以及如何更改。包含背景信息:issue编号,相关文档,设计思路等
- 鼓励小型Chang List:改动代码行数少或文件个数少。小型的CL有诸多好处。原子性的做一件事,包含必要的测试代码
- 大型Chang List要进行拆分,除非是自动生成的代码
- 代码审查
- 代码审查原则:
- 不要求完美,要求有改善
- 审查者对代码拥有所有权
- 尊重个人偏好
- 审查每一行代码,除非自动生成的
- 在不牺牲代码质量的前提下,避免阻碍开发人员进度
- 代码审查要点:
- 设计、功能、复杂度、测试、文档
- 注释清晰,做好清理工作
- 有礼貌:给出明确的指示,对开发者给予指导
- 代码审查中的抵触:
- 先反思
- 开会讨论
- 上升
- 代码审查原则:
- 保证质量
- 原则
- 软件的正确性
- 服务的可用性
- 数据的可靠性
- 实践
- 严格遵守研发流程
- 有效的测试覆盖率和自动化测试
- 定义并保障服务SLI
- 原则
维护阶段
- 维护成本
- 开源协作
# 2.3 软件工程师的软素质
- 有担当,值得信赖
- 主人翁意识
- 主观能动性
- 沟通和表达
- 结构化思维
- 持续学习
# 3. 精通某一领域的方法论
# 3.1 Chunk it up 切碎知识点
- 庖丁解牛
# 3.2 Deliberate Practicing 刻意练习
- 刻意练习 - 过遍数
- 练习缺陷、弱点地方
- 脱离舒适区
# 3.3 Feedback 反馈
即时反馈
主动式反馈(自己寻找)
被动式反馈(高手指点)
上次更新: 2021/03/02, 02:03:00
← 分布式篇-Redis 管理之道 - 领导力 →