diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/apis.txt | 69 | ||||
-rwxr-xr-x | doc/intern.txt | 12 |
2 files changed, 81 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 +------------------- ------------ -------------------------------------- diff --git a/doc/intern.txt b/doc/intern.txt index c45765b23..58879c659 100755 --- a/doc/intern.txt +++ b/doc/intern.txt @@ -119,6 +119,18 @@ be converted to Nimrod automatically: itself. +Coding Guidelines +================= + +* Use CamelCase, not underscored_identifiers. +* Indent with two spaces. +* Max line length is 80 characters. +* Provide spaces around binary operators if that enhances readability. +* Use a space after a colon, but not before it. +* Start types with a capital ``T``, unless they are pointers which start + with ``P``. + + Porting to new platforms ======================== |