Write (more) guidelines for Tor coding best practices
We should extend our best practices guidelines in doc/HACKING with all/most of the following:
- Avoiding layer violations
- Fewer levels of block nesting
- Small functions
- Small files
- Few includes per file
- Smaller state objects
- Making new features compile-time optional modules
- incremental implementation and testing
- Fewer branches
- Fewer callers/callees per function
- "Leave it better than you find it"
- Well-bounded modules
- Fewer data dependencies
Some of these can be quantified; the ones that can be should have targets.
I'm putting an optimistically low time estimate on this one under the assumption that we will have only minimal debate. :)