代码之家  ›  专栏  ›  技术社区  ›  Vivin Paliath

设计API的最佳实践和指南[关闭]

  •  91
  • Vivin Paliath  · 技术社区  · 15 年前

    在设计API时,我可以遵循哪些准则和最佳实践? 至少,我知道API应该易于使用和灵活。不幸的是,这些术语可能比较主观,所以我正在寻找一些与良好的API设计相关的具体指南。

    5 回复  |  直到 9 年前
        1
  •  59
  •   Arnold Zokas    11 年前

    我发现下面的东西值得一看 乔舒亚·布洛赫- How To Design A Good API and Why it Matters

    例子是在Java中,但你仍然可以绘制相似之处。既然您没有提到具体的技术,我想您不需要特定的解决方案。

        2
  •  31
  •   Bakudan Lovely    12 年前

    作为一个必须消耗大量原料药的人…

    请以一致的方式编写API:

    1. API内部的一致命名。使用完全相同的动词、名词和关键字。

    2. 与将要使用的目标环境一致。如果是.NET,请参考Microsoft的命名准则。

    3. 一致的概念。工厂模式?建设者模式?静态方法?接口?只要挑一个,坚持下去。真的?没有这样的东西 小的 规则例外。它会像大拇指一样突出。超过1个例外?你的API越来越业余。

    另一个是:特异性。

    1. 我可以实现的基类,如果您选择提供它们,那么应该有一些定义良好的函数来实现。不要告诉我“getdata()”返回一个“object[]”,然后期望我实现它,弄清楚为什么我必须将它强制转换为字符串[],然后调试为什么要调用它20次。 最好有dataPoint[]getChartData()、string[]getLabelData()等,让我选择应该实现的。

    2. 请不要在名称上花太长的时间:PostrenderColorWheelModifyHSVbaseHandler。 您通常可以将超特定的东西重构为更通用的名称+参数。

    3. 字符串参数为否!使用枚举。我不想使用像

      Postrenderhandler(“色轮”,“HSV”,某些代表);

    我更喜欢一个枚举,我可以调查:

    PostRenderHandler(ModuleType.ColorWheel, Options.ColorWheelHSV, someDelegate);
    

    伙计,我可以继续……乔希·布洛克写得很好的API的威力真是太棒了…坏的可能真的很痛苦。

        3
  •  12
  •   andrewsi Laxman Battini    9 年前

    有一个 good presentation 关于这一话题,来自Joshua Bloch。演示文稿使用Java,但思想是独立于语言的。 Another source (pdf) 快速概述。

        4
  •  9
  •   Klinger    15 年前

    这是来自Microsoft的链接: http://msdn.microsoft.com/en-us/library/ms229042.aspx

    还有这本书: 框架设计指南:可重用.NET库的约定、习惯用法和模式

        5
  •  3
  •   andrewsi Laxman Battini    9 年前

    我认为你的问题在你提供的信息量如此之大的空间里是无法得到回答的。我在Google中输入了“api设计”的几个链接,在第一页得到了这些看起来不错的链接。

    http://web.archive.org/web/20151229055009/http://lcsd05.cs.tamu.edu/slides/keynote.pdf

    http://www.artima.com/weblogs/viewpost.jsp?thread=142428

    http://web.archive.org/web/20090520234149/http://chaos.troll.no/~shausman/api-design/api-design.pdf