by joe

Posted on 2018-12-23

"The problem with always using an abstraction is that you’re preemptively guessing which parts of the codebase need to change together. “Don’t Repeat Yourself” will lead to a rigid, tightly coupled mess of code. Repeating yourself is the best way to discover which abstractions, if any, you actually need."

Holy shit! This is good. It comes from the website programmingisterrible.com.

Commendation and Recommendation

As we write this post, the most recent entry at programmingisterrible.com is 2018-08-05.

Several of the posts or sub-topics counsel questioning the literal or universal application of various programming epigrams such as DRY (Don't Repeat Yourself) or Do Only One Thing (Single Responsibility Principle). Tef's cautions are well taken. We approve heartily.

What is often lost when we rely on such guiding principles is the application of professional judgment and personal experience. It is worthwhile to question simplified directives. For example, in the world of personal finance, which is more applicable to your circumstances: "Take care of the pennies, and the pounds take care of themselves" or "Penny wise and pound foolish"? The answer tracks Tef's exploration of the question "How do you cut a month in half?" (June of 2017): "It depends."

Tef offers quite a few more gems in their level-headed posts going back almost three years. We recommend you to spend some time at programmingisterrible.com.

Unknown Source

We know nothing about "tef". Just ran across a different post while trolling through Twitter. So we're not citing tef as an authority. We do agree with the analysis, however.

It's very tempting, when we encounter such a strongly resonant statement, to latch onto the author as a kindred spirit - and begin bonding. Especially when the statement runs against the most commonly held received wisdom, the impulse is all too common - and fraught with risk.

After all, tef could well be eccentric - or worse - when examined on other topics. Given the contrarian cast of this one quote, it's possible, for example, that they** also reject the near-universal approval of the caution that "GOTO considered harmful"*** or some similar heresy.

Therefore, to be absolutely clear, when we quote tef - or anyone else in any other post on this site - we are endorsing (or condemning, or chuckling over, etc.) only the passage itself, not the author or the publisher or the critic behind the quotation.

Nevertheless ...

We have read a couple of tef's posts and retweeted tef a time or two already. You may reasonably expect to encounter our approval of other examples of their** writings here in the future.

**Plural pronoun used by permission. (And it seems entirely appropriate that we do so.)

***Edgar Dijkstra's classic salvo in the movement toward structured programming.


It will be some time yet before we get a comments section working here. In the meantime feel free to send comments via email. On this site our name is Joe Python. The email address is our first name at joepython.com.

Edited: 2019-01-30 20:55:12(utc) Generated: 2019-06-10 17:29:58(utc)