How can I say strongly enough that this subtle point
strikes directly at my gut feeling about clean design?
If you are trying to overload a design or make it magic
then it is trying to do too much and needs to be
rethought!
It may take some attention and focus to see what Randal
is talking about here, but the point came up several times
in the Re (tilly) 1: Supersplit thread. Basically making things magic
makes them more complex to implement and harder to learn.
Remember that the most complex bugs to track down are at
your interfaces and think twice before making those
interfaces needlessly difficult to figure out.
Sometimes it is worth breaking this rule, but (like most
rules) not without specific good reason.