- Don't mix types. Do be conservative in what you write liberal in what you accept
- Don't use the empty string or 0 for their falsiness. Do make non-casting, explicit comparisons
- Don't use numbers, booleans or any other types to model enumerations. Do model them as uppercase string constants, e.g. "WAITING", "IN_PROGRESS" and "COMPLETED".