第一章主要讲述的是程序员技能与成长,作者从编程语言的选择到代码测试,从使用工具来武装自己到提倡一切自动化,由浅入深的介绍了程序员的入门及学习方法。 其中作者强调了清单和流程在日常协作过程中的重要性,作为一个高级工程师,应该具备凡事有清单,做事有规范,协作有流程的基本素养; 具备快速定位和解决问题的能力。
六何法
六何法又叫做6W或5W1H分析法,即What、Who、When、Where、Why及How,需要我们在学习的过程中多思考,多问问题。
测试驱动设计有3个原则
- 原则 1: 无测试,不代码。
- 原则 2: 单元测试不在多,能够识别出问题即可。
- 原则 3: 代码不在多,让当前单元测试全部通过即可。
重构,是为了更好的前行!
代码审查
代码审查这件事其实是可以标准化和流程化的,其效果在一定程度上也是可以量化的。要想做好代码审查,有一份审查清单是非常有必要的。一般来说,审查清单应该包括如下几大类目:
- 代码结构
- 代码安全性
- 代码性能
- 代码注释
- 单元测试
- 代码优化
一般来讲,代码审查的行数要控制在200以内,不能超过400行。
清单和模板
为什么需要清单和模板?
原因如下:
- 面对复杂的问题,做决策往往不容易。
- 要建立应急处理机制,简单、直接、有效。
- 要有应对各种问题的清单。
解决问题时要有如下步骤:
- 出了什么问题,汇总问题和现象,试着探究原因。
- 找到解决问题的流程,应该谁负责驱动,流程有哪些环节,有哪些可选方案。
- 按步骤解决问题。
要让清单成为一种习惯,清单就应该足够简单、清晰并且深入人心。同时,清单应该嵌入流程之中,只有在流程中,才能收到关注和持续运营,从侧面治理的模式往往会名存实亡。
程序员工作法则
YAGNI : You Ain’t Gonna Need it, 你不会需要它。 意思是: 如果不必要,别增加复杂度。
- 工具化法则
- 自动化法则
自动化测试的的核心问题有两个:一个是分层,一个是稳定。