Conventions/code/naming: Difference between revisions
No edit summary |
No edit summary |
||
Line 41: | Line 41: | ||
** preferably a PortRow Unit object | ** preferably a PortRow Unit object | ||
* '''value''' means a read-only value, assumed to exist (throws error if not) | * '''value''' means a read-only value, assumed to exist (throws error if not) | ||
==Namespace Aliases== | |||
When creating an alias for a namespace, I use a single capital letter as shorthand for parent-folders of the current namespace -- ''not'' for folders outside of it. | |||
'''Example''': In <code>namespace ferret\data\bank</code>, I might use <code>D</code> as an alias for <code>ferret\data</code> (<code>use ferret\data as D;</code>), but I would ''not'' use that alias in <code>namespace ferret\globals</code>. I would, however, use <code>F</code> as an alias for <code>namespace ferret</code> in both of them. |
Revision as of 13:53, 17 November 2021
I tend to use the following naming conventions within my code, more or less in keeping with the Apps variation of Hungarian notation.
Prefixes
Variable Prefixes
- f: floating-point number
- k or K: a constant, i.e. anything whose value should not (or cannot) change once defined
- n: a count (int; use f for float)
- o: object
- or: a ref object (see Value Types)
- os: a status object (see Value Types)
- s: string
- sc: string that is the name of a class
- sq or sql: string that is formatted as SQL, or safe to be used within SQL
see also General Affixes
Declaration Prefixes
- c: class
- ca: abstract class (cannot be instantiated)
- cs: static class (not intended to be instantiable; all methods static)
- ch: a string that is always a single character
- f: [DEPRECATED; use namespaces instead]: a Ferreteria class/trait/interface
- if: interface
- t: trait
see also General Affixes
General Affixes
In the prefix but not necessarily as the first characters:
- db: a database
- rc: a single-record class/object
- rs: a recordset class/object
- t: a table class/object
These may be used in declarations or variable names, but are generally used only for classes and objects. For classes, the c
prefix comes first; for objects, these replace the o
prefix, and sometimes may be the entire name of the variable.
Value Types
- cell means access to a value in a named location (e.g. an array element)
- ref means a reference-container object (cReference)
- slug means a string which can unambiguously represent any expected value or state of a given item
- needed for representing record IDs in URLs, where one possible state is "new" (no ID yet)
- status means a presence-info object
- preferably descended from cThingHolder
- unit means something that knows its own name and has awareness of its container-object/structure
- preferably a PortRow Unit object
- value means a read-only value, assumed to exist (throws error if not)
Namespace Aliases
When creating an alias for a namespace, I use a single capital letter as shorthand for parent-folders of the current namespace -- not for folders outside of it.
Example: In namespace ferret\data\bank
, I might use D
as an alias for ferret\data
(use ferret\data as D;
), but I would not use that alias in namespace ferret\globals
. I would, however, use F
as an alias for namespace ferret
in both of them.