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