Code-Duplicity finden
-
In einem PHP-Projekt gibt es hier ungefähr 20 sehr sehr ähnliche Module die sehr viel Code-Duplicity haben.
Ich soll Stellen finden an denen es möglich ist Teile in ein Commons-Modul auszulagern bzw. überhaupt Modularität einzuführen. Davon verspricht man sich geringeren Wartungsaufwand so wie weniger Probleme beim "in einem Untermodul übersehen".
Gibt es dafür bereits Tooling-Unterstützung die das Projekt durchscannt und mir äquivalente Teile sowie sehr ähnliche Teile anzeigt?
MfG SideWinder
-
http://stackoverflow.com/questions/2919393/a-tool-for-finding-duplicate-code-in-php
Ich glaube du wolltest nur Mitleid das du mit PHP arbeiten musst.
-
gute IDEs können das zumindest in begrenztem maße über refactorings. Intellij IDEA erkennt beispielsweise bei extract method, ob der code block noch irgendwo anders auftaucht und ersetzt den nach bestätigung gleich mit. funktioniert aber nur für kleine codeblöcke zuverlässig. größere blöcke, die zwar semantisch das gleiche machen, aber syntaktisch anders aussehen, sind schwierig.
letztlich wirst du das wohl per hand machen müssen. denn erfahrungsgemäß lässt sich so ein code nicht einfach 1zu1 auslagern, sondern man muss ihn erstmal spagettimäßig entwirren und die seiteneffekte lösen.
sowas lohnt sich in der regel aber immer. denn hat man erstmal so einen funktionalen block seitenfrei refactort, kann man das eigentlich immer prima einfach unittesten.