- First optimize code for being shared with your future self as easily as possible.
- Later, if needed, you'll find it's already optimized for sharing with others.
- Keep as much code as possible in libraries.
- Keep as little code as possible in applications and production systems.
- Test each library's public interface.
- [[Don't Test Internals]]
- Make tests as short and readable as possible, so they can act as [[Write Executable Documentation|Executable Documentation]].