
Emergent Design
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
Reflecting a deep understanding of the natural flow of system development, Emergent Design helps developers work with the flow, instead of against it. Bain introduces the principles and practices of emergent design one step at a time, showing how to promote the natural evolution of software systems over time, making systems work better and provide greater value. To illuminate his approach, Bain presents code examples wherever necessary and concludes with a complete project case study.
This book provides developers, project leads, and testers powerful new ways to collaborate, achieve immediate goals, and build systems that improve in quality with each iteration.
Coverage includes
How to design software in a more natural, evolutionary, and professional way
How to use the "open-closed" principle to mitigate risks and eliminate waste
How and when to test your design throughout the development process
How to translate design principles into practices that actually lead to better code
How to determine how much design is enough
How refactoring can help you reduce over-design and manage change more effectively
The book's companion Web site, www.netobjectives.com/resources, provides updates, links to related materials, and support for discussions of the book's content.
All prices
More details
Other editions
Additional editions


Person
Content
Preface xxiii
Acknowledgments xxix
About the Author xxxi
Chapter 1: Software as a Profession 1
How Long Have Human Beings Been Making Software? 1
What Sort of Activity Is Software Development? 2
What Is Missing? 6
Who Is Responsible? 8
Uniqueness 9
Chapter 2: Out of the Closet, Off to the Moon 11
Patterns and Professionalism in Software Development 11
Andrea's Closet 12
Off to the Moon 18
The Value of Patterns 26
Summary 27
Chapter 3: The Nature of Software Development 29
We Fail Too Much 30
Definitions of Success 31
The Standish Group 32
Doing the Wrong Things 34
Doing the Things Wrong 35
Time Goes By, Things Improve 38
One Reason: The Civil Engineering Analogy 38
Giving Up Hope 41
Ignoring Your Mother 42
Bridges Are Hard, Software Is Soft 43
We Swim in an Ocean of Change 43
Accept Change 44
Embrace Change 45
Capitalize on Change 46
A Better Analogy: Evolving Systems 49
Summary 52
Chapter 4: Evolution in Code: Stage 1 55
Procedural Logic Replaced with Object Structure 56
The Origins of Object Orientations and Patterns 56
An Example: Simple Conditionals and the Proxy Pattern 58
The Next Step: Either This or That 62
Why Bother? 65
One Among Many66
Summary 67
Chapter 5: Using and Discovering Patterns 69
Design from Context: More Carpentry from Scott 70
Patterns Lead to Another Cognitive Perspective 79
Patterns Help Give Us a Language for Discussing Design 79
Patterns in This Book 80
Summary 81
Chapter 6: Building a Pyramid 83
Elements of the Profession 83
A Visual Representation 85
Summary 86
Chapter 7: Paying Attention to Qualities and Pathologies 89
Encapsulation 91
Cohesion 91
Coupling 99
Redundancy 106
Testability 112
Readability 114
Pathologies 114
Summary 119
Chapter 8: Paying Attention to Principles and Wisdom 121
Separating Use from Creation 122
The Open-Closed Principle 129
The Dependency Inversion Principle 133
Advice from the Gang of Four 135
GoF: Consider What Should Be Variable in Your Design and Encapsulate the Concept That Varies 143
Summary 146
Chapter 9: Paying Attention to Practices 147
Consistent Coding Style 148
Programming by Intention 153
Encapsulating the Constructor 155
Commonality-Variability Analysis 161
Practices and Freedom 166
Summary 167
Chapter 10: Paying Attention to Disciplines: Unit Testing 169
Economies of Testing 169
JUnit Framework 175
Mock Objects 204
Summary 212
Chapter 11: Paying Attention to Disciplines: Refactoring 213
Refactoring Bad Code 215
Refactoring Good Code 216
Structural Changes Versus Functional Changes 218
Refactoring Helps You Choose Your Battles 219
Patterns Can Be Targets of Refactoring 220
Avoiding Refactoring: Prefactoring 220
The Mechanics of Refactoring 221
Refactoring Legacy Code 231
Summary 233
Chapter 12: Test-Driven Development 235
What Makes Development Test-Driven? 235
Testing and Quality 238
Test-Driven Development and Patterns 241
Mock Objects 244
Mock Turtles 248
Testing the Decorator Pattern 248
Summary 253
Chapter 13: Patterns and Forces 255
Making Decisions in an Evolving Design 255
Christopher Alexander and Forces 256
More Choices, More Forces 266
Summary 271
Chapter 14: Emergent Design: A Case Study 273
The Problem Domain: The MWave Corporation 273
The Teams 275
The Simplest Thing That Could Possibly Work 277
A New Requirement: Complex Machines 281
Oh, By the Way 283
More Good News 285
Summary: What a Long, Strange Trip It Has Been 287
Chapter 15: A Conclusion: 2020 289
Appendix A: Evolutionary Paths 291
Appendix B: Overview of Patterns Used in the Examples 301
Appendix C: The Principle of the Useful Illusion 385
Bibliography 393
Index 395
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.
File format: ePUB
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use a reading software that can process the file format ePUB: e.g., Adobe Digital Editions or FBReader – both free (see eBook Help).
- Tablet/Smartphone (Android; iOS): Before downloading, install the free app Adobe Digital Editions (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePUB works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.