Software craftsmanship principles from The Pragmatic Programmer...
A comprehensive reference for pragmatic software development principles based on "The Pragmatic Programmer" by David Thomas and Andrew Hunt. This skill provides timeless advice for becoming a better developer.
This skill automatically activates when you:
"Care about your craft." "Think about your work."
Pragmatic programmers:
| Principle | Summary |
|---|---|
| DRY - Don't Repeat Yourself | Every piece of knowledge has a single representation |
| Orthogonality | Keep things independent and decoupled |
| Reversibility | Make decisions reversible; avoid lock-in |
| Tracer Bullets | Get feedback fast with end-to-end skeleton |
| Prototypes | Learn before committing; throw away prototypes |
| Domain Languages | Program close to the problem domain |
| Estimating | Learn to give accurate estimates |
| Practice | Summary |
|---|---|
| The Power of Plain Text | Keep knowledge in accessible format |
| Shell Games | Master the command line |
| Debugging | Fix the problem, not the blame |
| Text Manipulation | Learn text processing tools |
| Code Generators | Write code that writes code |
| Design by Contract | Define rights and responsibilities |
| Assertive Programming | If it can't happen, use assertions |
| Decoupling | Minimize dependencies between modules |
| Refactoring | Improve code continuously |
| Testing | Test early, test often, test automatically |
| Automation | Don't use manual procedures |
Key tips from the book:
Treat your knowledge like a financial portfolio:
Examples use generic pseudocode. Adapt to your language:
class, function, ->, type hintsclass, arrow functions, .class, def, ., type hintsBased on concepts from "The Pragmatic Programmer: Your Journey to Mastery" by David Thomas and Andrew Hunt.