http://www.infoq.com/cn/news/2007/09/why-api-design-matters
infoQ上的这篇文章“API设计的“不可承受之轻””,我感觉非常好。
1. 他分析了优良的api设计的必要性。越底层的api影响的范围越大,也就越需要良好的设计。
2. 不良api设计的例子,select()方法。
3. 优良设计的注意事项:
- API必须要提供充分的功能,以供调用者完成自己的任务。
- API应该是最精简的,不要为调用者带来多余的不便。
- 如果没有理解API的使用环境的话,那也就不能去设计它。
- 通用性的API应当是与具体使用场景无关的,而特定用途的API则要充分考虑使用策略。
- API应该从调用者的角度来进行设计。
- 好的API绝不推卸责任,把自己该做的事情不要留给别人。
- 在实现API之前,就应该把API文档化。
- 好的API应当符合工效学(Ergonomic)。
4. 优良设计思想的传播。这部分比较新颖,一般技术文章提到的不多。也就是说,一样好东西,怎么样才能让大家都来用,而不是放在箱底。工程学的好多优良设计都应该放到教学环节中去,这样才能一代一代的往下传,而且更容易发展。