The Pragmatic Programmer: From Journeyman to Master

The Pragmatic Programmer: From Journeyman to Master

Andrew Hunt

Language: English

Pages: 352

ISBN: 020161622X

Format: PDF / Kindle (mobi) / ePub


-- Ward Cunningham Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and youll learn how to *Fight software rot; *Avoid the trap of duplicating knowledge; *Write flexible, dynamic, and adaptable code; *Avoid programming by coincidence; *Bullet-proof your code with contracts, assertions, and exceptions; *Capture real requirements; *Test ruthlessly and effectively; *Delight your users; *Build teams of pragmatic programmers; and *Make your developments more precise with automation. Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether youre a new coder, an experienced programm

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bring these ideas and processes together. The first two sections, The Evils of Duplication and Orthogonality, are closely related. The first warns you not to duplicate knowledge throughout your systems, the second not to split any one piece of knowledge across multiple system components. As the pace of change increases, it becomes harder and harder to keep our applications relevant. In Reversibility, we'll look at some techniques that help insulate your projects from their changing

difficult. We recommend this book if you are involved in large-scale developments, even if C++ isn't your implementation language. Otherwise, you may find yourself on the road to a brittle, inflexible future. Or no future at all. Related sections include: Orthogonality, page 34 Reversibility, page 44 Design by Contract, page 109 How to Balance Resources, page 129 It's Just a View, page 157 Pragmatic Teams, page 224 Ruthless Testing, page 237 Challenges We've discussed

software once it has been deployed—with real-world data flowing though its veins. Unlike a circuit board or chip, we don't have test pins in software, but we can provide various views into the internal state of a module, without using the debugger (which may be inconvenient or impossible in a production application). Log files containing trace messages are one such mechanism. Log messages should be in a regular, consistent format; you may want to parse them automatically to deduce processing

revelation when you suddenly realize that some basic premise was wrong. Not only that, but you'll see clearly how you can put it right. You'll feel comfortable abandoning the prototype and launching into the project proper. Your instincts were right, and you've just saved yourself and your team a considerable amount of wasted effort. When you make the decision to prototype as a way of investigating your unease, be sure to remember why you're doing it. The last thing you want is to find

Guide to the Win32 API. Microsoft Press, Redmond, WA, fifth edition, 1998. [Sch95] Bruce Schneier. Applied Cryptography: Protocols, Algorithms, and Source Code in C. John Wiley & Sons, New York, NY, second edition, 1995. [Sed83] Robert Sedgewick. Algorithms. Addison-Wesley, Reading, MA, 1983. [Sed92] Robert Sedgewick. Algorithms in C++. Addison-Wesley, Reading, MA, 1992. [SF96] Robert Sedgewick and Phillipe Flajolet. An Introduction to the Analysis of Algorithms.

Download sample

Download