Laut dem Moose Best Practices-Dokument sollten meine Moose-Klassen folgendermaßen aussehen:
%Vor%Siehe Elch :: Manual :: BestPractices .
Und 99% der Zeit ist das, was ich will, also gibt es eine Möglichkeit, meinen Namespace autoklean zu machen und meine Klassen standardmäßig unveränderlich zu machen, so dass ich diesen Code nicht haben muss?
Vielleicht gibt es einen technischen Grund, warum es nicht möglich ist oder warum es nicht gemacht werden sollte?
Danke
Ich denke das einzige Eine Möglichkeit, dies zu vermeiden, ist MooseX::Declare
.
MooseX::Declare
ist ein macro
, das sich unten in Ihr Beispiel ändert:
Er fügt automatisch namespace::autoclean
ein und macht die Klasse unveränderlich.
Um Klassen zu erweitern, tun Sie:
%Vor%Und zum Hinzufügen von Rollen tun Sie:
%Vor%Und Sie können diese einfach kombinieren:
%Vor% Sie erhalten auch einige andere definierte Schlüsselwörter, z. method
:
Wenn du deine Klasse änderbar machen willst, dann ist das:
%Vor%
Vielleicht gibt es einen technischen Grund, warum es nicht möglich ist oder warum es nicht gemacht werden sollte?
Technisch wäre es schwierig, das alles zusammen zu ziehen. MooseX::Declare
verwendet Devel::Declare
, um die notwendige Syntax für die zu interpretierende Perl zu erstellen.
Wenn also die Kesselplatte ein Problem für Sie darstellt, sollten Sie MooseX::Declare
in Erwägung ziehen. Ich habe es in vielen Projekten ohne Probleme verwendet und finde es ideal, wenn ich schnell eine klassenbasierte App skizzieren kann. Meistens bin ich aber mit dem Boilerplate zufrieden und bleibe bei Standard Moose
.