Ich habe eine Perl-Codebasis, und es gibt viele redundante Funktionen, die auf viele Dateien verteilt sind.
Gibt es eine bequeme Möglichkeit, diese redundanten Funktionen in der Codebasis zu identifizieren? Gibt es ein einfaches Tool, das meine Codebasis dafür verifizieren kann?
Sie können das B :: Xref -Modul verwenden, um Querverweisberichte zu erstellen.
Ich bin in der Vergangenheit selbst auf dieses Problem gestoßen. Ich habe ein kleines Programm zusammengestellt, das PPI benutzt, um Subroutinen zu finden. Es normalisiert den Code ein wenig (Leerzeichen normalisiert, Kommentare entfernt) und meldet alle Duplikate. Funktioniert einigermaßen gut. PPI macht das ganze schwere Heben.
Sie könnten die Normalisierung etwas schlauer machen, indem Sie alle Variablennamen in jeder Routine auf $ a, $ b, $ c normalisieren und vielleicht etwas ähnliches für Strings tun. Hängt davon ab, wie aggressiv du sein willst.
%Vor%Es mag nicht bequem sein, aber das beste Werkzeug dafür ist dein Gehirn. Gehen Sie den ganzen Code durch und verstehen Sie seine Zusammenhänge. Versuchen Sie, die üblichen Muster zu sehen. Dann refactor!
Ich habe Ihre Frage mit " refactoring " gekennzeichnet. Sie können einige interessante Materialien auf dieser Seite finden unter diesem Thema abgelegt.
Unter Linux können Sie grep
verwenden, um alle Funktionen in Ihrer Codebasis aufzulisten. Sie werden wahrscheinlich tun müssen, was Ether vorschlägt und den Code wirklich durchgehen, um es zu verstehen, wenn Sie es nicht bereits getan haben.
Hier ist ein zu vereinfachtes Beispiel:
%Vor%Sie können auf diese Weise auch nach Duplikaten suchen. Diese Idee ist möglicherweise weniger effektiv, wenn Sie Perls OOP-Fähigkeit verwenden.
NaturalDocs , ein Tool zur Code-Dokumentation. Dies wird Ihnen helfen, vorwärts zu gehen.
Tags und Links perl refactoring