- Keep classes and similar below 100 lines.
- Keep methods below ten lines, preferably five.
- Don't check state variables or type to determine behavior (make a new type).
- Make data sources their own type.
- View controllers should subscribe to no more than two delegate protocols.
- Classes manage their own behavior.
These are guidelines only. Break any if your circumstance calls for it.