- STAGNATION IS THE MIGHTIEST FOE
- DO IT YOURSELF; WRITE CODE FROM SCRATCH WHERE POSSIBLE
- THE MOST CRITICAL TOOL IS A MIND WELL EDUCATED IN DESIGN PRINCIPLES
- THE ABILITY TO DISCOVER IS CARDINAL
- ALWAYS BE THE WORST GUY IN EVERY BAND THAT YOU’RE IN
- AVOID TEMPORARY FIXES BECOMING PERMANENT
- OPTIMIZATION WITHOUT FIRST MEASURING IS ALMOST ALWAYS PREMATURE
- WHAT IS RIGHT IS NOT ALWAYS POPULAR AND WHAT IS POPULAR IS NOT ALWAYS RIGHT
- CONSISTENCY IS A REFUGE FOR THE PEOPLE WHO MUST READ MY CODE LATER ON
- LEAVE THE CAMP SITE BETTER THAN YOU FOUND IT
- LIMIT USE & CUSTOMIZATION OF THIRD-PARTY TOOLS/FRAMEWORKS/LIBRARIES (TO AVOID SUPPORT AND SECURITY ISSUES).
- Encapsulation
- Separation of Concerns
- Single Responsibility
- Modularity. High Cohesion. Low Coupling
- Interface Segregation
- Name as short as possible but as long as necessary
- YAGNI/KISS/Gall's Law
- The more tests resemble the way the software is used, the more confidence they can provide
- Waterbed Theory
- Principle of Least Astonishment
- DOCUMENTATION DOCUMENTATION DOCUMENTATION
- Principle of Least Privilege
- Secure Defaults
- Defense in Depth
- Fail-Secure
- Input Validation
- Empathy Mapping (think, feel, see, hear, say, and do)
- Walk A Mile
- Minimalism; any visible element must have a purpose
- Clear, Informative Communication
- Visual Hierarchy
- Accessibility
- Emotion
- Flexibility (Customisability) & Efficiency (Shortcuts)
- Quick & Inexpensive Prototyping For Testing
- Constant User Testing & feedback
“I'm not a great programmer; I'm just a good programmer with great habits.”