(Anmerkung: thesetwo Fragen sind ähnlich, aber präziser zu ASP.Net)Was ist der richtige Ort für die Validierung von Eingabedaten?
einen typischen Web-App mit einem Rich-Client-Betrachten (es ist Flex in meinem Fall), in dem Sie eine Form haben, zugrunde liegt ein Client-Logik, die die Eingabe des Formulars einem Datenmodell zuordnet, eine Möglichkeit, diese Objekte an eine Serverlogik zu übertragen, die sie normalerweise in einer Datenbank ablegt.
Wo sollte ich - allgemein gesprochen - die Validierungslogik setzen, d. e. das korrekte Format von E-Mail-Adressen, Nummern usw. sicherstellen?
- So früh wie möglich. Rich-Client-Frameworks wie Flex bieten eine integrierte Validator-Logik, mit der Sie direkt bei der Formularübermittlung validieren können, noch bevor sie Ihr Datenmodell erreicht. Dies ist nett und reaktionsschnell, aber wenn Sie etwas Erweiterbares entwickeln und die Validierung vor Programmierfehlern späterer Mitwirkender schützen soll, wird dies nicht verstanden.
- Im Datenmodell auf der Clientseite. Da dies die "offizielle" Darstellung Ihrer Daten ist und Sie bereits über Datentypen und Getter/Setter verfügen, erfasst diese Validierung Benutzerfehler und Programmierfehler von Personen, die Ihr System erweitern.
- Nach dem Empfang der Daten auf dem Server. Dies bietet zusätzlichen Schutz vor defekten oder böswilligen Clients, die später dem System beitreten können. Dies gibt Ihnen auch in einem Multi-Client-Szenario eine autorisierende Quelle der Validierung.
- Kurz bevor Sie die Daten im Backend speichern. Dies schließt den Schutz vor allen Fehlern ein, die irgendwo in der Kette gemacht werden (außer der Speicherlogik selbst), aber es kann erfordern, dass der Fehler den ganzen Weg zurückgespuckt wird.
Ich bin irgendwie in Richtung auf die Verwendung von 2 und 4, wie ich eine Anwendung erstellen, die verschiedene Punkte der potenziellen Erweiterung von Dritten hat. Die Verwendung von 2 zusätzlich zu 4 mag überflüssig erscheinen, aber ich denke, dass es die Client-App benutzerfreundlicher macht, da es keinen Roundtrip zum Server erfordert, um zu sehen, ob die Daten in Ordnung sind. Was ist dein Ansatz?
ziemlich perfekt :) Es erfüllt alle Web-Entwickler Teile meines Gehirns: D – jrharshath
Danke für den Kommentar :) – coobird