Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Colophon Dedication Preface
What This Book Is About Who Should Read This Book Before You Read This Book How to read this book Code Examples Errata About the Authors
Introduction 1. Rediscovering Simplicity
1.1. Simplifying Code
1.1.1. Incomprehensibly Concise 1.1.2. Speculatively General 1.1.3. Concretely Abstract 1.1.4. Shameless Green
1.2. Judging Code
1.2.1. Evaluating Code Based on Opinion 1.2.2. Evaluating Code Based on Facts 1.2.3. Comparing Solutions
1.3. Summary
2. Test Driving Shameless Green
2.1. Understanding Testing 2.2. Writing the First Test 2.3. Removing Duplication 2.4. Understanding Transformations 2.5. Tolerating Duplication 2.6. Hewing to the Plan 2.7. Exposing Responsibilities 2.8. Choosing Names 2.9. Revealing Intentions 2.10. Writing Cost-Effective Tests 2.11. Avoiding the Echo-Chamber 2.12. Considering Options 2.13. Summary
3. Unearthing Concepts
3.1. Listening to Change 3.2. Starting With the Open/Closed Principle 3.3. Recognizing Code Smells 3.4. Identifying the Best Point of Attack 3.5. Refactoring Systematically 3.6. Following the Flocking Rules 3.7. Converging on Abstractions
3.7.1. Focusing on Difference 3.7.2. Simplifying Hard Problems 3.7.3. Naming Concepts 3.7.4. Making Methodical Transformations 3.7.5. Refactoring Gradually
3.8. Summary
4. Practicing Horizontal Refactoring
4.1. Replacing Difference With Sameness 4.2. Equivocating About Names 4.3. Deriving Names From Responsibilities 4.4. Choosing Meaningful Defaults 4.5. Seeking Stable Landing Points 4.6. Obeying the Liskov Substitution Principle 4.7. Taking Bigger Steps 4.8. Discovering Deeper Abstractions 4.9. Depending on Abstractions 4.10. Summary
5. Separating Responsibilities
5.1. Selecting the Target Code Smell
5.1.1. Identifying Patterns in Code 5.1.2. Spotting Common Qualities 5.1.3. Enumerating Flocked Method Commonalities 5.1.4. Insisting Upon Messages
5.2. Extracting Classes
5.2.1. Modeling Abstractions 5.2.2. Naming Classes 5.2.3. Extracting BottleNumber 5.2.4. Removing Arguments 5.2.5. Trusting the Process
5.3. Appreciating Immutability 5.4. Assuming Fast Enough 5.5. Creating BottleNumbers 5.6. Recognizing Liskov Violations 5.7. Summary
6. Replacing Conditionals with Objects Appendix A: Prerequisites
A.1. Ruby A.2. Minitest
Appendix B: Initial Exercise
B.1. Getting the exercise B.2. Doing the exercise B.3. Test Suite
Acknowledgements
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion