Flylib.com
Prefactoring: Extreme Abstraction, Extreme Separation, Extreme Readability
Prefactoring: Extreme Abstraction, Extreme Separation, Extreme Readability
ISBN: 0596008740
EAN: 2147483647
Year: 2005
Pages: 175
Authors:
Ken Pugh
BUY ON AMAZON
Prefactoring
Table of Contents
Copyright
Dedication
Preface
Everybody Is Different
The Design Example
Audience
Contents of This Book
The Cover
Conventions Used in This Book
Using Code Examples
Comments and Questions
Safari Enabled
Acknowledgments
Chapter One. Introduction to Prefactoring
1.1. What Is Prefactoring?
1.2. The Three Extremes
1.3. The Guidelines Explored
1.4. The Context for This Book
Chapter Two. The System in So Many Words
2.1. Meet Sam
2.2. Reinvention Avoidance
2.3. What s in a Name?
2.4. Splitters Versus Lumpers
2.5. Clumping
2.6. Abstracting
2.7. Prototypes Are Worth a Thousand Words
Chapter Three. General Development Issues
3.1. Start with the Big Picture
3.2. Interface Contracts
3.3. Validation
3.4. Code Communicates
3.5. Consistency Is Simplicity
3.6. A Prefactoring Attitude
3.7. Don t Repeat Yourself
3.8. Documentation of Assumptions and Decisions
3.9. Dealing with Deviations and Errors
3.10. Speeding
3.11. The Spreadsheet Conundrum
3.12. Tools Are Tools-Use Them Wisely
Chapter Four. Getting the Big Picture
4.1. The Rest of the Story
4.2. Process
4.3. The Initial Design
4.4. Global Planning, Local Designing
4.5. Testing Functionality
4.6. Testing Quality
4.7. Security
Chapter Five. Got Class?
5.1. Categories and Classes
5.2. Declaration Versus Execution
5.3. Appropriate Inheritance
5.4. Communicate with Text
5.5. More Than One
Chapter Six. A Few Words on Classes
6.1. Honor the Class Maxims
6.2. Three Laws of Objects
6.3. Need Determines Class
6.4. Polymorphism
6.5. One Little Job
6.6. Policy Versus Implementation
6.7. Extreme Naming
6.8. Overloading Functions
Chapter Seven. Getting There
7.1. Where We Are
7.2. Separating Concerns
7.3. Migrating to the New System
Chapter Eight. The First Release
8.1. The Proof Is in the Pudding
8.2. Retrospective Time
8.3. The System as It Stands Now
8.4. Operations Interface
8.5. Abstract Data Types
8.6. Configuration
8.7. Testing
8.8. Dealing with Deviations and Errors
8.9. A Little Prefactoring
8.10. The First Released Iteration
8.11. Sometimes Practice Does Not Match Theory
8.12. The Rest of the Classes
Chapter Nine. Associations and States
9.1. Sam s New Requirement
9.2. Who s in Charge?
9.3. The State of an Object
Chapter Ten. Interfaces and Adaptation
10.1. The Catalog Search Use Case
10.2. Designing the Interface
10.3. Interface Development
10.4. Interface Testing
10.5. Interface Splitting
10.6. Something Working
Chapter Eleven. Zip Codes and Interfaces
11.1. Adaptation
11.2. Pass the Buck
11.3. Unwritten Code
11.4. Indirection
11.5. Logging
11.6. Paradigm Mismatch
Chapter Twelve. More Reports
12.1. Fancy Reports
12.2. Change Happens
12.3. Exports
Chapter Thirteen. Invoices, Credit Cards, and Discounts
13.1. The Next Step
13.2. The Language of the Client
13.3. Security and Privacy
Chapter Fourteen. Sam Is Expanding
14.1. The Second Store
14.2. A New Development
14.3. The Third Store
14.4. Goodbye Sam
14.5. Generality
Chapter Fifteen. A Printserver Example
15.1. Introduction
15.2. The System
15.3. The Message
15.4. Testing
15.5. Logging
15.6. Still More Separation
15.7. Epilogue
Chapter Sixteen. Antispam Example
16.1. The Context
16.2. Spam Checking
16.3. The ReceivingMailServer
16.4. ReceivedMailExaminer
16.5. The Full Flow
Chapter Seventeen. Epilogue
Appendix A. Guidelines and Principles
A.1. Guidelines
A.2. Guidelines in Alphabetical Order
A.3. Software Design Principles
Appendix B. Source Code
B.1. com.samscdrental.configuration Package
B.2. com.samscdrental.controller Package
B.3. com.samscdrental.dataaccess Package
B.4. com.samscdrental.display.adt Package
B.5. com.samscdrental.display Package
B.6. com.samscdrental.failures Package
B.7. com.samscdrental.helper Package
B.8. com.samscdrental.importexport Package
B.9. com.samscdrental.migration Package
B.10. com.samscdrental.model.adt Package
B.11. com.samscdrental.model.dto Package
B.12. com.samscdrental.model Package
B.13. com.samscdrental.reports Package
B.14. com.samscdrental.tests Package
Colophon
About the Author
Colophon
Index
index_A
index_B
index_C
index_D
index_E
index_F
index_G
index_H
index_I
index_J
index_L
index_M
index_N
index_O
index_P
index_Q
index_R
index_S
index_T
index_U
index_V
index_W
index_Z
Prefactoring: Extreme Abstraction, Extreme Separation, Extreme Readability
ISBN: 0596008740
EAN: 2147483647
Year: 2005
Pages: 175
Authors:
Ken Pugh
BUY ON AMAZON
CompTIA Project+ Study Guide: Exam PK0-003
Assessment Test
IT Project Management Overview
Project Initiation
Cost Planning
Project Control
MySQL Cookbook
Logging Interactive mysql Sessions
Converting Two-Digit Year Values to Four-Digit Form
Using a Join to Fill in Holes in a List
Calculating Descriptive Statistics
Counting Missing Values
The Lean Six Sigma Pocket Toolbook. A Quick Reference Guide to Nearly 100 Tools for Improving Process Quality, Speed, and Complexity
Using DMAIC to Improve Speed, Quality, and Cost
Working with Ideas
Value Stream Mapping and Process Flow Tools
Voice of the Customer (VOC)
Reducing Lead Time and Non-Value-Add Cost
Java Concurrency in Practice
A (Very) Brief History of Concurrency
Sharing Objects
Applying Thread Pools
Avoiding Performance Testing Pitfalls
AQS in Java.util.concurrent Synchronizer Classes
.NET-A Complete Development Cycle
Visual Studio.NET: Platform of Choice
Implementation of Regions, Pens, and Brushes
Conclusion
Conclusion: Dont Reinvent the Wheel
Integrating Externally Supplied Software
Python Standard Library (Nutshell Handbooks) with
The struct Module
The copy_reg Module
The termios Module
The dircache Module
The cmpcache Module
flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net
Privacy policy
This website uses cookies. Click
here
to find out more.
Accept cookies