- Apply Functional Programming Principles ................ Design Principles and Coding Techniques
- Ask, “What Would the User Do?” (You Are Not the User) ......
- Beauty Is in Simplicity .............................
- Choose Your Tools with Care ........................
- Code in the Language of the Domain ...................
- Code Is Design ..................................
- Coding with Reason ..............................
- Convenience Is Not an -ility ........................
- Distinguish Business Exceptions from Technical ...........
- Don’t Repeat Yourself ............................
- Encapsulate Behavior, Not Just State ...................
- The Golden Rule of API Design .......................
- Response Time ................................. Interprocess Communication Affects Application
- and Hard to Use Incorrectly ....................... Make Interfaces Easy to Use Correctly
- in Parallel Systems .............................. Message Passing Leads to Better Scalability
- Missing Opportunities for Polymorphism ................
- Only the Code Tells the Truth .......................
- Prefer Domain-Specific Types to Primitive Types ..........
- Prevent Errors .................................
- Resist the Temptation of the Singleton Pattern ............
- The Single Responsibility Principle ....................
- Thinking in States ...............................
- WET Dilutes Performance Bottlenecks .................
- Code in the Language of the Domain ................... Domain Thinking
- Domain-Specific Languages ........................
- Learn Foreign Languages ...........................
- Prefer Domain-Specific Types to Primitive Types ..........
- Read the Humanities ............................. Contents xvii
- Thinking in States ...............................
- Write Small Functions Using Examples .................
- Distinguish Business Exceptions from Technical ........... Errors, Error Handling, and Exceptions
- Don’t Ignore That Error! ............................
- Don’t Nail Your Program into the Upright Position ...........
- Prevent Errors .................................
- Verbose Logging Will Disturb Your Sleep ...............
- Continuous Learning .............................. Learning, Skills, and Expertise
- Do Lots of Deliberate Practice.......................
- Don’t Just Learn the Language, Understand Its Culture .......
- Fulfill Your Ambitions with Open Source .................
- The Guru Myth ..................................
- Hard Work Does Not Pay Off ........................
- Read Code ...................................
- Read the Humanities .............................
- Reinvent the Wheel Often .........................
- Don’t Rely on “Magic Happens Here” ................... Nocturnal or Magical
- Don’t Touch That Code! ............................
- The Guru Myth ..................................
- Know How to Use Command-Line Tools .................
- The Linker Is Not a Magical Program ..................
- Test While You Sleep (and over Weekends) ..............
- Verbose Logging Will Disturb Your Sleep ...............
- for the Rest of Your Life ........................... Write Code As If You Had to Support It
chris devlin
(Chris Devlin)
#1