Skip to content

Commit c30b055

Browse files
committed
Add section "Connascence"
1 parent 748902f commit c30b055

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ have any feedback or suggestions for improvement!
2929

3030
### Inter-Module/Class
3131

32+
- [Connascence](#connascence)
3233
- [Minimise Coupling](#minimise-coupling)
3334
- [Law of Demeter](#law-of-demeter)
3435
- [Composition Over Inheritance](#composition-over-inheritance)
@@ -259,6 +260,30 @@ Resources
259260

260261
- [Opportunistic Refactoring](https://martinfowler.com/bliki/OpportunisticRefactoring.html)
261262

263+
## Connascence
264+
265+
Connascence is a software quality metric that describes different levels and
266+
dimensions of coupling. Two components are connascent if a change in one would
267+
require a change in the other as well. Lower connascence means higher code
268+
quality.
269+
270+
Why
271+
272+
- Reducing connascence will reduce the cost of change for a software system.
273+
- Arguably one of the most important benefits of connascence is that it gives
274+
developers a vocabulary to talk about different types of coupling.
275+
276+
How
277+
278+
- Each instance of connascence in a codebase is considered on 3 separate axes:
279+
strength, degree and locality.
280+
- It provides a system for comparing different types of dependency.
281+
282+
Resources
283+
284+
- [Connascence (connascence.io)](https://connascence.io)
285+
- [Connascence (wikipedia.org)](https://en.wikipedia.org/wiki/Connascence)
286+
262287
## Minimise Coupling
263288

264289
Coupling between modules or components is their degree of mutual

0 commit comments

Comments
 (0)