What is included with this book?
Scott L. Bain is a thirty-year veteran in computer technology, with a background in development, engineering, and design. He has also designed, delivered, and managed training programs for certification and end-user skills, both in traditional classrooms and via distance learning. For the past eight years, Scott has been working for Net Objectives in Puget Sound, teaching courses and consulting on design patterns, refactoring, unit testing, and test-driven development. Along with Net Objectives CEO Alan Shalloway, he has contributed significantly to the integration of design patterns in Agile environments. Scott is a frequent speaker at developer conferences such as JavaOne and SDWest.
Series Foreword | p. xvii |
Preface | p. xxiii |
Acknowledgments | p. xxix |
About the Author | p. xxxi |
Software as a Profession | p. 1 |
How Long Have Human Beings Been Making Software? | p. 1 |
What Sort of Activity Is Software Development? | p. 2 |
What Is Missing? | p. 6 |
Who Is Responsible? | p. 8 |
Uniqueness | p. 9 |
Out of the Closet, Off to the Moon | p. 11 |
Patterns and Professionalism in Software Development | p. 11 |
Andrea s Closet | p. 12 |
Off to the Moon | p. 18 |
The Value of Patterns | p. 26 |
Summary | p. 27 |
The Nature of Software Development | p. 29 |
We Fail Too Much | p. 30 |
Definitions of Success | p. 31 |
The Standish Group | p. 32 |
Doing the Wrong Things | p. 34 |
Doing the Things Wrong | p. 35 |
Time Goes By, Things Improve | p. 38 |
One Reason: The Civil Engineering Analogy | p. 38 |
Giving Up Hope | p. 41 |
Ignoring Your Mother | p. 42 |
Bridges Are Hard, Software Is Soft | p. 43 |
We Swim in an Ocean of Change | p. 43 |
Accept Change | p. 44 |
Embrace Change | p. 45 |
Capitalize on Change | p. 46 |
A Better Analogy: Evolving Systems | p. 49 |
Summary | p. 52 |
Evolution in Code: Stage 1 | p. 55 |
Procedural Logic Replaced with Object Structure | p. 56 |
The Origins of Object Orientations and Patterns | p. 56 |
An Example: Simple Conditionals and the Proxy Pattern | p. 58 |
The Next Step: Either This or That | p. 62 |
Why Bother? | p. 65 |
One Among Many66 | |
Summary | p. 67 |
Using and Discovering Patterns | p. 69 |
Design from Context: More Carpentry from Scott | p. 70 |
Patterns Lead to Another Cognitive Perspective | p. 79 |
Patterns Help Give Us a Language for Discussing Design | p. 79 |
Patterns in This Book | p. 80 |
Summary | p. 81 |
Building a Pyramid | p. 83 |
Elements of the Profession | p. 83 |
A Visual Representation | p. 85 |
Summary | p. 86 |
Paying Attention to Qualities and Pathologies | p. 89 |
Encapsulation | p. 91 |
Cohesion | p. 91 |
Coupling | p. 99 |
Redundancy | p. 106 |
Testability | p. 112 |
Readability | p. 114 |
Pathologies | p. 114 |
Summary | p. 119 |
Paying Attention to Principles and Wisdom | p. 121 |
Separating Use from Creation | p. 122 |
The Open-Closed Principle | p. 129 |
The De | |
Table of Contents provided by Publisher. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.