1. Foreword
  2. Preface
    1. What Is Tidy First?
    2. Audience
    3. What You Will Learn
    4. Structure of the Book
    5. Why “Empirical” Software Design?
    6. How I Came to Write Tidy First?
    7. O’Reilly Online Learning
    8. How to Contact Us
    9. Acknowledgments
  3. Introduction
  4. I. Tidyings
  5. 1. Guard Clauses
  6. 2. Dead Code
  7. 3. Normalize Symmetries
  8. 4. New Interface, Old Implementation
  9. 5. Reading Order
  10. 6. Cohesion Order
  11. 7. Move Declaration and Initialization Together
  12. 8. Explaining Variables
  13. 9. Explaining Constants
  14. 10. Explicit Parameters
  15. 11. Chunk Statements
  16. 12. Extract Helper
  17. 13. One Pile
  18. 14. Explaining Comments
  19. 15. Delete Redundant Comments
  20. II. Managing
  21. 16. Separate Tidying
  22. 17. Chaining
    1. Conclusion
  23. 18. Batch Sizes
  24. 19. Rhythm
  25. 20. Getting Untangled
  26. 21. First, After, Later, Never
    1. Never
    2. Later
    3. After
    4. First
    5. Summary
  27. III. Theory
  28. 22. Beneficially Relating Elements
    1. Elements
    2. Relating
    3. Beneficially
    4. Beneficially Relating Elements
  29. 23. Structure and Behavior
  30. 24. Economics: Time Value and Optionality
  31. 25. A Dollar Today > A Dollar Tomorrow
  32. 26. Options
  33. 27. Options Versus Cash Flows
  34. 28. Reversible Structure Changes
  35. 29. Coupling
  36. 30. Constantine’s Equivalence
  37. 31. Coupling Versus Decoupling
  38. 32. Cohesion
  39. 33. Conclusion
  40. Appendix. Annotated Reading List and References
  41. Index
  42. About the Author