Der Vortragende      Perl-Programmierung                Perl::Critic                    Perl::CriticDein Nachfolger könnte...
Der Vortragende                   Perl-Programmierung                             Perl::CriticÜber mich...      Renée Bäck...
Der Vortragende     Oh mein Gott...                   Perl-Programmierung      Regeln                             Perl::Cr...
Der Vortragende     Oh mein Gott...                   Perl-Programmierung      Regeln                             Perl::Cr...
Der Vortragende     Oh mein Gott...                Perl-Programmierung      Regeln                          Perl::Critic  ...
Der Vortragende     Oh mein Gott...                 Perl-Programmierung      Regeln                           Perl::Critic...
Der Vortragende     Oh mein Gott...                Perl-Programmierung      Regeln                          Perl::Critic  ...
Der Vortragende     Oh mein Gott...               Perl-Programmierung      Regeln                         Perl::Critic   P...
Der Vortragende     Oh mein Gott...               Perl-Programmierung      Regeln                         Perl::Critic   P...
Der Vortragende     Oh mein Gott...                      Perl-Programmierung      Regeln                                Pe...
Der Vortragende     Oh mein Gott...                     Perl-Programmierung      Regeln                               Perl...
Der Vortragende     Oh mein Gott...                   Perl-Programmierung      Regeln                             Perl::Cr...
Der Vortragende     Oh mein Gott...                   Perl-Programmierung      Regeln                             Perl::Cr...
Der Vortragende     Oh mein Gott...           Perl-Programmierung      Regeln                     Perl::Critic   Perl Best...
Der Vortragende     Oh mein Gott...                  Perl-Programmierung      Regeln                            Perl::Crit...
Der Vortragende     Oh mein Gott...                 Perl-Programmierung      Regeln                           Perl::Critic...
Der Vortragende     Oh mein Gott...                   Perl-Programmierung      Regeln                             Perl::Cr...
Der Vortragende     Oh mein Gott...                    Perl-Programmierung      Regeln                              Perl::...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                        Perl-Programmierung      In Projektarbeit einbinden... ...
Der Vortragende     Perl::Critic im Einsatz                        Perl-Programmierung      In Projektarbeit einbinden... ...
Der Vortragende     Perl::Critic im Einsatz                        Perl-Programmierung      In Projektarbeit einbinden... ...
Der Vortragende     Perl::Critic im Einsatz                        Perl-Programmierung      In Projektarbeit einbinden... ...
Der Vortragende     Perl::Critic im Einsatz                        Perl-Programmierung      In Projektarbeit einbinden... ...
Der Vortragende     Perl::Critic im Einsatz                   Perl-Programmierung      In Projektarbeit einbinden...      ...
Der Vortragende     Perl::Critic im Einsatz                   Perl-Programmierung      In Projektarbeit einbinden...      ...
Der Vortragende     Perl::Critic im Einsatz                   Perl-Programmierung      In Projektarbeit einbinden...      ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                     Perl-Programmierung      In Projektarbeit einbinden...    ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                       Perl-Programmierung      In Projektarbeit einbinden...  ...
Der Vortragende     Perl::Critic im Einsatz                     Perl-Programmierung      In Projektarbeit einbinden...    ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                  Perl-Programmierung      In Projektarbeit einbinden...       ...
Der Vortragende     Perl::Critic im Einsatz                      Perl-Programmierung      In Projektarbeit einbinden...   ...
Der Vortragende     Perl::Critic im Einsatz                   Perl-Programmierung      In Projektarbeit einbinden...      ...
Der Vortragende     Perl::Critic im Einsatz                   Perl-Programmierung      In Projektarbeit einbinden...      ...
Der Vortragende     Perl::Critic im Einsatz                   Perl-Programmierung      In Projektarbeit einbinden...      ...
Der Vortragende      Perl::Critic im Einsatz                  Perl-Programmierung       In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                  Perl-Programmierung      In Projektarbeit einbinden...       ...
Der Vortragende     Perl::Critic im Einsatz                     Perl-Programmierung      In Projektarbeit einbinden...    ...
Der Vortragende     Perl::Critic im Einsatz                     Perl-Programmierung      In Projektarbeit einbinden...    ...
Der Vortragende     Perl::Critic im Einsatz                   Perl-Programmierung      In Projektarbeit einbinden...      ...
Der Vortragende     Perl::Critic im Einsatz              Perl-Programmierung      In Projektarbeit einbinden...           ...
Der Vortragende     Perl::Critic im Einsatz              Perl-Programmierung      In Projektarbeit einbinden...           ...
Der Vortragende     Perl::Critic im Einsatz              Perl-Programmierung      In Projektarbeit einbinden...           ...
Der Vortragende     Perl::Critic im Einsatz              Perl-Programmierung      In Projektarbeit einbinden...           ...
Der Vortragende     Perl::Critic im Einsatz                Perl-Programmierung      In Projektarbeit einbinden...         ...
Der Vortragende     Perl::Critic im Einsatz             Perl-Programmierung      In Projektarbeit einbinden...            ...
Der Vortragende     Perl::Critic im Einsatz             Perl-Programmierung      In Projektarbeit einbinden...            ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                   Perl-Programmierung      In Projektarbeit einbinden...      ...
Der Vortragende     Perl::Critic im Einsatz                     Perl-Programmierung      In Projektarbeit einbinden...    ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                  Perl-Programmierung      In Projektarbeit einbinden...       ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                 Perl-Programmierung      In Projektarbeit einbinden...        ...
Der Vortragende     Perl::Critic im Einsatz                  Perl-Programmierung      In Projektarbeit einbinden...       ...
Der Vortragende     Perl::Critic im Einsatz                   Perl-Programmierung      In Projektarbeit einbinden...      ...
Der Vortragende     Perl::Critic im Einsatz                 Perl-Programmierung      In Projektarbeit einbinden...        ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                Perl-Programmierung      In Projektarbeit einbinden...         ...
Der Vortragende     Perl::Critic im Einsatz                Perl-Programmierung      In Projektarbeit einbinden...         ...
Der Vortragende     Perl::Critic im Einsatz                Perl-Programmierung      In Projektarbeit einbinden...         ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                Perl-Programmierung      In Projektarbeit einbinden...         ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz                     Perl-Programmierung      In Projektarbeit einbinden...    ...
Der Vortragende     Perl::Critic im Einsatz                     Perl-Programmierung      In Projektarbeit einbinden...    ...
Der Vortragende     Perl::Critic im Einsatz                     Perl-Programmierung      In Projektarbeit einbinden...    ...
Der Vortragende     Perl::Critic im Einsatz                     Perl-Programmierung      In Projektarbeit einbinden...    ...
Der Vortragende     Perl::Critic im Einsatz                     Perl-Programmierung      In Projektarbeit einbinden...    ...
Der Vortragende     Perl::Critic im Einsatz                     Perl-Programmierung      In Projektarbeit einbinden...    ...
Der Vortragende     Perl::Critic im Einsatz                   Perl-Programmierung      In Projektarbeit einbinden...      ...
Der Vortragende     Perl::Critic im Einsatz                   Perl-Programmierung      In Projektarbeit einbinden...      ...
Der Vortragende     Perl::Critic im Einsatz                   Perl-Programmierung      In Projektarbeit einbinden...      ...
Der Vortragende     Perl::Critic im Einsatz                   Perl-Programmierung      In Projektarbeit einbinden...      ...
Der Vortragende     Perl::Critic im Einsatz                   Perl-Programmierung      In Projektarbeit einbinden...      ...
Der Vortragende     Perl::Critic im Einsatz                    Perl-Programmierung      In Projektarbeit einbinden...     ...
Der Vortragende     Perl::Critic im Einsatz               Perl-Programmierung      In Projektarbeit einbinden...          ...
Nächste SlideShare
Wird geladen in …5
×

