Books

Short works

Books : reviews

Robert C. Martin, Dirk Riehle, Frank Buschmann, eds.
Pattern Languages of Program Design 3.
Addison Wesley. 1998

Patterns remain one of the most important new technologies contributing to software engineering, system design, and development. All indications are that patterns will continue to grow in significance as more and more developers rely on reusable design patterns to help them achieve quick, cost-effective delivery of applications. This volume is a collection of the current best practices and trends in the patterns community. The patterns contained in this book provide effective, tested, and versatile software design solutions for developers in all domains, institutions, and organizations.

The third in a series of books documenting patterns for professional software developers, this volume continues the tradition of informational excellence established by the first two volumes. Pattern Languages of Program Design 3 differs from the previous two volumes in that it includes international submissions, gathering the best papers from both PLoP’96 and EuroPLoP’96.

It covers a wide range of pattern-related subjects, and patterns are arranged by topic so software engineers can easily select those of greatest relevance to their needs and application domains. This book goes beyond teaching software engineers that design patterns are powerful tools to impart understanding—it shows where and when patterns are best applied.

The patterns presented are grouped into: • General Purpose Design Patterns • Variations on Design Patterns • Architectural Patterns • Distribution Patterns • Persistence Patterns • User Interface Patterns • Programming Patterns • Domain-Specific Patterns • Process Patterns • Patterns on Patterns

Contents

Bobby Woolf. Null Object. 1998
Peter Sommerlad. Manager. 1998
Dirk Baumer, Dirk Riehle. Product Trader. 1998
Ralph E. Johnson, Bobby Woolf. Type Object. 1998
Eugene Wallingford. Sponsor-Selector. 1998
Erich Gamma. Extension Object. 1998
Robert C. Martin. Acyclic Visitor. 1998
Martin E. Nordberg III. Default and Extrinsic Visitor. 1998
Paul Dyson, Bruce Anderson. State Patterns. 1998
Bran Selic. Recursive Control. 1998
Dirk Riehle. Bureaucracy. 1998
Douglas C. Schmidt. Acceptor and Connector. 1998
Fernando Das Neves, Alejandra Garrido. Bodyguard. 1998
Irfan Pyarali, Tim Harrison, Douglas C. Schmidt. Asynchronous Completion Token. 1998
Antonio Rito Silva, Joao Dias Pereira, Jose Alves Marques. Object Recovery. 1998
Neil B. Harrison. Patterns for Logging Diagnostic Messages. 1998
Dirk Riehle, Wolf Siberski, Dirk Baumer, Daniel Megert, Heinz Zullighoven. Serializer. 1998
Wolfgang Keller, Jens Coldewey. Accessing Relational Databases. 1998
Mark Bradac, Becky Fletcher. A Pattern Language for Developing Form Style Windows. 1998
Douglas C. Schmidt, Tim Harrison. Double-Checked Locking. 1998
Chris Cleeland, Douglas C. Schmidt, Tim Harrison. External Polymorphism. 1998
Lorraine L. Boyd. Business Patterns of Association Objects. 1998
Liping Zhao, Ted Foster. A Pattern Language of Transport Systems (Point and Route). 1998
Peter Molin, Lennart Ohlsson. The Points and Deviations Pattern Language of Fire Alarm Systems. 1998
Brian Foote, Joseph Yoder. The Selfish Class. 1998
Don Roberts, Ralph E. Johnson. Patterns for Evolving Frameworks. 1998
Charles Weir. Patterns for Designing in Teams. 1998
David E. DeLano, Linda Rising. Patterns for System Testing. 1998
Gerard Meszaros, Jim Doble. A Pattern Language for Pattern Writing. 1998

James Newkirk, Robert C. Martin.
Extreme Programming in Practice.
Addison Wesley. 2001

Extreme Programming (XP) is the most exciting revolution to hit the software engineering industry in the last decade. But what exactly is XP? And how do you XP? Simply put, XP is about playing to win. If you are serious about becoming an agile organization, decreasing your time to market, keeping your development team happy, and improving the overall quality of your software, then XP is for you.

Extreme Programming in Practice provides a candid, refreshing, insider’s view of how an XP project works. The artifacts presented in this book are real, the user stories are real, and the anecdotes are real. The book represents all-access, uncensored XP. The authors have chosen example over explanation, so that you can personalize the tenets of XP and put them into practice on your next development project.

The book is supported with sample code and test examples. You can learn how to emphasize planning in your project; deliver multiple iterations of your project (each with increasing business value); gather customer feedback as you build; and test the integrity of your code without halting your development efforts. The authors also provide a handy summary of more than a dozen “lessons learned” in XP implementation.

Extreme Programming in Practice will help you separate the hype from reality and learn how to implement XP in your organization. Witness the thought process of an XP team unfold. Observe the mistakes that were made along the way, as well as their corrections. See the ebb and flow of a real development project. Finish the release. Play to win.

Robert C. Martin.
Clean Code: a handbook of agile software craftsmanship.
Prentice Hall. 2009

Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.

Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer—but only if you work at it.

What kind of work will you be doing? You’ll be reading code—lots of code. And you will be challenged to think about what's right about that code, and what’s wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft.

Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code—of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.

Readers will come away from this book understanding

• How to tell the difference between good and bad code
• How to write good code and how to transform bad code into good code
• How to create good names, good functions, good objects, and good classes
• How to format code for maximum readability
• How to implement complete error handling without obscuring code logic
• How to unit test and practice test-driven development

This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.

Robert C. Martin.
We, Programmers: a chronicle of coders from Ada to AI.
Addison-Wesley. 2025

The Journey of Programming and Its Pioneers: From the Birth of Code to the Rise of AI

In We, Programmers, software legend Robert C. Martin—“Uncle Bob”—dives deep into the world of programming, exploring the lives of the groundbreaking pioneers who built the foundation of modern computing. From Charles Babbage and Ada Lovelace to Alan Turing, Grace Hopper, and Dennis Ritchie, Martin shines a light on the figures whose brilliance and perseverance changed the world.

This memoir-infused narrative provides a rich human history filled with technical insights for developers, examining the coding breakthroughs that shaped computing at the bit and byte level. By connecting these technical achievements with the human stories behind them, Martin gives readers a rare glimpse into the struggles and triumphs of the people who made modern technology possible. Depression, failure, and ridicule—these pioneers faced it all, and their stories intertwine with the evolution of computing itself as the field evolved from its humble beginnings to the cloud-based AIs of today. With the rise of AI, Martin also explores how this technology is transforming the future of programming and the ethical challenges that come with it.

Notable topics include
• Understanding programming’s roots and how they shaped today’s tech landscape
• The human side of coding pioneers—what drove them, and what they overcame
• Key programming breakthroughs, from the early days of assembly to the rise of object-oriented languages
• The pivotal role World War II played in advancing computer science
• Insights and predictions regarding the ethical considerations surrounding AI and the future of programming

For programmers, coders, and anyone fascinated by the intersection of people and machines, this guide to the history, humanity, and technology behind the code that powers our world today is a fascinating and essential read.