Guidance on how to break down problems and structure solutions.
At what point does decoupling software components pass the point of diminishing returns?
Decoupling methods, by reducing assumptions and minimizing interfaces.
What's a good way to open a conversion method to extension? Let's find out!
Eliminating astonishment with a special Ruby idiom for object creation.
A naming guideline to avoid confusion and latent bugs.
Some domain concepts are easier to spot than others. Today we deal with one of most slippery concepts of all.
Having model attributes at different levels of abstraction can quickly complicate an application. In this episode, we'll level the playing field.
In this sequel to #430, we apply a powerful pattern for encapsulating problem values.
In which we examine some of the pitfalls of handling badly-formed user input for Whole Value fields.