Connascence: beyond Coupling and Cohesion
summary
Connascence gets defined with a three-axis taxonomy — degree, locality, strength — and concrete kinds: name and type, position, value, meaning, algorithm, execution-order, timing, identity and manual-task connascence. Code examples use C#/Java-style constructors, constants, segregated builder interfaces, and a fix that replaces sleep-based waits with an event plus semaphore in tests, cutting minutes from the suite. Prescribed fixes are explicit types, small objects, constants, encapsulated algorithms and parametrized timeouts; legacy work starts by adding characterization tests before refactoring.
AI-written summary · about
chapters (16)
- 0:00Introduction to conjoined
- 1:25Defining conjoined
- 4:20Taxonomy of conjoined
- 5:58Name and type conjoined
- 8:12Position conjoined
- 11:13Value conjoined
- 13:47Meaning conjoined
- 15:45Algorithm conjoined
- 17:38Execution order conjoined
- 21:40Timing conjoined
- 27:17Identity conjoined
- 28:33Manual task conjoined
- 31:54Design and refactoring
- 36:52Entropy in software
- 38:23Final remarks and book
- 39:40Q&A session
related talks
41mConnascence: beyond Coupling and cohesion
41mConnascence, beyond Coupling and Cohesion
37mConnascence beyond Coupling and Cohesion
49mConnascence - The Ultimate Formula for Building Quality Software?
56mContinued Learning: The Beauty of Maintenance -
41mUncoupling
01h 02mThrough the Looking Glass
40mRetrofitting Concurrency – Lessons from the Engine Room
