Best Practice für ähnliche Tasks

berto

Lt. Junior Grade
Dabei seit
Juni 2011
Beiträge
340
Hallo Leute,

ich darf mich wieder vertrauensvoll an euch wenden, heute für eine kurze Brainstorming-Runde bezüglich eines Projekts an dem ich gerade arbeite.

Hintergrund:
Ich habe schon einiges mit PHP realisiert und nun vor einiger Zeit angefangen mich mit Laravel zu beschäftigen (5.2) und habe damit auch schon ein mini-Projekt umgesetzt, Profi bin ich aber nun wirklich keiner.
Wie auch immer arbeite ich nun seit geraumer Zeit an einem bedeutend komplexeren Projekt, dem eine ziemlich komplizierte und aufwändige Datenstruktur zugrunde liegt. Um es ein wenig zu abstrahieren: ich habe eine DB, die viele Aggregationen beinhaltet (Im großen und ganzen ein Inventar + Katalog und verwantwortlichkeiten und noch einiges mehr).


Nun stehe ich vor der eigentlichen Frage:
Im ersten Schritt soll ein Web-Interface geschaffen werden, mit dem man die Daten befüllen und warten kann. Dazu habe ich eine Menge Abläufe die sehr ähnlich sind, aber eben nicht gleich. Zum Beispiel gibt es für jedes Model einen Workflow wie man eine Instanz erstellen kann, anzeigen, ändern löschen usw... Ich habe hier nun angefangen den selben Workflow auf jedes Model anzuwenden und halt anzupassen. Dabei kommt ziemlich oft copy&paste zum Einsatz. Habe eigentlich immer die gleiche Struktur:
Route GET /xy/create
->contoller@showCreateXyView
->view.createXy
->Route POST /xy/create
->validateCreateXy
->controller@createXy

ähnlicher Ablauf bei den anderen Prozessen. Die Views schauen im großen und ganzen sehr ähnlich aus, halt mit spezifischen Feldern, selects, checkboxen usw. Die Controllermethoden machen im Grude auch das Gleiche, nur mit spezifischen checks zb.
Da Copy&paste ja bekanntlichermaßen nicht das Gelbe vom Ei ist, bin ich ins Grübeln gekommen, ob das schon so toll ist, was ich da mache, aber mir ist noch kein sinnvoller anderer Ansatz eingefallen.

Was meint ihr dazu? Habt ihr Ideen?

Vielen Dank und lg
Simon
 

kling1

Commander
Dabei seit
Aug. 2008
Beiträge
2.331
das einzige was mir einfällt ist die create und edit forms zusammen zu fassen.. halt immer noch unterschiedliche views weil die form eine einen anderen endpoint hat aber die gemeinsamkeiten halt includen..

ansonsten kannst du noch sachen machen wie 1 endpoit für create und edit.. also statt auf store und edit einfach per post auf eine save methode deines controllers.. aber ist nicht sonn der sache weil die action dann 2 sachen macht und auch dicker wird..
 

berto

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Juni 2011
Beiträge
340
hmm ok danke, ja das hab ich mir auch schon überlegt. mir ist es jetzt aber eher darum gegangen die workflows für models zusammenzufassen, also wenn es eine Möglichkeit gebe ohne des ding irrsinnig aufzublasen alle (oder zumindest einige) der create Methoden zusammenzufassen und das gleiche dann für edit/delete usw.

EDIT:
weil bis jetzt ist es so: ich habs gemacht, dann ist der wunsch gekommen doch dies und jenes auch noch zu integrieren... Dann hab ich mir halt überlegt, wie das ins Datenmodel passt, habs geändert und dann wieder die gleichen x schritte (show/create/delete/edit) für die neuen Models zu machen.
 

andy_m4

Commander
Dabei seit
Aug. 2015
Beiträge
2.785
Ich habe schon einiges mit PHP realisiert
Programmieren mit PHP ist so ähnlich wie Wein ausm TetraPak. :)


Da Copy&paste ja bekanntlichermaßen nicht das Gelbe vom Ei ist, bin ich ins Grübeln gekommen, ob das schon so toll ist, was ich da mache, aber mir ist noch kein sinnvoller anderer Ansatz eingefallen.
Wie ist es mit typischen Lösungen um Code-Duplikate zu vermeiden, wie Funktionen? Von mir aus auch im objektorientiertem Kleid, wenn es sich anbietet.
 

berto

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Juni 2011
Beiträge
340
Naja so heftig wie mit dem tetrapak würd ich's jetzt vielleicht nicht formulieren ;-)

ja an das hab ich auch schon gedacht, aber es geht dabei ja vor allem um ähnliche Funktionen und views, da denke ich nicht, dass ich viel mit Funktionen ersetzen kann. Was meinst du mit dem "objektorientierten Kleid"?
 

andy_m4

Commander
Dabei seit
Aug. 2015
Beiträge
2.785
Naja so heftig wie mit dem tetrapak würd ich's jetzt vielleicht nicht formulieren ;-)
Stimmt. Wäre unfair gegenüber dem Tütenwein. :-)

ja an das hab ich auch schon gedacht, aber es geht dabei ja vor allem um ähnliche Funktionen und views, da denke ich nicht, dass ich viel mit Funktionen ersetzen kann. Was meinst du mit dem "objektorientierten Kleid"?
Naja. Ich bin jetzt kein Kenner von Laravel und überhaupt tue ich mich ohne konkreten Code immer schwer konkrete Hinweise zu geben.
 
Top