Chesterton's Fence

As the course gets close to ten years old, I find myself more and more often forgetting the cost-benefit-analyses that led to changes that we made in the past.

In isolation, certain things we do seem cumbersome and unnecessary. For example, why do we only teach where? Why did we stop showing find_by and find? I vaguely recall this was due to years of e.g. 404 exceptions within association helper methods (due to overuse of find) and undefined method each for nil (due to overuse of find_by). But it gets harder to keep that in mind as time goes on, and newcomers to the teaching team have no idea.

Eventually, I switch things back to the old way, and then we go round and round and round. I need a Chesterton's fence for myself, basically.

I propose that we start collecting rationale for our most counterintuitive beginner-friendly practices in one place; let's start here, in this document.

It will serve as an on-boarding guide for new faculty coaches (what they shouldn't show students), as well as "regression tests" for us as we continue to make improvements or revert changes.

  • where, find, find_by

  • old hash syntax

  • no view helper methods (e.g. link_to)

Last updated