I like the goal of the article, I think it does a great job of refactoring a typical-looking method with too many responsibilities into a reasonably decomposed system. I also really like Fowler's technique of strict refactoring augmented with tests.
However, I don't think his articles (like this one) do a very good job of teaching that technique. While reading, I don't know where the code is headed (maybe I need to read the end first?), so I don't have a good frame of reference to understand each intermediate step, or the rationale for choosing it. He presents a refactoring (complete with link), but doesn't explain what leads him to choose that refactoring at this particular stage.
On Blooms Taxonomy, I don't feel like this article even gets me to the Applicative stage, at least for the intermediate refactoring steps.
On a different note, I was surprised that the YoutubeConnection still contained the fields to retrieve (the 'part' parameter). Once he color coded the initial state, I expected to see that list of response fields to be extracted into a parameter. On the other hand, the way the final code is structured, it would be provided by the VideoService, which doesn't seem right either.
Yeah, there is a whole host of things that are left unsaid. He does a lot with TDD, and other principles like SOLID, refactoring methodology, and testing patterns that are normally associated with clean code. This topic could easily be expanded into a whole book for beginners. This is just barely scratching the surface, probably more like just wiping the dust off.
However, I don't think his articles (like this one) do a very good job of teaching that technique. While reading, I don't know where the code is headed (maybe I need to read the end first?), so I don't have a good frame of reference to understand each intermediate step, or the rationale for choosing it. He presents a refactoring (complete with link), but doesn't explain what leads him to choose that refactoring at this particular stage.
On Blooms Taxonomy, I don't feel like this article even gets me to the Applicative stage, at least for the intermediate refactoring steps.
On a different note, I was surprised that the YoutubeConnection still contained the fields to retrieve (the 'part' parameter). Once he color coded the initial state, I expected to see that list of response fields to be extracted into a parameter. On the other hand, the way the final code is structured, it would be provided by the VideoService, which doesn't seem right either.