每个软件开发人员都使用API。“优秀”的API设计就像魔法。不过,我不知道有多少人可以解释为什么有的API很复杂、很难学,而有的则干净、简单、使用起来堪称是一种快乐。关于这个问题,我将在文中回答,并提供优秀API设计的十条法则。
1.只做你今天需要的
这是最顶级的规则。只解决今天必须解决的问题,最小化需要完成的答案。解决明天的问题的诱惑力是巨大的。但是一定要顶住诱惑!不要提前发布代码,重点是注重缩小发布周期。如果需要花几个小时的时间来回答新问题,那么就不用再猜测明天会出现什么问题了。
2.API模块化
将大型问题转化为规模较小的、可单独解决的问题。模块化API更容易学习,并且可以随时间而改变。你可以用新模块替代旧模块。可以一个一个地教导模块。也可以将API的实验部分从稳定或传统的部分中单独分出来。
3.使用结构化语法
使用结构化的API语法:用thing.action或thing.property代替do_action_with_thing。语法将自然而然地适应模块化的方法,其中每个模块是一个类。
4.使用自然语义
不要发明新概念。只使用开发人员众所周知的概念,作为类系统的基础。如果你发现自己需要解释概念,那说明你出错了:要么你在解决以后的问题,要么你正在错误地构建API。
5.API的自我约定
每个类都要严格使用相同的样式和约定。一致性是指当一个人学会这一个类时,他就能够融会贯通地掌握全部的类。文档化约定,让它们成为贡献者必须的标准。
6.API的可扩展性
易扩展性有许多好处,并不仅仅在于受到贡献者的欢迎。它还可以让你延缓实现功能,因为“如果需要的话,后面再添加也很方便”。不需要的功能就不添加,这也是一种双赢。
7.完全测试
每个类和方法必须经过恶意代码的完全测试。要像写代码一样写测试,然后像API提供给外界约定文档一样使用测试。每当代码改变的时候就运行这些测试。不要担心代码覆盖率。重要的是外部约定。也可以考虑使用约定生命周期。
8.分层式成长
保持API突出重点,然后在顶部将新的API分层,以便于它们能随着时间的推移成长。可扩展性并不意味着无限期的成长。明确API的范围,并在范围内执行。
9.保持简单易用
最终的测试要看API的简单易用程度。你写的例子,能不能让你的代码看起来更简单?你是不是强迫用户说明他们不在乎的选项?有没有毫无价值的额外步骤?要注重约减少API的可视面积。
10.保持可移植性
不要让系统概念泄漏到API。整洁有目的地抽象:这个API可以运行在任何操作系统上。API必须能够隐藏实现,但要注意第4条规则,以及要使用自然抽象。
欢迎大家说说自己的看法。
分享到:
相关推荐
### RESTful-API设计原则与规范 #### 一、背景与基础概念 RESTful架构作为一种流行的互联网软件架构,因其结构清晰、符合标准、易于理解和扩展等特点而受到广泛青睐。REST(Representational State Transfer)的...
基于 RESTful 架构的 API 设计原则和规范 RESTful 架构是目前最流行的一种互联网软件架构,它结构清晰、符合标准、易于理解、扩展方便,基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。因此...
《C++ API设计》探索了常常被忽视的技术性和非技术性问题,有助于推动成功的设计决策,从而产生高质量的、健壮的而且可以长期使用的API。” ——Eric Gregory,Pixar动画工作室软件架构师 “《C++ API设计》面向中...
1. API 接口设计原则:明确 API 接口的设计原则,包括RESTful API 设计原则、参数设计原则、错误处理原则等。 2. 数据格式规范:规定 API 接口中使用的数据格式,包括 JSON 格式、日期格式、金额格式、时间格式等。...
C++ API设计.pdf
在本文中,我们将深入探讨C++ API设计的关键要素,包括接口设计原则、命名规范、错误处理机制、封装策略以及面向对象特性在API设计中的应用。 首先,接口设计是API的核心。一个良好的API应该具有清晰、简洁的接口,...
### API接口设计文档模板知识点详解 #### 一、概述 API(Application Programming Interface...通过这些知识点的学习,开发者可以更好地理解和掌握API接口的设计原则和技术细节,为后续的实际开发工作打下坚实的基础。
- 讨论了API设计的基本原则和技术。 - 探讨了如何评估API的有效性及其对用户的影响。 2. **Java语言在API设计中的应用** - 介绍了Java语言特性如何影响API设计。 - 分析了Java生态系统中常见的API设计模式和...
在软件开发领域,API(应用程序...通过深入理解并应用这些原则,我们可以设计出更高效、易用和可靠的API,从而提升整个软件项目的质量。 Joshua Bloch的见解对于任何希望提升API设计水平的开发者来说都是宝贵的指导。
PHP API 接口设计教程 PHP API 接口设计教程主要是讲解如何使用 PHP 语言来设计和实现 API 接口,本文将从基本...API 接口设计是软件开发中非常重要的一步,需要遵守基本原则和安全措施来确保 API 的可靠性和安全性。
8. API设计的自我描述性:一个优秀的API应该能够自我描述,使开发者可以直观地了解其功能,而不是被迫阅读文档才能使用。API应该提供清晰的命名和直观的接口,以减少学习成本。 9. 代码的简洁性:设计API时应追求...
Qt作为一款成熟且广泛使用的跨平台应用开发框架,其API设计原则不仅适用于Qt本身,对于其他领域的API设计也有着重要的参考价值。通过遵循这些原则和流程,我们可以创建出既高效又易于使用的API,从而提升开发者的...
以下是设计Go API时关于管道使用的一些重要原则: ### 原则 #1:声明管道的方向性 Go语言允许在类型签名中声明管道的方向,即`表示接收通道,`chan表示发送通道。例如`time.After`返回一个`,表明这个通道只能接收...
**Visual Basic 6.0 Win32 API程序设计** Visual Basic 6.0(VB6)是Microsoft开发的一种可视化编程环境,它允许开发者快速构建Windows应用程序。尽管现在Visual Basic已经发展到更新的版本,但VB6依然在许多企业中...
描述部分提到了在NetBeans架构下进行API设计,强调了设计优秀API的重要性。这表明文章将不会是泛泛而谈,而是会结合NetBeans平台独有的环境和工具来具体说明API设计的要点。NetBeans作为一个集成开发环境(IDE),其...
Joshua Bloch强调了对API设计重要性的深刻理解,并提供了设计良好API的一些关键原则和实践。他提出的观点不仅适用于专业的API开发者,也适用于所有编写模块化代码的程序员。此外,他对设计过程的细节描述,包括搜集...
下面我们将深入探讨几个关键的API设计原则,包括命名规范、接口一致性、文档编写、错误处理以及版本控制。 1. **命名规范**: 命名是API设计的基础,清晰、直观的命名能帮助开发者迅速理解API的功能。Python推荐...
开放API的设计应当遵循RESTful原则,确保接口清晰、简洁且易于理解。 加密算法在Open API中的角色不容忽视。当涉及到敏感信息传输时,例如用户登录凭证、交易数据等,API通常会使用加密算法来保证数据的安全性。...
2. **API设计原则**:根据MVC(Model-View-Controller,模型-视图-控制器)设计模式对EPG系统进行功能层次划分,使用面向对象的技术进行代码级别的层次划分。这种设计方法有助于保证API具备良好的封装性、可重用性、...