2nd Feature

Build an App, Episode 3

By Corey Haines

61 minMay 2013

Purchase this episode, send your purchase code to Corey and get an invite to the exclusive "Discussing BAWCH" mailing list.


Now that we've finished our first feature, where do we go from here? In episode 3 of "Build an App with Corey Haines" we'll not only talk about how our Feature Support Diagram can help us choose the next feature, but we'll dive right in and start it. This episode is all about the code, so we won't be satisfied with just starting it, we'll take it to the finish!

While building this new feature, "Updating the status of a coderetreat", we'll use a strict outside-in approach to our coding. Starting at the view layer and moving inward with a hearty dose of programming by wishful thinking, we'll see more and more of our design coalesce around our domain concepts. Our last episode introduced the concept of a presenter, distancing our business domain away from the Rails framework. In this episode, we'll benefit again from this philosophy, except on the updating side, creating a simple coordinator object.

In Episode 1 and Episode 2, we noticed some awkwardness around some names we chose. At the time, we postponed fixing them until we had more knowledge about our domain. In this episode, we'll see awkward names again, but this time we won't stand for it! After implementing the feature, we'll take time to clean up our design by extracting a new resource. We'll discuss the strategy of making structural changes incrementally, keeping our system working at each step. This is a coding series, so we won't just discuss it, we'll put hands to keyboard and make the changes!

And, of course, there is plenty of ongoing discussion about outside-in development, programming by wishful thinking and how our tests can influence our design. Check it out!

After you purchase this episode, send your purchase code to Corey and get an invite to the exclusive "Discussing BAWCH" mailing list.

Missed an episode? Get them here. - Episode 1 - where do we start? - Episode 2 - our first feature