97 Things Every Programmer Should Know

(Chris Devlin) #1

  • 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

Free download pdf