“In software engineering, two components are connascent if a change in one would require the other to be modified in order to maintain the overall correctness of the system.”
Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name Types of connascence: • Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name
Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name Types of connascence: • Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name
Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name Types of connascence: • Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name Direction where to refactor to
Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name Types of connascence: • Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name Direction where to refactor to
• Strength: Stronger connascence are harder to discover, or harder to refactor • Degree: An entity that is connascent with thousands of other entities is likely to be a larger issue than one that is connascent with only a few. • Locality: Connascent elements that are close together in a codebase are better than ones that are far apart Strength Weak Strong Degree Few A lot Few A lot Locality Close Far apart
• Strength: Stronger connascence are harder to discover, or harder to refactor • Degree: An entity that is connascent with thousands of other entities is likely to be a larger issue than one that is connascent with only a few. • Locality: Connascent elements that are close together in a codebase are better than ones that are far apart Direction where to refactor to Strength Weak Strong Degree Few A lot Few A lot Locality Close Far apart
• Strength: Stronger connascence are harder to discover, or harder to refactor • Degree: An entity that is connascent with thousands of other entities is likely to be a larger issue than one that is connascent with only a few. • Locality: Connascent elements that are close together in a codebase are better than ones that are far apart Direction where to refactor to Strength Weak Strong Degree Few A lot Few A lot Locality Close Far apart
Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name Types of connascence: • Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name
Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name Types of connascence: • Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name
Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name Types of connascence: • Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name
Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name Types of connascence: • Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name
Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name Types of connascence: • Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name
Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name Types of connascence: • Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name
Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name Types of connascence: • Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name
Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name Types of connascence: • Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name *still connascence. of value, but locality close
Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name Types of connascence: • Connascence of Identity • Connascence of Value • Connascence of Timing • Connascence of Execution Order • Connascence of Position • Connascence of Algorithm • Connascence of Meaning • Connascence of Type • Connascence of Name
way to evaluate and prioritize code review/refactor (now I don’t do fixes that are easiest but the most risky) • New tool to communicate (good reviews aren’t based on personal taste but on objective metric) • Gives new developers a framework/compass/guidance for writing good, clean, and maintainable code
way to evaluate and prioritize code review/refactor (now I don’t do fixes that are easiest but the most risky) • New tool to communicate (good reviews aren’t based on personal taste but on objective metric) • Gives new developers a framework/compass/guidance for writing good, clean, and maintainable code Propose!