Ich muss ungefähr 20 POST-Parameter verarbeiten, und ich bin nicht sicher, wo das zu tun ist.Sollte ich auf POST-Parameter im Modell zugreifen oder als Methode Argumente vom Controller übergeben?
Ich könnte jedes als ein Argument der Methode auf dem Modell definieren und sie vom Controller übergeben, wenn die Methode aufgerufen wird. Dies würde zu einer Menge Arbeit führen und den Funktionsaufruf aufgrund der Anzahl der Argumente weniger lesbar machen.
Oder ich könnte die Methode auf dem Modell aufrufen, und nur direkt auf die Parameter zugreifen.
Die Übergabe der Parameter als Argumente würde mir mehr Kontrolle darüber geben, auf welche Parameter die Funktion zugreift, und die Dokumentation wäre selbsterklärender. Wenn später jedoch neue Parameter hinzugefügt wurden, müssten sie am Ende des Methodenaufrufs hinzugefügt werden, um nicht jeden vorhandenen Aufruf zu unterbrechen. Ich stelle mir vor, dass dies ziemlich verwirrend werden würde, wenn es ein paar Mal passiert, da die Argumente nicht logisch gruppiert werden können.
Wenn ich auf den Parameter im Modell zugreife, müssen keine Parameter vom Controller an das Modell übergeben werden, wodurch die Methode terser aufgerufen wird. Aber ich habe keine Kontrolle über die Parameter, auf die zugegriffen wird, da sie einfach und ohne Einschränkungen hinzugefügt oder entfernt werden können. Dies würde von den anderen Entwicklern eine größere Disziplin erfordern, und ich möchte mich nicht darauf verlassen, denn früher oder später ist jemand verpflichtet, "einfach (fügen | ändern | fixieren) das wirklich schnell".
Ich bin nicht sicher, welcher Weg zu gehen. Ich tendiere dazu, einfach alles im Modell zu machen, da es schneller zu schreiben ist, einfacher zu warten scheint (kein Argument Chaos) und konzeptionell besser in meine Sicht auf ein Modell passt. Auf der anderen Seite bin ich nicht sicher, ob meine Ansicht eines Modells korrekt ist, und ob es im Chaos endet, wenn ich auf die anderen Entwickler angewiesen bin, die Dokumentation nach jeder Änderung immer zu aktualisieren.
Also, was soll ich tun?
wählte ich keine Antwort auf meine Frage zu akzeptieren, da es keine klare Antwort. Im Allgemeinen würde ich Ignas und Lucas 'Ansatz folgen, da die Daten besser eingeschränkt sind. Für diesen einen Fall in unserer Anwendung paßt Karims Antwort besser. – Thomas