8

设计 JavaScript API 的好方法是什么?

我对 JavaScript 比较陌生,并且学习了该语言的主要优秀特性,主要来自“JavaScript: The Good Parts”。目前,我正在设计一个基于网络的工具来教授统计学。代码库变得笨拙的部分原因是我不了解如何设计 JavaScript API。

我的背景是 Java 和 C++,习惯于设计接口,然后独立实现这些接口。显然,这在 JavaScript 中效果不佳。

感谢您的任何帮助和建议。

更新:此处工具的最终版本:http ://www.lock5stat.com/statkey/index.html

4

3 回答 3

2

John Resig 对 NodeIterator API 提出了严厉的批评。虽然它是对一个特定 API 的回顾,但它提供了一些关于(至少他认为)如何成为一个好工具的见解。

于 2011-01-24T00:20:09.043 回答
2

在我看来,如果您使用 jQuery,最好的解决方案是将您的应用程序划分为 jQuery 插件和 UI 小部件。插件是组织代码的好方法,您可以在其他应用程序中重复使用它们,也可以单独发布它们。

您可以将应用程序编写为插件树。您可以考虑像 C++/Java 中具有聚合但不继承的类的插件。

关于代码的注意事项:在 MAIN.bootstrapPlot 函数中,您使用 document.createElement,您应该像在其余代码中一样使用 jQuery,并检查Canto 库中的 Canvas。

于 2011-01-24T00:45:27.990 回答
1

我认为这与开发任何语言的 API 相同,请牢记语言特性。

  1. 正如您指出的那样,接口在 javascript 中没有多大意义,但它是面向对象的,因此您可以将功能划分为“类”,使用设计模式等。

  2. 文档。您可以像记录任何 API 一样记录 javascript“类”。

  3. 即使 js 中没有对接口或抽象类的原生支持,您仍然可以强制执行这些原则。例如,您可以通过定义一个带有引发错误的方法的对象来创建一个“抽象类”,这样子类如果没有正确实现就会出错。任何使用接口的东西都可以做一个简单的检查,看看 init 上是否有必要的方法。请注意,有些 js 人对此会皱眉头,指出 js 是松散类型和动态的,应该这样使用。

请注意,我将“类”放在引号中,因为 javascript 没有这样的概念。您可以做的另一件事是查看现有的 API,例如 Sencha 或 jQuery,以获得一些想法。Sencha 感觉就像是服务器端开发人员习惯使用的 API(查看他们的文档)。

于 2011-01-24T00:10:56.063 回答