3.2 设计规约
笔记:
summary
-
规约就相当于开发者和用户之间的防火墙。
- 使单独的开发成为可能:客户端可以自由的编写使用过程的代码,而不需要查看它的源代码:开发者可以自由的编写实现过程的代码,而不需要知道它如何被使用。
-
Safe from bugs
- 好的规约清楚地记录了客户端和开发者所依赖的相互假设。bug通常来自于接口上的分歧,规约的存在有利于减少bug。
- 在规范中使用机器检查的语言特性,比如静态类型和异常,而不仅仅是人类可读的注释,可以进一步减少bug。
- 在静态检查、仔细推理、测试和代码评审的帮助下,结构良好、一致的规范可以最大限度的减少误解,并最大限度的提高我们编写正确代码的能力。
-
Easy to understand
- 一个简短简单的规范比实现本身更容易理解,并且可以使其他人不必阅读代码。
-
Ready for change
- 规约在代码的不同部分之间建立契约,只要他们继续满足契约的要求,允许这些部分独立的更改。
- 适当弱的规范给开发者以自由,适当强的规范给用户以自由。
-
声明式规约在实践中最有用。
-
前置条件(它削弱了范围)使客户的工作更加困难,但是如果应用得当,他们是软件设计人员的一个重要工具,允许开发者做出必要的假设。