Wie kann ich redundanten Code in Perl identifizieren und entfernen?

7

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?

    
someguy 28.10.2009, 05:20
quelle

4 Antworten

10

Sie können das B :: Xref -Modul verwenden, um Querverweisberichte zu erstellen.

    
David Harris 28.10.2009, 06:02
quelle
8

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%     
Schwern 28.10.2009 07:13
quelle
3

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.

    
Ether 28.10.2009 05:34
quelle
0

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.

    
Chris Kloberdanz 28.10.2009 05:42
quelle

Tags und Links