moved to DAP
authorRobin Berjon <robin@berjon.com>
Fri, 21 Oct 2011 10:50:39 +0200
changeset 23 e181834c5380
parent 22 e3e3bf71a7e5
child 24 6d6c03f3f078
moved to DAP
api-design/Overview.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/api-design/Overview.html	Fri Oct 21 10:50:39 2011 +0200
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+  <head>
+    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+    <title>API Design Best Practices</title>
+    <script class='remove'>
+      var respecConfig = {
+          specStatus: "ED",
+          shortName:  "api-design",
+          editors: [
+                {   name:       "Robin Berjon",
+                    url:        "http://berjon.com/",
+                    company:    "Robineko",
+                    companyURL: "http://robineko.com/" }
+          ],
+          edDraftURI:   "http://w3c-test.org/webapps/api-design/",
+          copyrightStart: 2011,
+          noIDLIn:      true,
+          wg:           "Web Applications (WebApps) Working Group",
+          wgURI:        "http://www.w3.org/2008/webapps/",
+          wgPublicList: "public-webapps",
+          wgPatentURI:  "http://www.w3.org/2004/01/pp-impl/42538/status",
+      };
+    </script>
+    <script src='http://respec.specifiction.com/js/profiles/w3c-common.js' class='remove'></script>
+  </head>
+  <body>
+    <section id='abstract'>
+      <p>
+        This document captures best practices in designing APIs that fit well into the Web platform as
+        a whole, using WebIDL [[!WEBIDL]].
+      </p>
+    </section>
+    <section id='sotd'>
+      <p>
+        As it currently stands, this document is nothing more than a proposal from its editor, with no
+        backing implied or otherwise from any other party.
+      </p>
+    </section>
+    <section>
+      <h2>Introduction</h2>
+      <p>
+        Over a relatively short period of time the number of different APIs being created for use on the
+        Web has grown at a sustained pace. In working on these interfaces, many in the community discuss
+        the benefits of certain approaches over others and reach agreement as to best practices when
+        facing a given problem.
+      </p>
+      <p>
+        Keeping track of all these gems is however difficult given the volume of work being carried on
+        in parallel and the sometimes disjointed nature of the groups involved. As a result, it can take
+        a long while and many arguments repeated almost identically before a discovered best practice
+        becomes common.
+      </p>
+      <p>
+        The goal of this document is to capture such ideas as they appear and accrete them over time so as
+        to constitute a repository of knowledge on this topic. As a guide it does not however endeavour to
+        supplant editors' brains in making decisions as to how to design their APIs, and consequently one
+        must keep in mind that the reasoning behind a specific recommendation is often more important than
+        its result. Furthermore, in some cases there may not be a single consensual best approach, and 
+        editors will need to understand the tradeoffs involved in order to pick what works for them amongst
+        a set of options.
+      </p>
+    </section>
+    <section>
+      <h2>WebIDL Legacy Features</h2>
+      <p>
+        ...
+      </p>
+    </section>
+    <section>
+      <h2>Exceptions</h2>
+      <p>
+        ...
+      </p>
+    </section>
+    <section>
+      <h2>When to use NoInterfaceObject</h2>
+      <p>
+        ...
+      </p>
+    </section>
+    <section>
+      <h2>Using Dictionaries</h2>
+      <p>
+        ...
+      </p>
+    </section>
+    <section>
+      <h2>Specifying Callbacks</h2>
+      <p>
+        ...
+      </p>
+    </section>
+    <section class='appendix'>
+      <h2>Acknowledgements</h2>
+      <p>
+        Many thanks to Cameron McCormack, Marcos Càceres, and Andreas Gal for their input.
+      </p>
+    </section>
+  </body>
+</html>