I found these “misuse levels” over at technovelty, which they originally ripped from Rusty Russel’s Bleeding Edge Page, which is a page you should definitely check out if you haven’t.
Anyway, I found these “misuse levels” both hilarious to read and at the same time somewhat concerning, as I started thinking “Where does my code really go on this list?”
- Impossible to get wrong
- Compiler/linker won’t let you get it wrong
- Compiler/linker warns if you get it wrong
- Simplest use is correct
- The name tells you how to use it
- Do it right or breaks at runtime
- Follow the convention and you will get it right
- Read the documentation and you will get it right
- Read the implementation and you will get it right
- Read the correct mailing list and you will get it right
- Read the documentation and you will get it wrong
- Follow the convention and you will get it wrong
- Do it right and it will break at runtime
- The name tells you how not to use it
- The obvious use is wrong
- Compiler/linker will warn you if you get it right
- Compiler/linker won’t let you get it right
- Impossible to get right