<p>"To participate in the next generation of professional product delivery you have to be pragmatic but disciplined. Otherwise, you are fated to be ungrounded dreamers whose products endanger people and whose ideas never become successfully integrated into the world. Andy and Dave described a pragmatic but disciplined approach which is a key step towards professionalism."<br />–<i>Ken Schwaber, co-creator of Scrum and founder of Scrum.org, agile manifesto signatory, and author of </i>Software in 30 Days.</p> <p>"Picking adjectives is hard work. In <i>The Pragmatic Programmer</i>, Dave and Andy set the tone for their work–thoughtful, expert, aspirational, and full of care for themselves and those they touch through their programs. From its publication, this was the book to read if you wanted to work to improve."<br />–<i>Kent Beck, Gusto, author of</i> Extreme Programming Explained: Embrace Change, Test-Driven Development: By Example, <i>and</i> The Smalltalk Best Practice Patterns</p> <br /> "Some say that with <i>The Pragmatic Programmer,</i> Andy and Dave captured lightning in a bottle; that it’s unlikely anyone will soon write a book that can move an entire industry as it did. Sometimes, though, lightning does strike twice, and this book is proof. The updated content ensures that it will stay at the top of “best books in software development” lists for another 20 years, right where it belongs." <br /> <i><i>—</i>VM (Vicky) Brasseur, Director of Open Source Strategy, Juniper Networks</i> <br /> <br />"If you want your software to be easy to modernize and maintain, keep a copy of <i>The Pragmatic Programmer</i> close. It’s filled with practical advice, both technical and professional, that will serve you and your projects well for years to come." <br /> <i><i>—</i>Andrea Goulet, CEO, Corgibytes; Founder, LegacyCode.Rocks</i> <br /> <br />" <i>The Pragmatic Programmer</i> is the one book I can point to that completely dislodged the existing trajectory of my career in software and pointed me in the direction of success. Reading it opened my mind to the possibilities of being a craftsman, not just a cog in a big machine. One of the most significant books in my life." <br /> <i><i>—</i>Obie Fernandez, Author,</i> The Rails Way <br /> <br />"First-time readers can look forward to an enthralling induction into the modern world of software practice, a world that the first edition played a major role in shaping. Readers of the first edition will rediscover here the insights and practical wisdom that made the book so significant in the first place, expertly curated and updated, along with much that’s new." <br /> <i><i>—</i>David A. Black, Author, </i>The Well-Grounded Rubyist <br /> <br />"I have an old paper copy of the original <i>Pragmatic Programmer</i> on my bookshelf. It has been read and re-read and a long time ago it changed everything about how I approached my job as a programmer. In the new edition everything and nothing has changed: I now read it on my iPad and the code examples use modern programming languages—but the underlying concepts, ideas, and attitudes are timeless and universally applicable. Twenty years later, the book is as relevant as ever. It makes me happy to know that current and future developers will have the same opportunity to learn from Andy and Dave’s profound insights as I did back in the day." <br /> <i><i>—</i>Sandy Mamoli, Agile coach; Author of</i> How Self-Selection Lets People Excel <br />
The Pragmatic Programmer is one of those rare tech books you'll read, re-read, and read again over the years. Whether you're new to the field or an experienced practitioner, you'll come away with fresh insights each and every time.
Dave Thomas and Andy Hunt wrote the first edition of this influential book in 1999 to help their clients create better software and rediscover the joy of coding. These lessons have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology, and the Pragmatic philosophy has spawned hundreds of books, screencasts, and audio books, as well as thousands of careers and success stories.
Now, twenty years later, this new edition re-examines what it means to be a modern programmer. Topics range from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how to:
- Fight software rot
- Learn continuously
- Avoid the trap of duplicating knowledge
- Write flexible, dynamic, and adaptable code
- Harness the power of basic tools
- Avoid programming by coincidence
- Learn real requirements
- Solve the underlying problems of concurrent code
- Guard against security vulnerabilities
- Build teams of Pragmatic Programmers
- Take responsibility for your work and career
- Test ruthlessly and effectively, including property-based testing
- Implement the Pragmatic Starter Kit
- Delight your users
Written as a series of self-contained sections and filled with classic and fresh anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best approaches and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.
"One of the most significant books in my life."
--Obie Fernandez, Author, The Rails Way
"Twenty years ago, the first edition of The Pragmatic Programmer completely changed the trajectory of my career. This new edition could do the same for yours."
--Mike Cohn, Author of Succeeding with Agile, Agile Estimating and Planning, and User Stories Applied
". . . filled with practical advice, both technical and professional, that will serve you and your projects well for years to come."
--Andrea Goulet, CEO, Corgibytes, Founder, LegacyCode.Rocks
". . . lightning does strike twice, and this book is proof."
--VM (Vicky) Brasseur, Director of Open Source Strategy, Juniper Networks
Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Preface to the Second Edition xv
From the Preface to the First Edition xix
Chapter 1: A Pragmatic Philosophy 1
Topic 1. It's Your Life 2
Topic 2. The Cat Ate My Source Code 3
Topic 3. Software Entropy 6
Topic 4. Stone Soup and Boiled Frogs 8
Topic 5. Good-Enough Software 11
Topic 6. Your Knowledge Portfolio 14
Topic 7. Communicate! 20
Chapter 2: A Pragmatic Approach 27
Topic 8. The Essence of Good Design 28
Topic 9. DRY–The Evils of Duplication 30
Topic 10. Orthogonality 39
Topic 11. Reversibility 47
Topic 12. Tracer Bullets 51
Topic 13. Prototypes and Post-it Notes 56
Topic 14. Domain Languages 60
Topic 15. Estimating 66
Chapter 3: The Basic Tools 73
Topic 16. The Power of Plain Text 74
Topic 17. Shell Games 78
Topic 18. Power Editing 81
Topic 19. Version Control 84
Topic 20. Debugging 88
Topic 21. Text Manipulation 97
Topic 22. Engineering Daybooks 100
Chapter 4: Pragmatic Paranoia 103
Topic 23. Design by Contract 104
Topic 24. Dead Programs Tell No Lies 112
Topic 25. Assertive Programming 115
Topic 26. How to Balance Resources 118
Topic 27. Don’t Outrun Your Headlights 125
Chapter 5: Bend, or Break 129
Topic 28. Decoupling 130
Topic 29. Juggling the Real World 137
Topic 30. Transforming Programming 147
Topic 31. Inheritance Tax 159
Topic 32. Configuration 167
Chapter 6: Concurrency 171
Topic 33. Breaking Temporal Coupling 172
Topic 34. Shared State Is Incorrect State 176
Topic 35. Actors and Processes 183
Topic 36. Blackboards 189
Chapter 7: While You Are Coding 195
Topic 37. Listen to Your Lizard Brain 196
Topic 38. Programming by Coincidence 201
Topic 39. Algorithm Speed 207
Topic 40. Refactoring 213
Topic 41. Test to Code 218
Topic 42. Property-Based Testing 228
Topic 43. Stay Safe Out There 235
Topic 44. Naming Things 242
Chapter 8: Before the Project 249
Topic 45. The Requirements Pit 250
Topic 46. Solving Impossible Puzzles 258
Topic 47. Working Together 262
Topic 48. The Essence of Agility 265
Chapter 9: Pragmatic Projects 269
Topic 49. Pragmatic Teams 270
Topic 50. Coconuts Don’t Cut It 276
Topic 51. Pragmatic Starter Kit 280
Topic 52. Delight Your Users 287
Topic 53. Pride and Prejudice 288
Postface 291
Bibliography 295
Possible Answers to the Exercises 299
Index 313
The bestselling software development guide – more than 200,000 sold – now thoroughly updated by its world-class author team
- Today’s best approaches to transforming requirements into working, maintainable code that delights users
- Thoroughly revised with 10 new sections, extensive new coverage, new examples throughout – and future-proofed with greater technology-independence
- Brings together pragmatic advice on everything from personal career fulfillment to more effective architecture
“One of the most significant books in my life.” —Obie Fernandez, Author, The Rails Way
“Twenty years ago, the first edition of The Pragmatic Programmer completely changed the trajectory of my career. This new edition could do the same for yours.” —Mike Cohn, Author of Succeeding with Agile, Agile Estimating and Planning, and User Stories Applied
“. . . filled with practical advice, both technical and professional, that will serve you and your projects well for years to come.” —Andrea Goulet, CEO, Corgibytes, Founder, LegacyCode.Rocks
“. . . lightning does strike twice, and this book is proof.” —VM (Vicky) Brasseur, Director of Open Source Strategy, Juniper Networks
- Today’s best approaches to transforming requirements into working, maintainable code that delights users
- Thoroughly revised with 10 new sections, extensive new coverage, new examples throughout – and future-proofed with greater technology-independence
- Brings together pragmatic advice on everything from personal career fulfillment to more effective architecture
Produktdetaljer
Biographical note
Dave Thomas and Andy Hunt are internationally recognized as leading voices in the software development community. They consult and speak around the world. Together, they founded the Pragmatic Bookshelf, publishing award-winning, leading-edge books for software developers. They were two of the authors of the Agile Manifesto.Dave currently teaches college, turns wood, and plays with new technology and paradigms. Andy writes science fiction, is an active musician, and loves to tinker with technology. But, most of all, they’re both driven to keep learning.