Added a section on "symbolic is better than literal" to NathanielsCodeFragrances.
diff --git a/NathanielsCodeFragrances.wiki b/NathanielsCodeFragrances.wiki
index 4e3d834..1ea6483 100644
--- a/NathanielsCodeFragrances.wiki
+++ b/NathanielsCodeFragrances.wiki
@@ -11,6 +11,7 @@
= For Code In All Languages =
+ * *Referenced, contextual symbolism is favored over isolated, context-free literalism.* `java.lang.Math.PI` is used and not a literal numeric value such as `3.14159D`. `httplib.OK` is used and not the literal numeric value `200`. The code is full of constants, and wherever possible constants are defined and shared by the code that controls the protocol to which those constants are germaine (so clients should be using constants defined by servers rather than servers using constants defined by clients, or clients and servers should both be using constants defined by some protocol specification independent of both). There are very few literal values of any type to be found in the functions that comprise the behavioral sections of the code.
* *The components, modules, interfaces, and subdivisions within your code are tractable, clear, and sensible.* The methods of a class or the elements of a module make sense both individually and considered together as a group. Interfaces have comprehensible semantics that elegantly express the author’s behavior intent in the precise language of code.
* *The documentation is complete and appropriate to its level of abstraction.* Public APIs of modules and classes are clear, can be understood without reading a single statement of code, and make no reference to non-public elements of the code. The documentation is properly phrased, capitalized, and punctuated and could be understood if it were read aloud.
* *The documentation is appropriately formatted.* Indentation, example code, and links, citations, and cross-references are all where and what they are supposed to be. The documentation renders properly and legibly after extraction with documentation-generating tools.