Clt 2011 Perl Critic

1.981 Aufrufe

Veröffentlicht am

Vortrag über Perl::Critic vom Chemnitzer LinuxTag 2011

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.981
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Clt 2011 Perl Critic

  1. 1. Der Vortragende Perl-Programmierung Perl::Critic Perl::CriticDein Nachfolger könnte ein Psychopath sein Renée Bäcker Chemnitzer LinuxTage 2011 Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  2. 2. Der Vortragende Perl-Programmierung Perl::CriticÜber mich... Renée Bäcker Perl-Programmierer seit 2002 Perl-Services.de Schulungen Programmierung OTRS Perl-Magazin Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  3. 3. Der Vortragende Oh mein Gott... Perl-Programmierung Regeln Perl::Critic Perl Best PracticesIst das wirklich Perl? ($/,$%,$.,$-)=(gmtime($^T+=86400))[3..6]while($/-12)/4|$ 2||++$printf 1900+$..-%02d-%02dn,++$%,$/==8?8:$/-7 Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  4. 4. Der Vortragende Oh mein Gott... Perl-Programmierung Regeln Perl::Critic Perl Best PracticesPerl == RSA? The only language that looks the same before and after RSA encryption. Keith Bostic Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  5. 5. Der Vortragende Oh mein Gott... Perl-Programmierung Regeln Perl::Critic Perl Best PracticesSolcher Code macht Dich glücklich Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  6. 6. Der Vortragende Oh mein Gott... Perl-Programmierung Regeln Perl::Critic Perl Best Practices... aber nur für einen kurzen Augenblick Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  7. 7. Der Vortragende Oh mein Gott... Perl-Programmierung Regeln Perl::Critic Perl Best Practices... nach ein paar Monaten Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  8. 8. Der Vortragende Oh mein Gott... Perl-Programmierung Regeln Perl::Critic Perl Best PracticesIm Team ist so etwas unangebracht Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  9. 9. Der Vortragende Oh mein Gott... Perl-Programmierung Regeln Perl::Critic Perl Best PracticesIm Team ist so etwas unangebracht Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  10. 10. Der Vortragende Oh mein Gott... Perl-Programmierung Regeln Perl::Critic Perl Best PracticesEin Team braucht Regeln Tim, 26, C Perl for ( $i = 0; $i = $#zahlen; $i++ ) { $array[i] = $zahlen[$i] * 2; } Michael, 27, schon länger bei Perl dabei for my $i ( 0 .. $#zahlen ) { $array[$i] = $zahlen[$i] * 2; } Sabrina, 25, Perl mit der Muttermilch aufgenommen ;-) my @array = map{ $_ * 2 }@zahlen; Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  11. 11. Der Vortragende Oh mein Gott... Perl-Programmierung Regeln Perl::Critic Perl Best PracticesEin Team braucht Regeln Die Regeln sollten für einige Punkte abdecken: Code-Layout erlaubte Konstrukte Perl-Version Metadaten Projektinformationen (VCS,...) Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  12. 12. Der Vortragende Oh mein Gott... Perl-Programmierung Regeln Perl::Critic Perl Best PracticesRegeln für Perl-Code Firmen haben Regeln für Java C/C++ ... Aber nur wenige haben festgelegte Regeln für Perl. Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  13. 13. Der Vortragende Oh mein Gott... Perl-Programmierung Regeln Perl::Critic Perl Best PracticesRegeln für Perl-Code Ohne Regeln... ... gibt es einen Wildwuchs an Perl-Code. Wartbarkeit nimmt ab. Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  14. 14. Der Vortragende Oh mein Gott... Perl-Programmierung Regeln Perl::Critic Perl Best PracticesDas Buch Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  15. 15. Der Vortragende Oh mein Gott... Perl-Programmierung Regeln Perl::Critic Perl Best PracticesWas Damian Conway beschreibt... Best Practices ein paar wenige Kapitel sind veraltet (z.B. Objekte ) Vorschläge seine Erfahrung absolut lesenswertes Material Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  16. 16. Der Vortragende Oh mein Gott... Perl-Programmierung Regeln Perl::Critic Perl Best PracticesGesetz?? - Viele halten es dafür... Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  17. 17. Der Vortragende Oh mein Gott... Perl-Programmierung Regeln Perl::Critic Perl Best Practices... ist es aber nicht Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  18. 18. Der Vortragende Oh mein Gott... Perl-Programmierung Regeln Perl::Critic Perl Best PracticesKategorien Conway zeigt Best Practices für eine ganze Reihe von Kategorien: Code-Layout Namenskonventionen Werte und Ausdrücke Variablen Kontrollstrukturen ... Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  19. 19. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnWas hat Perl Best Practices mit Perl::Critic zu tun? Auf der Basis des Buchs wurde Perl::Critic entwickelt. Damit lässt sich der eigene Code analysieren... Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  20. 20. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnWas ist Perl::Critic? Hilft dem Programmierer Fehler zu vermeiden, mehr oder weniger wie use warnings und use strict mehr... Perl::Critic schaut nicht auf die einfache syntaktische Korrektheit, sondern achtet darauf, dass gewisse Regeln eingehalten werden - z.B. ob Subroutinennamen CamelCase sind oder nicht. Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  21. 21. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnWas ist Perl::Critic? Hilft dem Programmierer Fehler zu vermeiden, mehr oder weniger wie use warnings und use strict weniger... Perl::Critic kompiliert den Code nicht, sondern parst ihn dank PPI als Dokument. Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  22. 22. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnEin erstes Beispiel Ein erstes Beispiel #!/usr/bin/perl print Hallo Chemnitz; Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  23. 23. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnAusgabe Ein erstes Beispiel ~ perlcritic 1.pl Code before strictures are enabled at line 3, column 1. See page 429 of PBP. ( Severity: 5) perlcritic wird mit Perl::Critic installiert Wir haben gegen eine Regel verstoÿen Es sagt uns, wo wir das in Perl Best Practices nden können Wie schlimm ist unser Code wirklich Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  24. 24. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnAusgabe Ein erstes Beispiel ~ perlcritic 1.pl Code before strictures are enabled at line 3, column 1. See page 429 of PBP. ( Severity: 5) perlcritic wird mit Perl::Critic installiert Wir haben gegen eine Regel verstoÿen Es sagt uns, wo wir das in Perl Best Practices nden können Wie schlimm ist unser Code wirklich Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  25. 25. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnAusgabe Ein erstes Beispiel ~ perlcritic 1.pl Code before strictures are enabled at line 3, column 1. See page 429 of PBP. ( Severity: 5) perlcritic wird mit Perl::Critic installiert Wir haben gegen eine Regel verstoÿen Es sagt uns, wo wir das in Perl Best Practices nden können Wie schlimm ist unser Code wirklich Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  26. 26. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnAusgabe Ein erstes Beispiel ~ perlcritic 1.pl Code before strictures are enabled at line 3, column 1. See page 429 of PBP. ( Severity: 5) perlcritic wird mit Perl::Critic installiert Wir haben gegen eine Regel verstoÿen Es sagt uns, wo wir das in Perl Best Practices nden können Wie schlimm ist unser Code wirklich Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  27. 27. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnPerl::Critic Regeln Die Überprüfung basiert auf bestimmten Regeln - in diesem Fall TestingAndDebugging::RequireUseStrict. Diese Regeln werden mit Perl::Critic mitgeliefert ... oder werden von anderen Module geliefert (z.B. Perl::Critic::OTRS) ... oder man schreibt selbst welche Regeln die Bugs vermeiden .. Regeln kosmetischer Natur Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  28. 28. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnPerl::Critic Regeln Die Überprüfung basiert auf bestimmten Regeln - in diesem Fall TestingAndDebugging::RequireUseStrict. Diese Regeln werden mit Perl::Critic mitgeliefert ... oder werden von anderen Module geliefert (z.B. Perl::Critic::OTRS) ... oder man schreibt selbst welche Regeln die Bugs vermeiden .. Regeln kosmetischer Natur Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  29. 29. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnPerl::Critic Regeln Die Überprüfung basiert auf bestimmten Regeln - in diesem Fall TestingAndDebugging::RequireUseStrict. Diese Regeln werden mit Perl::Critic mitgeliefert ... oder werden von anderen Module geliefert (z.B. Perl::Critic::OTRS) ... oder man schreibt selbst welche Regeln die Bugs vermeiden .. Regeln kosmetischer Natur Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  30. 30. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnNochmal... Regeln kosmetischer Natur?!? Gleiches Programm, aber... ~ perlcritic -severity=1 1.pl Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  31. 31. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnAusgabe ... viel mehr Fehler Code is not tidy at line 1, column 1. See page 33 of PBP. (Severity: 1) RCS keywords $Id$ not found at line 1, column 1. See page 441 of PBP. (Severity: 2) RCS keywords $Revision$, $HeadURL$, $Date$ not found at line 1, column 1. See p age 441 of PBP. (Severity: 2) RCS keywords $Revision$, $Source$, $Date$ not found at line 1, column 1. See page 441 of PBP. (Severity: 2) No package-scoped $VERSION variable found at line 1, column 1. See page 404 o f PBP. (Severity: 2) Return value of agged function ignored - print at line 3, column 1. See pages 208,278 of PBP. (Severity: 1) Code before strictures are enabled at line 3, column 1. See page 429 of PBP. ( Severity: 5) Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  32. 32. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnWas ist passiert? Warum gibt es jetzt viel mehr Warnungen? Wir wollten, dass Perl::Critic viel pingeliger ist! -severity=1 Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  33. 33. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnSeverities Severities gewichtet die Regeln 5 (gentle) Schwerwiegenste Regeln 4 (stern) 3 (harsh) 2 (cruel) 1 (brutal) Kosmetische Regeln Wer Regeln entwirft muss diese Wichtigkeit festlegen - kann aber noch angepasst werden. Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  34. 34. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnEin weiteres Beispiel Hier ist alles ok, oder? #!/usr/bin/perl # $Id$ use strict; use warnings; our $VERSION = 0.01; my $has_flag = check_flag(); print No flag if !$has_flag; sub check_flag { return 1; } Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  35. 35. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnDer Fehler Nein, doch noch eine Meldung... ~perlcritic -severity=2 2.pl Postx control if used at line 13, column 17. See pages 93,94 of PBP. (Severity: 2) Ich bin aber ein Freund des nachgestellten if. Was nun? Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  36. 36. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnDer Fehler Nein, doch noch eine Meldung... ~perlcritic -severity=2 2.pl Postx control if used at line 13, column 17. See pages 93,94 of PBP. (Severity: 2) Ich bin aber ein Freund des nachgestellten if. Was nun? Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  37. 37. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnRegeln ausschlieÿen Man kann Regeln auch ausschlieÿen. Perl Best Practices liefert Anregungen, wie man programmieren kann, man muss aber nicht mit allem einverstanden sein. Es gibt mehrere Wege, um Regeln auszuschlieÿen: 1. Weg ~perlcritic -severity=2 -exclude=ProhibitPostxControls 2.pl 2.pl source OK Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  38. 38. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnRegeln ausschlieÿen Man kann auch im Code über bestimmte Kommentare die Regeln ausschalten 2. Weg use strict; ## no critic (RequireCamelCase) my $has_flag = check_flag(); ## use critic sub connect {} ## no critic (ProhibitBuiltinHomonyms) Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  39. 39. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnKonguration Eine weitere Möglichkeit ist, eine Kongurationsdatei zu erstellen .perlcriticrc INI-Format Suchreihenfolge: im aktuellen Verzeichnis im HOME-Verzeichnis Angabe in Umgebungsvariablen PERLCRITIC Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  40. 40. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnKonguration Ausschnitt einer Kongurationsdatei [ControlStructures::ProhibitPostfixControls] allow = if unless # My custom configuration severity = cruel # Same as severity = 2 Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  41. 41. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnKonguration Ausschnitt einer Kongurationsdatei [-NamingConventions::Capitalization] [-ValuesAndExpressions::ProhibitMagicNumbers] Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  42. 42. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnKonguration Ausschnitt einer Kongurationsdatei [Modules::RequireFilenameMatchesPackage] add_themes = larry [TestingAndDebugging::RequireTestLables] add_themes = larry curly moe Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  43. 43. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnThemes Unterschiedliche Projekte Unterschiedliche Kongurationen Themes sind die Lösung Themes sind Gruppierungen von Regeln. Für jedes Projekt wird ein Theme erstellt und entsprechend eingebunden Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  44. 44. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnThemes im Einsatz Themes im Einsatz ~perlcritic -theme=core 3.pl Code is not tidy at line 1, column 1. See page 33 of PBP. (Severity: 1) RCS keywords $Id$ not found at line 1, column 1. See page 441 of PBP. (Severity: 2) [...] Subroutine OTRSName is not all lower case or all upper case at line 6, column 1. See pages 45,46 of PBP. (Severity: 1) ~perlcritic -theme=maintenance 3.pl 3.pl source OK ~perlcritic -theme=otrs 3.pl Variable, subroutine, and package names have to be in CamelCase at line 7, colum n 1. (no explanation). (Severity: 5) Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  45. 45. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnRoundup Perl::Critic in der Zusammenfassung Statische Codeanalyse Basiert auf Regeln PPI Viele Einstellmöglichkeiten Severeties Themes Einzelne Regeln hinzufügen/abschalten Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  46. 46. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnPerl::Critic testen Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  47. 47. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnIn Projektarbeit einbinden... Gröÿter Nutzen wenn es direkt in die Projekte eingebunden wird Direkt in Unittests Test::Perl::Critic Als Hooks in Versionskontrollsysteme Regelmäÿig selbst laufen lassen - schon während der Entwicklung Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  48. 48. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene Regeln... in Unittests Einfach ein Testskript erstellen: 98_perl_critic.t use Test::Perl::Critic; my $rcfile = File::Spec-catfile( t, perlcriticrc ); Test::Perl::Critic-import( -profile = $rcfile ); all_critic_ok(); Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  49. 49. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene Regeln... in Unittests Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  50. 50. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene Regeln... in IDEs Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  51. 51. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene Regeln... in IDEs Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  52. 52. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene Regeln... in IDEs Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  53. 53. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene Regeln... in IDEs Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  54. 54. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene Regeln... in VCS SVN-Hook SET REPOS=%1 SET TXN=%2 perl D:Repositoryhooksperl_critic.pl %REPOS% %TXN% Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  55. 55. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene Regeln... in VCS Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  56. 56. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene Regeln... in VCS Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  57. 57. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnWeitere Pakete auf CPAN Häug reichen die Standardregeln nicht aus. CPAN liefert noch weitere Pakete mit Regeln: Perl::Critic::Bangs Perl::Critic::Lax Perl::Critic::OTRS Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  58. 58. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene Regeln... Perl::Critic::Bangs Für Modulentwickler sehr interessant ProhibitCommentedOutCode Wer hat sich noch nicht über gröÿere Mengen alten Codes geärgert? ProhibitFlagComments Überprüft auf Flags wie TODO, JFDI,... ProhibitNoPlan Tests sollten einen Plan haben... Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  59. 59. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene Regeln... Perl::Critic::Bangs ProhibitNumberedNames my $var2 ist nicht sehr aussagekräftig ProhibitVagueNames my $data ist nichtssagend Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  60. 60. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene Regeln... Perl::Critic::Lax An manchen Stellen ist Perl::Critic zu strikt. Hier helfen dann diese Regeln: ProhibitEmptyQuotes::ExceptAsFallback Erlaubt so etwas wie my $var = $test || ProhibitStringyEval::ExceptForRequire String-eval ist nicht gut, aber manchmal braucht man es doch RequireEndWithTrueConst Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  61. 61. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene Regeln... Perl::Critic::OTRS Wer OTRS-Entwicklung betreibt, kann sich diese Regeln anschauen: RequireCamelCase AllesMussInCamelCaseGeschriebenWerden (Subs, Variablen,...) RequireParensWithMethods Alle Nicht-Builtin-Methodenaufrufe müssen Klammern haben ... Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  62. 62. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnEigene Regeln Aber manchmal reichen auch diese Erweiterungen auf dem CPAN nicht! Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  63. 63. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnWie arbeitet Perl::Critic? Wie am Anfang erwähnt, arbeitet Perl::Critic mit PPI! Wer eigene Regeln entwickeln will, muss sich also mal mit PPI beschäftigen... Parser für Perl-Dokumente Parsen nach menschlichen Verständnis Reines Perl Relativ langsam Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  64. 64. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnWas ist eigentlich Perl? Acme::Buy use Acme::Buffy; BUffY bUFFY BUffY bUFFY bUfFy buFfY bUFfY bUFFY buffy buffY bUffy buFFY buffY BuFfy bUFfy bufFy BuFFY buffy bUffy buFfY buffY BuFfy buFfy bUFFy bUfFY buffY buFfY Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  65. 65. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnWas ist eigentlich Perl? Acme::DoubleHelix use Acme::DoubleHelix; CG T--A A---T A----T C----G T----A A---T Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  66. 66. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnPerl mit PPI parsen PPI im Einsatz #!/usr/bin/perl use strict; use warnings; use PPI; use PPI::Dumper; my $ppi = PPI::Document-new($0); my $dumper = PPI::Dumper-new($ppi); $dumper-print(); Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  67. 67. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnBaum eines Perl-Programms Baum eines Perl-Programms PPI::Document PPI::Token::Comment #!/usr/bin/perln PPI::Token::Whitespace n PPI::Statement::Include PPI::Token::Word use PPI::Token::Whitespace PPI::Token::Word strict PPI::Token::Structure ; PPI::Token::Whitespace n [...] Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  68. 68. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnEine neue Regel Wir brauchen eine Regel: Methodenaufrufe müssen immer runde Klammern haben. Beispielcode my $obj = CGI-new; print $obj-header(); print $obj-start_html( -css = hallo.css ); my $hashref = { key = value }; print $hashref-{key}; Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  69. 69. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnMehr Infos... ungültig my $obj = CGI-new; PPI-Dump PPI::Token::Word CGI PPI::Token::Operator - PPI::Token::Word new PPI::Token::Structure ; Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  70. 70. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnMehr Infos... gültig print $obj-header(); PPI-Dump PPI::Token::Symbol $obj PPI::Token::Operator - PPI::Token::Word header PPI::Structure::List ( ... ) PPI::Token::Structure ; Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  71. 71. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnMehr Infos... gültig print $obj-start_html( css = hallo.css ); PPI-Dump PPI::Token::Symbol $obj PPI::Token::Operator - PPI::Token::Word start_html PPI::Structure::List ( ... ) PPI::Token::Whitespace PPI::Statement::Expression [...] PPI::Token::Structure ; Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  72. 72. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnMehr Infos... uninteressant $hashref-{key}; .. $arrayref-[1]; Das sind einfach Dereferenzierungen... Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  73. 73. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnMehr Infos... PPI-Dump PPI::Token::Symbol $hashref PPI::Token::Operator - PPI::Structure::Subscript { ... } PPI::Statement::Expression PPI::Token::Word key PPI::Token::Structure ; Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  74. 74. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnWas wir jetzt wissen Wir haben jetzt alle notwendigen Informationen: Wir müssen auf PPI::Token::Operator reagieren (-) Wenn danach ein PPI::Structure::Subscript kommt, interessiert es uns nicht Wenn danach ein PPI::Structure::List kommt, ist alles ok Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  75. 75. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnWas wir jetzt wissen Wir haben jetzt alle notwendigen Informationen: Wir müssen auf PPI::Token::Operator reagieren (-) Wenn danach ein PPI::Structure::Subscript kommt, interessiert es uns nicht Wenn danach ein PPI::Structure::List kommt, ist alles ok Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  76. 76. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnWas wir jetzt wissen Wir haben jetzt alle notwendigen Informationen: Wir müssen auf PPI::Token::Operator reagieren (-) Wenn danach ein PPI::Structure::Subscript kommt, interessiert es uns nicht Wenn danach ein PPI::Structure::List kommt, ist alles ok Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  77. 77. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnPerl::Critic Regel Die Regel package Perl::Critic::Policy::OTRS::RequireParensWithMethods; use strict; use warnings; use Perl::Critic::Utils qw{ :severities :classification :ppi }; use base Perl::Critic::Policy; use Readonly; our $VERSION = 0.01; Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  78. 78. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnPerl::Critic Regel Die Regel Readonly::Scalar my $DESC = q{Method invokation should use ()}; Readonly::Scalar my $EXPL = q{Use -MethodName() instead of -MethodName.}; Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  79. 79. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnPerl::Critic Regel Die Regel sub supported_parameters { return; } sub default_severity { return $SEVERITY_HIGHEST; } sub default_themes { return qw( otrs ) } sub applies_to { return PPI::Token::Operator } Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  80. 80. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnPerl::Critic Regel Die Regel sub violates { my ( $self, $elem ) = @_; return if $elem ne -; my $method = $elem-snext_sibling; return if ref $method eq PPI::Structure::Subscript; Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  81. 81. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnPerl::Critic Regel Die Regel my $list = $method-snext_sibling; return if ref $list eq PPI::Structure::List; return $self-violation( $DESC, $EXPL, $elem ); } 1; Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  82. 82. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnPerl::Critic Regel Zusammenfassung eigene Regeln: erbt von Perl::Critic::Policy $DESC, $EXPL Methoden: default_severity, default_themes, applies_to violates Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  83. 83. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnDie eigene Regel testen Die eigene Regel kann einfach getestet werden: Neues Object von Perl::Critic erzeugen Neues Object von der Regel erzeugen Test laufen lassen Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  84. 84. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnDie eigene Regel testen Test der eigenen Regel use Test::More; use Perl::Critic; use Perl::Critic::Policy::OTRS::RequireParensWithMethods; Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  85. 85. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnDie eigene Regel testen Test der eigenen Regel my @valid = ( CGI-new();, $obj-method();, ); my @invalid = ( CGI-new;, $obj-method;, ); plan tests = @valid + @invalid; Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  86. 86. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnDie eigene Regel testen Test der eigenen Regel my $c = Perl::Critic-new( -profile = NONE ); my $policy = Perl::Critic::Policy::OTRS::RequireParensWithMethods-new; $c-add_policy( -policy = $policy ); Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  87. 87. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnDie eigene Regel testen Test der eigenen Regel ok( (scalar $c-critique( $_ )) == 0, valid ) for @valid; ok( (scalar $c-critique( $_ )) 0, invalid ) for @invalid; Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  88. 88. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnEigene Perl::Critic Regeln Wie zu sehen war, ist Perl::Critic ein nützliches Tool, um Programmierregeln durchzusetzen. Eigene Regeln sind einfach umzusetzen. Es gibt keine Entschuldigung mehr, unleserlichen Code zu schreiben ;-) Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein
  89. 89. Der Vortragende Perl::Critic im Einsatz Perl-Programmierung In Projektarbeit einbinden... Perl::Critic Perl::Critic::* Eigene RegelnVielen Dank! Vielen Dank! Renée Bäcker Perl::Critic - Dein Nachfolger könnte ein Psychopath sein

×