
Ask HN: How do you guys avoid duplication of code? - hobabaObama
As the organisation grows even past 10 people, we see that people create modules which are already present and duplicate the code. What is the most effective way to control this? A partial solution would be Sonar code scan. But then it can catch the syntactical duplication if I am not wrong. What about logical duplication like to read release version we can have 2 classes - ReleaseVersionReader and ReleaseVersionInfo.<p>It looks almost impossible to achieve in larger organisation with 100s of employees.<p>Thoughts?
======
externalreality
Does the code work? When it stops working then worry about it. Why are you
pulling your hair out over duplicate code. Do you know how much duplicate code
there is in the Linux Kernel? Gee man, my nerves a shock!

------
maxheadroom
IMPE, the most seasoned developers on the project (e.g.: ten years or more)
had the experience, that comes with age in position, to know when redundant
code was being made and they voiced such during code-reviews for pull-
requests.

The intrinsic problem with this approach, of course, is that you need the
people to stick around for this to work and to force code-reviews for check-
ins.

~~~
hobabaObama
Yup. This is the only approach which is practical and probably followed by
all.

Wanted to see if there is some innovative method out there which can be
utilised.

~~~
maxheadroom
I do know that you can create StyleCop rules to try to check for redundancy.
For example, we had a type derived from System.DateTime in .NET that was to be
used (instead of System.DateTime) and the smoketest builds would fail for the
StyleCop violation.

So, using your version example, you could create a rule that checks if the
method .ctor() has the word version in it and if it leverages any of the same
single lines of code; however, I haven't the faintest idea of if I'm right in
that it was StyleCop or how you would go about implementing it but I believe
what you're looking for _can_ be done.

Most companies don't go that route, though, unless there's security
implications because the ROI is so high for the implementation.

------
pragmaticlurker
Code Reviews can avoid duplication.

