Goal: Someone familiar with other modules in RAMCloud can:
- use the module in expected ways without reading its source code
- modify the code with reasonable time investment as supported by the docs
- Docs are now required at module boundaries only. Also, significant abstractions should have docs.
- More emphasis on module-level docs and examples, less on boilerplate, redundant, and obvious text.
- Make doxygen less anal so you can leave off params and return values that are obvious (within modules) or explained elsewhere (within modules or at module boundaries).
Goal: My peers would agree that the tests sufficiently show that the interesting paths of the module are correct.
- Black box tests are OK
- We will maintain test isomorphism at the file level.
- Tests that are not isomorphic at the module level are OK as long as there is a clear place for tests for any given line of code. All other things equal, isomorphism at the method level is preferred.
- Skipping trivial statements is OK.