《程序员的三门课》 读书笔记


第一章主要讲述的是程序员技能与成长,作者从编程语言的选择到代码测试,从使用工具来武装自己到提倡一切自动化,由浅入深的介绍了程序员的入门及学习方法。 其中作者强调了清单和流程在日常协作过程中的重要性,作为一个高级工程师,应该具备凡事有清单,做事有规范,协作有流程的基本素养; 具备快速定位和解决问题的能力。

六何法

六何法又叫做6W或5W1H分析法,即What、Who、When、Where、Why及How,需要我们在学习的过程中多思考,多问问题。

测试驱动设计有3个原则

  • 原则 1: 无测试,不代码。
  • 原则 2: 单元测试不在多,能够识别出问题即可。
  • 原则 3: 代码不在多,让当前单元测试全部通过即可。

重构,是为了更好的前行!

代码审查

代码审查这件事其实是可以标准化和流程化的,其效果在一定程度上也是可以量化的。要想做好代码审查,有一份审查清单是非常有必要的。一般来说,审查清单应该包括如下几大类目:

  • 代码结构
  • 代码安全性
  • 代码性能
  • 代码注释
  • 单元测试
  • 代码优化

一般来讲,代码审查的行数要控制在200以内,不能超过400行。

清单和模板

为什么需要清单和模板?

原因如下:

  • 面对复杂的问题,做决策往往不容易。
  • 要建立应急处理机制,简单、直接、有效。
  • 要有应对各种问题的清单。

解决问题时要有如下步骤:

  • 出了什么问题,汇总问题和现象,试着探究原因。
  • 找到解决问题的流程,应该谁负责驱动,流程有哪些环节,有哪些可选方案。
  • 按步骤解决问题。

要让清单成为一种习惯,清单就应该足够简单、清晰并且深入人心。同时,清单应该嵌入流程之中,只有在流程中,才能收到关注和持续运营,从侧面治理的模式往往会名存实亡。

程序员工作法则

YAGNI : You Ain’t Gonna Need it, 你不会需要它。 意思是: 如果不必要,别增加复杂度。

  • 工具化法则
  • 自动化法则
    自动化测试的的核心问题有两个:一个是分层,一个是稳定。

 评论