程序员的修炼之道⑧

发布时间 2023-12-29 17:12:43作者: ZzHhyao

第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)里的建议是采用公共的代码所有权,其还要求了结对编程,以防匿名的危险。所有权的好处是能为优秀的开发带来自豪感,并且当人们在一段代码上看到你的名字时,会将其认为质量的保证。