本质上讲,这个原则倡导的是,当我们写一个函数或一个方法时,我们应该引用相应的接口,而不是具体的实现类。接口提供了非常优秀的抽象归纳,让我们的开发工作变得容易很多。 让API的使用者和API的实现者解耦出来。
模块化架构随着软件规模的增大以及功能的复杂性增加。只要代码开始访问其他无关模块的内容,那么架构的退化不可避免。模块化能有效变缓这种退化。
模块化的目的非常简单,就是要实现程序中各个组成部分的松耦合。如果两个模块是独立的,那两个模块就不需要知道对方的存在。如果两个模块要交互,那么他们应该通过具有良好定义的接口来进行交互。
声明式编程声明式编程的基本思路, 不是让API用户一步一步告诉程序如何做,而只是需要告诉程序他们要的结果,然后交给API去完成。声明式编程的好处是能在较高的抽象层次来定义操作。
比如写一个资源管理API: API的使用者很容易找到一个方法去注册一个功能,运行一下成功了,然后不再往下继续找注销的方法了。 声明式编程就是解决这个问题的一剂良药: 开发人员只需要声明注册什么,响应的注销和清理由系统完成。
极端的意见有害无益最后提醒一点,任何极端的想法都是有害的,在软件框架设计中也一样, 有以下单不仅限几个点:
API必须是漂亮的
API必须是正确的: 有时候易用性和正确性还重要。比如巨大文件
API应该尽量简单
API必须是高性能
API必须绝对兼容
API必须是对称的
团队协作现代的大型工程很少是有一个人单独开发完成的,所以团队协作非常重要。一下几个点能很好帮助在大型软件工作中完成好的API设:
在提交代码时候进行代码审核
为API提供文档
尽职尽责的监控者
接受API的补丁
以上非常简单,但是在外面平常工作中缺少的就是执行。