- Check your code first before looking to blame others
- Don't touch that code!
- How to use a bug tracker
- Two wrongs can make a right (and are difficult to fix)
- Deploy early and often
- Don't touch that code!
- Install me
- Keep the build clean
- Let your project speak for itself
- One binary
- Own (and refactor) the build
- Automate your coding standard
- Code layout matters
- Code reviews
- A comment on comments
- Comment only what the code cannot say
- Take advantage of code analysis tools
- Apply functional programming principles
- 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
- Don't repeat yourself
- Encapsulate behavior, not just state
- The golden rule of api design
- Interprocess communication affects application response time
- Make interfaces easy to use correctly and hard to use incorrectly
- Message passing leads to better scalability in parallel systems
- 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-specific languages
- Learn foreign languages
- Prefer domain-specific types to primitive types
- Read the humanities
- Thinking in states
- Write small functions using examples
- Distinguish business exceptions from technical
- Don't ignore that error!
- Don't nail your program into the upright position
- Prevent errors
- Verbose logging will disturb your sleep
- Continuous learning
- 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"
- 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
- Write code as if you had to support it for the rest of your life
- Apply functional programming principles
- Floating-point numbers aren't real
- Improve code by removing it
- Interprocess communication affects application response time
- Know your limits
- Large, interconnected data belongs to a database
- Message passing leads to better scalability in parallel systems
- The road to performance is littered with dirty code bombs
- Use the right algorithm and data structure
- WET dilutes performance bottlenecks
- Continuous learning
- Do lots of deliberate practice
- Hard work does not pay off
- The longevity of interim solutions
- The professional programmer
- Put the mouse down and step away from the keyboard
- Testing is the engineering rigor of software development
- Write code as if you had to support it for the rest of your life
- You gotta care about the code
- Apply functional programming principles
- Domain-specific languages
- Don't just learn the language, understand its culture
- Know well more than two programming languages
- Learn foreign languages
- Act with prudence
- Before you refactor
- The boy scout rule
- Comment only what the code cannot say
- Don't be afraid to break things
- Improve code by removing it
- Keep the build clean
- Know your next commit
- The longevity of interim solutions
- A message to the future
- Only the code tells the truth
- Own (and refactor) the build
- The professional programmer
- The road to performance is littered with dirty code bombs
- Simplicity comes from reduction
- Ubuntu coding for your friends
- You gotta care about the code
- Beware the share
- Convenience is not an -ility
- Do lots of deliberate practice
- Don't repeat yourself
- Reinvent the wheel often
- Use the right algorithm and data structure
- WET dilutes performance bottlenecks
- Act with prudence
- Code is design
- Know your next commit
- Learn to estimate
- Make the invisible more visible
- Beauty is in simplicity
- Learn to say, "hello, world"
- A message to the future
- Simplicity comes from reduction
- Code reviews
- Learn foreign languages
- Pair program and feel the flow
- Start from Yes
- Two heads are often better than one
- Ubuntu coding for your friends
- When programmers and testers collaborate
- Apply functional programming principles
- Code is design
- Don't be cute with your test data
- The golden rule of api design
- Make interfaces easy to use correctly and hard to use incorrectly
- Make the invisible more visible
- News of the weird: testers are your friends
- Test for required behavior, not indicental behavior
- Test precisely and concretely
- Test while you sleep(and over weekends)
- Testing is the engineering rigor of software development
- When programmers and testers collaborate
- Write small functions using examples
- Write tests for people
- Automate your coding standard
- Check your code first before looking to blame others
- Choose your tools with care
- Don't repeat yourself
- How to use a bug tracker
- Know how to use command-line tools
- Know your IDE
- Large, interconnected data belongs to a database
- Learn to say, "hello, world"
- Let your project speak for itself
- The linker is not a magical program
- Put everything under version control
- Step back and automate, automate, automate
- Take advantage of code analysis tools
- Test while you sleep (and over weekends)
- The Unix tools are your friends
- Ask, "what would the user do?" (you are not the user)
- Domain-specific languages
- Make interfaces easy to use correctly and hard to use incorrectly
- News of the weird: testers are yur friends
- Prevent errors
- Read the humanities
- Your customers do not mean what they say