`

优秀API设计的十大原则

 
阅读更多
每个软件开发人员都使用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条规则,以及要使用自然抽象。



欢迎大家说说自己的看法。
分享到:
评论

相关推荐

    java API设计

    1. **设计原则**:遵循SOLID原则(单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则),这有助于创建稳定、可复用的API。此外,还包括DRY(Don't Repeat Yourself)原则,避免重复代码。 2. **...

    C++ API设计 中文高清扫描版 带完整目录书签 PDF

    《C++ API设计》探索了常常被忽视的技术性和非技术性问题,有助于推动成功的设计决策,从而产生高质量的、健壮的而且可以长期使用的API。” ——Eric Gregory,Pixar动画工作室软件架构师 “《C++ API设计》面向中...

    API接口设计规范.docx

    1. API 接口设计原则:明确 API 接口的设计原则,包括RESTful API 设计原则、参数设计原则、错误处理原则等。 2. 数据格式规范:规定 API 接口中使用的数据格式,包括 JSON 格式、日期格式、金额格式、时间格式等。...

    C++ API设计.pdf

    C++ API设计.pdf

    API设计教程

    API有哪些品质要求,有哪些关键要素,有哪些通用的技巧,设计时要遵循哪些原则……这些问题都能在本书中找到答案。 本书主要内容。 第1章:API简介。阐释API的概念及其独特之处,概览全书内容。 第2章:特征。解答...

    API 接口 设计文档 模板

    ### API接口设计文档模板知识点详解 #### 一、概述 API(Application Programming Interface...通过这些知识点的学习,开发者可以更好地理解和掌握API接口的设计原则和技术细节,为后续的实际开发工作打下坚实的基础。

    Google首席工程师Joshua Bloch谈如何设计优秀的API

    在软件开发领域,API(应用程序...通过深入理解并应用这些原则,我们可以设计出更高效、易用和可靠的API,从而提升整个软件项目的质量。 Joshua Bloch的见解对于任何希望提升API设计水平的开发者来说都是宝贵的指导。

    visual Basic 6.0 win32 API程序设计(pdf格式)

    **Visual Basic 6.0 Win32 API程序设计** Visual Basic 6.0(VB6)是Microsoft开发的一种可视化编程环境,它允许开发者快速构建Windows应用程序。尽管现在Visual Basic已经发展到更新的版本,但VB6依然在许多企业中...

    API 设计原理(Qt)

    Qt作为一款成熟且广泛使用的跨平台应用开发框架,其API设计原则不仅适用于Qt本身,对于其他领域的API设计也有着重要的参考价值。通过遵循这些原则和流程,我们可以创建出既高效又易于使用的API,从而提升开发者的...

    软件框架设计的艺术 Practical API Design 英文PDF原版(吾乐吧提供)

    总之,《软件框架设计的艺术》是一本深入探讨API设计实践的书籍,涵盖了从设计原则到实施细节的多个方面,对于任何希望在软件框架设计领域提升自己的人来说,都是值得一读的宝贵资料。通过学习书中的知识,你可以更...

    How to Design a Good API

    描述部分提到了在NetBeans架构下进行API设计,强调了设计优秀API的重要性。这表明文章将不会是泛泛而谈,而是会结合NetBeans平台独有的环境和工具来具体说明API设计的要点。NetBeans作为一个集成开发环境(IDE),其...

    Python技术API设计指南.docx

    下面我们将深入探讨几个关键的API设计原则,包括命名规范、接口一致性、文档编写、错误处理以及版本控制。 1. **命名规范**: 命名是API设计的基础,清晰、直观的命名能帮助开发者迅速理解API的功能。Python推荐...

    IPTV系统的EPG模块API设计与实现

    2. **API设计原则**:根据MVC(Model-View-Controller,模型-视图-控制器)设计模式对EPG系统进行功能层次划分,使用面向对象的技术进行代码级别的层次划分。这种设计方法有助于保证API具备良好的封装性、可重用性、...

    Web API的设计与开发 阅读计划-雨帆1

    2.2 节详细解释了 API 端点设计的原则,如短小、易读、易改、不暴露服务器架构等,这些原则旨在提高 API 的用户体验和可维护性。2.3 节探讨了 HTTP 方法的使用,如 GET、POST、PUT、DELETE 等,以及它们在 API 设计...

    http api调研分享

    1. API设计原则:一个好的API应该遵循易用性、可维护性和安全性三个基本原则。易用性主要体现在API易于学习和使用,即使没有文档也能快速上手,且设计简洁明了,命名规范。可维护性则要求API能专注做一件事,并且做...

    Practical API design

    ### 实用API设计知识点概述 #### 一、书籍简介与作者背景 《实用API设计:一位Java框架架构师的自白...通过学习本书中的知识,开发者能够更好地理解和掌握API设计的核心原则,从而设计出更高质量、更符合需求的API。

    API查询API查询API查询API查询

    在这个主题下,我们将深入探讨API的基本概念、类型、设计原则以及查询方法。 API是软件开发的核心组成部分,它们为开发者提供了一种标准化的方式,以便于访问特定服务的功能,而无需理解底层实现的复杂性。API通常...

    API design matters

    然而,设计优秀的API并非易事,这需要深入理解API设计的原则与最佳实践。本文将根据给定的信息探讨API设计的重要性及其挑战。 #### 一、API设计的意义 API作为软件系统中的纽带,其设计的好坏直接影响到整个系统的...

    JAVA_API1.6文档(中文)

    java.lang 提供利用 Java 编程语言进行程序设计的基础类。 java.lang.annotation 为 Java 编程语言注释设施提供库支持。 java.lang.instrument 提供允许 Java 编程语言代理检测运行在 JVM 上的程序的服务。 java....

Global site tag (gtag.js) - Google Analytics