jargon

Comparison

ConnascencevsCoupling

Connascence

two pieces of code have to change together, and you can say precisely what kind of agreement binds them.

A vocabulary for grading coupling rather than just naming it: two components are connascent if changing one requires changing the other, and the kinds are ranked from weak — they agree on a name — to strong — they agree on the order of two operations or on a magic value. It is more useful than 'this is coupled' because it says which coupling to attack first, and it gives boolean arguments, positional parameters and timing dependencies a shared explanation. It is a favourite of conference talks and worth knowing for exactly that reason.

Full entry →

Coupling

you changed one module and three tests in a directory you had never opened went red.

How much one part of a system has to know about another part to work. Every dependency is coupling and some of it is necessary; the question in a review is never whether two things are coupled but whether they are coupled through a stable contract or through an assumption that will move. High coupling is what makes a small change expensive, because the cost of the change is not the edit but everything the edit forces you to also understand.

Full entry →

Related comparisons