How To Read This Book, indeed
At first I really liked all the inter-linking, but then I became confused as to how I should read the book.
I think it's more of a reference, or maybe a choose-your-own adventure that doesn't really end. Calling it a book implies it can be read, but as described in the text, an expected way I might read may be:
- Introduction
- Case Statement, click Divergent Change
- Read Divergent change till Solutions
- Click Extract Class, read, then click on Large Class (or Divergent Change?)
- Skip Divergent Change link, we've done that, read to solutions, click 'Move Method'
- Click 'Feature Envy', that looks interesting
- Oh yeah, 'Tell, Don't Ask', click, what was I doing again?
- Great chapter, and hey, there's Case Statement again! Do I want to go back to that? Sure
- Ok, Solutions, 'Replace Type Code with Subclasses',
- STI? Click
- 'Composition over inheritance'! I knew a guy who preferred inheritance over composition. He was a super guy (@tenderlove)
- 'Extract Decorators', et cetera
I've tried to demonstrate how confusing the process of reading the book can be, with all the context switches. Am I doing this wrong? Maybe there should be backlinks in the margins like the letters on the spine of a dictionary?
There seems to be some internal logic linking all the sections together that isn't quite surfaced.
Do you think you'll have a summary table/page at any point that references all the sections?
Thoughts?
@bf4 this is great feedback. I can see how you might feel a little lost when jumping around between chapters.
I look at the links more as a reference (quick jump) to a topic that I can read about if I recognize the name of a Smell or Refactoring -- I love the idea of "back links" that jump you back to the place you came from... I'm not sure this is possible with a PDF (epub, mobi) as the anchor links go in one direction and I don't think we have the ability (that i'm aware of) to use Javascript (or other scripting languages) to go "back" to the previous position in the book.
Do you think you'll have a summary table/page at any point that references all the sections?
Are you referring to something other than a TOC? Can you elaborate a little more?
maybe something like http://www.industriallogic.com/wp-content/uploads/2005/09/smellstorefactorings.pdf ?
or something like this ? http://ghendry.net/refactor.html
This has been a long time coming, but now the primary interface for Ruby Science is on the web at https://thoughtbot.com/ruby-science/introduction.html, I think this addresses the issue to the best of our ability as it is easier to follow internal links, view the table of contents all the time on the left hand side, and the browser back button can be used to follow a link and then get back to where you were before following it.
Thanks!