use PBP or croak; Perl Best Practices - Intro

Begonnen von RichardCZ, 25 März 2020, 16:30:14

Vorheriges Thema - Nächstes Thema

RichardCZ

Es gibt da ein Buch namens "Perl Best Practices" (fortan nur noch PBP), anno domini 2005, 2009 2nd ed., geschrieben von Damian Conway.
https://en.wikipedia.org/wiki/Perl_Best_Practices
http://shop.oreilly.com/product/9780596001735.do

Das Buch ist heute immer noch zu 80+% aktuell und die darin vorgeschlagenen, erklärten und ausführlich begründeten(!) Vorgehensweisen bei der Perl Programmierung erlauben es einen Code zu schreiben, der mindestens um 2-3 qualitative Größenordnungen über dem liegt, was derzeit in FHEM los ist.

Ich empfehle jedem, der es halbwegs ernst meint sauberen Perl Code zu schreiben, da mal reinzuschauen bzw. es als Nachschlagewerk zu benutzen. Man könnte es sich zwar kaufen, aber es geistern genügend PDFs im Internet rum, sogar in Deutscher Sprache (ich empfehle aber dringend die englische Version - soweit möglich).

Ich habe hier bereits sowas gehört wie "Ein 15 Jahre altes dogmatisches Buch..."

Dogma
BILDUNGSSPRACHLICH•OFT ABWERTEND
den Anspruch der absoluten Gültigkeit, Wahrheit erhebende Aussage, Lehrmeinung


Dogmatisch ist die Bibel. PBP ist nicht dogmatisch (siehe oben "ausführlich begründet"). Aber ja, hier in der Perl Ecke ist PBP "Die Bibel".
Von den 256 Themen dort, sind über 200 immer noch absolut relevant. Oftmals bin ich heute noch hinsichtlich ihrer zeitlosen Aussagekraft fasziniert.

Es ist nicht mein Job hier das Buch zu rezitieren, oder irgendwelche Punkte darin zu "verteidigen". Im Zweifelsfall sage ich nur "PBP, Seite 73-79",
denn das ist die Begründung.

Von den 200+ immer noch relevanten Punkten sind vielleicht 20-30 für uns absolut relevant, dringend und bedingungslos zutreffend. Die werde ich hier vorstellen. Natürlich sind auch diese nicht "Pflicht". Genau genommen gibt es sowas wie "Pflicht" bei einem OSS Projekt wie FHEM nicht.

Aber ich glaube, dass wir relativ bald eine sich vergrößernde Kluft sehen werden zwischen Modulen, die nach diesen Regeln gewartet werden und "dem Rest".
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

RichardCZ

#1
Und wer richtig modern modern sein will, der kann das "10-Tage freie Nutzung" Angebot von O'Reilly annehmen (nur Email wird gebraucht, keine Kreditkarte oder ähnlicher Schei*)
und sich https://learning.oreilly.com/videos/modern-perl-best/9781491910719 ansehen.

Das ist ein "Modern Perl best practices" Video - 6 Stunden - vom gleichen Autor. Stand 2014.

Da sind wir aber noch nicht, weil der Tag, an dem in FHEM

use Moo;

Standard wird, bedeutet, dass mein Job hier getan ist.


edit:

Nach genauerer Betrachtung des Video-Intro, kann ich das Video doch uneingeschränkt empfehlen (für Englischsprachge) auch für Leute die das Buch noch nicht kennen. Conway arbeitet präzise heraus worum es bei PBP geht. Das ist mehr als eine Formatierungsregel hier oder da.

Es geht darum sich ein Arsenal an Vorgehensweisen anzugewöhnen um robusten, effizienten, vor allem aber wartbaren Code zu schreiben.

"Optimiere nicht das Schreiben von Perl Code, sondern das Lesen." - und er erklärt auch genau warum.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

justme1968

schon lustig das du die bibel als vergleich heranziehst wo deine PBP X-Y nicht anders aussehen als ein 2.Mose 20:3 oder andere bibel verweise und genau so verwendet werden. als erleuchtung der eingeweihten die andere sowieso nicht verstehen. das sind sie nicht und sie werden auch durch die x-te wiederholung nicht richtiger wenn sie sachlich falsch sind.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

RichardCZ

Zitat von: justme1968 am 26 März 2020, 07:39:06
schon lustig das du die bibel als vergleich heranziehst wo deine PBP X-Y nicht anders aussehen als ein 2.Mose 20:3 oder andere bibel verweise und genau so verwendet werden. als erleuchtung der eingeweihten die andere sowieso nicht verstehen. das sind sie nicht und sie werden auch durch die x-te wiederholung nicht richtiger wenn sie sachlich falsch sind.

Ja so ist er - mein Humor.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.