summary refs log tree commit diff stats
path: root/doc/apis.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/apis.txt')
-rw-r--r--doc/apis.txt69
1 files changed, 69 insertions, 0 deletions
diff --git a/doc/apis.txt b/doc/apis.txt
new file mode 100644
index 000000000..02caa8c24
--- /dev/null
+++ b/doc/apis.txt
@@ -0,0 +1,69 @@
+==========
+API design
+==========
+
+The API is designed to be **easy to use** and consistent. Ease of use is
+measured by the number of calls to achieve a concrete high level action.
+
+
+Naming scheme
+=============
+
+The library uses a simple naming scheme that makes use of common abbreviations
+to keep the names short but meaningful. Since version 0.8.2 many symbols have
+been renamed to fit this scheme. The ultimate goal is that the programmer can
+*guess* a name.
+
+
+-------------------     ------------   --------------------------------------
+English word            To use         Notes
+-------------------     ------------   --------------------------------------
+find                    find           should return the position where
+                                       something was found; for a bool result
+                                       use ``contains``
+contains                contains       often short for ``find() >= 0``
+append                  add            use ``add`` instead of ``append``
+compare                 cmp            should return an int with the
+                                       ``< 0`` ``== 0`` or ``> 0`` semantics;
+                                       for a bool result use ``sameXYZ``
+put                     put, ``[]=``   consider overloading ``[]=`` for put
+get                     get, ``[]``    consider overloading ``[]`` for get;
+                                       consider to not use ``get`` as a
+                                       prefix: ``len`` instead of ``getLen``
+length                  len            also used for *number of elements*
+size                    size, len      size should refer to a byte size
+items                   items          default iterator over a collection
+pairs                   pairs          iterator over (key, value) pairs
+delete                  delete, del    del is supposed to be faster than
+                                       delete, because it does not keep
+                                       the order; delete keeps the order
+remove                  delete, del    inconsistent right now
+include                 incl
+exclude                 excl
+command                 cmd
+execute                 exec
+environment             env
+variable                var
+value                   value, val     val is preferred, inconsistent right
+                                       now
+executable              exe
+directory               dir
+path                    path           path is the string "/usr/bin" (for
+                                       example), dir is the content of
+                                       "/usr/bin"; inconsistent right now
+extension               ext
+separator               sep
+column                  col, column    col is preferred, inconsistent right
+                                       now
+configuration           cfg
+message                 msg
+argument                arg
+object                  obj
+parameter               param
+operator                opr
+procedure               proc
+function                func
+coordinate              coord
+rectangle               rect
+point                   point
+-------------------     ------------   --------------------------------------