Meine Erfahrung und mein Verständnis von Entwurfsmustern kommt von der Arbeit mit Laravel, also bin ich eigentlich nur im MVC-Entwurfsmuster erfahren, aber ich habe selbst eine Art "autocompiling" -Ansicht für jede der CRUD-Operationen entwickelt, so zum Beispiel Normalerweise verwende ich eine Art von Array in meinem Modell, um zu beschreiben, wie ich die Ansicht für das Modell selbst erzeugen möchte, und danach schreibe ich eine allgemeine Ansicht, die die Eigenschaften des Modells ausliest und basierend auf dem Array die Felder erzeugt erforderlich, so etwas wie:Ist die Hybridisierung von Designmustern eine schlechte Praxis?
class User extends Model{
public $editFormArray=array(["name","text",20],
["surname","text",30]);
[...]
}
und die Aussicht hat und Implementierung, die das Modell, um es, und auf der Grundlage des $ editFormArray Anstand gesendet lädt, wird es selbst
erzeugenEtwas wie:
@foreach($resource->editFormArrayas $currForm)
@if ($currForm[1]=="text")
<div class="form-group">
<div class="col-md-12">
<input name="{{$currForm[0]}}" type="{{$currForm[1]}}"
placeholder="{{$currForm[0]}}" size="{{$currForm[2]}}">
</div>
</div>
@endif
[...]
@endforeach
diese Art von Ansatz des lassen Sie mich nur 1 Aufruf für CRUD Betrieb erstellen (und einige andere sehen, dass nicht automatisch berechnet werden kann, wie pro erforderlich) und ermöglicht auch mir das Modell zu ändern Form on the fly, Hinzufügen, Entfernen und Bearbeiten von Feldern, wie ich es im laufenden Betrieb sehe, aber auch, dass meine Modelldateien wirklich geladen werden.
Einer meiner Mitarbeiter hat vor kurzem einen Kurs über Entwurfsmuster genommen und denkt, das ist schlecht, sagt eine normale MVC, mit einer manuell für jede einzelne CRUD-Operation erstellten Ansicht wäre der richtige Weg, es zu tun Ich denke, dass er falsch ist, weil das View selbst keine echte Logik berechnet (die gesamte Logik wird tatsächlich auf dem Controller gespeichert), es berechnet nur "Anzeigelogik" wie in der Logik, die erforderlich ist, um das UX selbst korrekt anzuzeigen.
Jemand könnte etwas Licht auf die Argumente schreddern?
Im Grunde mit einer guten Dokumentation des Entwicklungsprozesses, hier und da explizite Kommentare, während auch die Namen der "Autodesignlogik" Variablen auf eine Weise ändern, die leichter zu verstehen ist, könnte dies eigentlich ein guter Weg sein, richtig? Ich meine, ich mache es so, weil das Softwer-Design sich ständig ändert. Anstatt also die gleichen Dinge zu schreiben, zu löschen und zu bearbeiten, modifiziere ich einfach ein Array, indem ich ein einzelnes Element hinzufüge/bearbeite/lösche das Ergebnis in der Präsentationsschicht, so in meiner Absicht, diese Wartung zu beschleunigen. –
Yeah, du verpasst den Punkt, aber hey, wenn dein Boss dich das tun lässt, dann mach es. – Josh
Nun, die Sache ist, ich bin der Chef in diesem Fall, und ich versuche meine Entscheidungsfindung in dieser Sache zu verbessern, also würde ich es lieben, wenn Sie mir helfen könnten, den Punkt zu treffen, ich will es verstehen. –