《程序员修炼之道 从小工到专家》读书笔记8
第43节 无情的测试
1、注重实效的程序员会受到找到自己 bug 的驱使,以免以后经受由别人找到我们 bug 带来的羞耻。
2、早测试,常测试,自动化测试。要通过全部测试,编码才算完成。
3、测试主要围绕三个方面进行:测试什么、怎样测试、何时测试。
4、测试什么。测试类型有以下这些:
- 单元测试:单元测试是函数级,有时也算做模块级的测试,要保证他们都正常通过。
- 集成测试:组成项目的子系统能工作,且它们之间能很好的协同。
- 验证和校验:这个类似AB测,是产品层面的测试。
- 异常测试,资源耗尽,错误情况,如何恢复等。
- 性能测试,压力测试,负载测试:这些情况通常是服务器相关的测试流程。
- 可用性测试:也是产品项的测试,需要分析和调研,需求是否是有用的。
5、怎样测试。主要介绍有哪些测试方法:
- 回归测试:回归测试通常是测试的后面阶段,新旧功能一起测试,新功能不应该影响旧功能。
- 测试数据:对于一些特殊场景,测试数据能起到很大帮助,比如需要大量数据,强调边界条件的数据,能展现特定字段的数据等。
- GUI系统:UI通常不好测试,所以应该做好解耦,将逻辑和视图拆分开进行测试。
- 对测试进行测试:故意制造一些bug,观察你的测试系统能否发现。
- 彻底测试:这里需要强调的是测试覆盖率,这其中需要强调的是测试状态的覆盖,而不是代码覆盖。要对不同状态都覆盖到。
6、何时进行测试。尽早测试,而且测试应该是自动完成的,我们在提交代码时就应该保证测试已经全部通过。
第44节 全都是写
1、代码要跟文档紧密结合,我们要认真对待注释及文档,他们不是可有可无的东西。
2、我们喜欢看到简单的模块级头注释,关于重要数据和类型声明的注释,以及给每个类和每个方法所加的简要头注释,用于描述函数的用法和任何不明了的事情。
3、应当使用特定的格式进行注释,通常对应语言或者 IDE 有推荐的注释格式。
4、可执行文档,即使按照特定格式进行注释,然后利用工具提取注释内容并生成文档。例如 JavaDoc
5、有时文档撰写者和开发并不是同一人,但他们应当接受同样的原则,特别是 DRY,正交性,以及自动化原则等。
iOS也有一个文档生成工具:jazzy,支持 OC 和 Swift,它可以根据标准的注释生成文档。
第45节 极大的期望
1、某个项目团队奇迹般的完成了一个非常复杂的项目,但却遭到用户抵制,原因是该引用没有帮助系统。所以考虑现实,项目的成功是由它在多大程度上满足了用户的期望来衡量的。
2、要与客户之间多交流期望,了解他们的需求,而不是一味沉溺在技术的世界里。
3、适当制造惊喜,会有些通用性的技巧能让项目获得更好的体验。比如:
- 气球式帮助
- 快捷键
- 日志文件分析器
- 自动化安装
第46节 傲慢与偏见
1、注重实效的程序员不会逃避责任,相反,我们乐于接受挑战,乐于使我们的业务知识广为人知。
2、过去时代的手艺人为能在他们的作品上签名而自豪,你也应该如此。Sign Your Work.
3、Kent Beck 在极限编程(XP)里的建议是采用公共的代码所有权,其还要求了结对编程,以防匿名的危险。所有权的好处是能为优秀的开发带来自豪感,并且当人们在一段代码上看到你的名字时,会将其认为质量的保证