Connascence of Algorithm
Connascence of Algorithm (CoA) occurs when two or more components must agree on using a particular algorithm.
Perhaps the most popular example of this kind of connascence is checksum
for file verification; applying the algorithm remotely allows for a mathematical proof that the file has not been changed.
Unfortunately, if we have this kind of connascence in our code, the result is not useful. Let's see an example of a dumb checksum
implementation that assumes we want to build it with a simple logic consisting of adding a character at the end of an integer so that the sum of the single numbers could be divided by 10:
AddChecksum("32143") => "321437" Check("321437") => true Check("321432") => false
Let's see this snippet implementing it:
public string AddChecksum(string inputData){ var sum = SumCharsOf(inputData); ...