Frage

Eines ist mir bekannt Perl::Kritiker

Und mein Googeln hat bisher bei mehreren Versuchen zu keinem Ergebnis geführt.:-(

Hat hier jemand Empfehlungen?

Wir würden uns über alle Ressourcen zum Konfigurieren von Perl::Critic gemäß unseren Codierungsstandards und zum Ausführen auf Codebasis freuen.

War es hilfreich?

Lösung

Was die Einrichtung eines Profils angeht, haben Sie es versucht? perlcritic --profile-proto?Dadurch werden alle Ihre installierten Richtlinien mit all ihren Optionen mit Beschreibungen beider, einschließlich ihrer Standardwerte, im perlcriticrc-Format an stdout ausgegeben.Speichern und bearbeiten Sie es entsprechend Ihren Wünschen.Wann immer Sie Perl::Critic aktualisieren, möchten Sie diesen Befehl möglicherweise erneut ausführen und einen Vergleich mit Ihrem aktuellen perlcriticrc durchführen, damit Sie alle Änderungen an vorhandenen Richtlinien sehen und alle neuen übernehmen können.

Um Perlcritic regelmäßig auszuführen, richten Sie Folgendes ein: Test::Perl::Critic Testen Sie zusammen mit den restlichen Tests.Das ist gut für neuen Code.

Verwenden Sie für Ihren vorhandenen Code Test::Perl::Critic::Progressive stattdessen.T::P::C::Progressive ist bei der ersten Ausführung erfolgreich, speichert jedoch die Anzahl der Verstöße.Danach wird sich T::P::C::Progressive beschweren, wenn einer der Zähler steigt.Achten Sie darauf, wenn Sie Änderungen in Ihrem Versionsverwaltungssystem rückgängig machen.(Sie verwenden eins, nicht wahr?) Angenommen, ich checke eine Änderung ein und führe Tests aus, und meine Änderungen reduzieren die Anzahl der P::C-Verstöße.Später stellte sich heraus, dass meine Änderung fehlerhaft war, also kehre ich zum alten Code zurück.Der T::P::C::Progressive-Test schlägt aufgrund der reduzierten Anzahl fehl.An dieser Stelle ist es am einfachsten, einfach die Verlaufsdatei (Standardspeicherort t/.perlcritic-history) zu löschen und erneut auszuführen.Es sollte Ihre alten Zählungen reproduzieren und Sie können neue Dinge schreiben, um sie wieder zu senken.

Im Lieferumfang von Perl::Critic sind viele Richtlinien enthalten, es gibt aber auch eine Reihe von Add-on-Distributionen von Richtlinien.Schauen Sie mal rein Task::Perl::Critic Und Task::Perl::Critic::InclusionOptionalDependencies.

Es ist nicht erforderlich, dass ein einziger perlcriticrc Ihren gesamten Code verwaltet.Erstellen Sie separate perlcriticrc-Dateien für jeden Dateisatz, den Sie testen möchten, und anschließend einen separaten Test, der auf jeden einzelnen Dateisatz verweist.Schauen Sie sich als Beispiel die Tests des Autors für P::C selbst an http://perlcritic.tigris.org/source/browse/perlcritic/trunk/Perl-Critic/xt/author/.Wenn Autorentests ausgeführt werden, gibt es einen Test, der den gesamten Code von P::C durchläuft, einen zweiten Test, der zusätzliche Regeln nur auf die Richtlinien anwendet, und einen dritten, der die Tests von P::C kritisiert.

Ich persönlich bin der Meinung, dass jeder den Schweregrad „brutal“ annehmen sollte, aber die Richtlinien ausschalten sollte, mit denen er nicht einverstanden ist.Perl::Critic ist nicht ganz selbstkonform;Selbst die P::C-Entwickler sind nicht mit allem einverstanden, was Conway sagt.Schauen Sie sich die perlcriticrc-Dateien an, die auf Perl::Critic selbst verwendet werden, und durchsuchen Sie den Perl::Critic-Code nach Instanzen von „## no Critic“;Ich zähle derzeit 143.

(Ja, ich bin einer der Perl::Critic-Entwickler.)

Andere Tipps

Es gibt perltidy für die meisten Stilansprüche.perlcritic kann einfach mit a konfiguriert werden .perlcritic-Datei.Ich persönlich verwende es auf Stufe eins, habe aber einige Richtlinien deaktiviert.

Zusätzlich zu „automatisierten Frameworks“ kann ich Damian Conway wärmstens empfehlen Best Practices für Perl.Ich stimme nicht zu 100 % mit dem überein, was er vorschlägt, aber meistens ist er auf dem richtigen Weg.

Der oben erwähnte Beitrag Entwickler::Prof wahrscheinlich wirklich bedeutet Entwickeln::Cover (um die Codeabdeckung einer Testsuite zu erhalten).

Eine schöne Kombination ist perlcritic mit EPIC für Eclipse – drücken Sie STRG-UMSCHALT-C (oder Ihre bevorzugte konfigurierte Tastenkombination) und Ihr Code wird mit Warnhinweisen markiert, wo immer perlcritic etwas gefunden hat, worüber man sich beschweren könnte.Viel schöner, als daran zu denken, es vor dem Einchecken laufen zu lassen.Und wie bei Perlcritic üblich, wird Ihr .perlcriticrc übernommen, sodass Sie die Regeln anpassen können.Wir behalten unsere .perlcriticrc in der Versionskontrolle, damit jeder die gleichen Standards erhält.

Zusätzlich zu den kosmetischen Best Practices finde ich es immer nützlich, Devel::Prof auf meiner Unit-Test-Suite auszuführen, um die Testabdeckung zu überprüfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top