Code prefer small functions explicit error handling stable naming and terminology Docs short paragraphs include examples define terms once and reuse consistently