Input Validierung

Hallo zusammen,

Ich habe eine Frage bzgl. der Validierung von Eingaben:
Angenommen meine Anwendung besteht aus zwei Schichten: einer IO-Schicht und einer Persistenzschicht mit einer Datenbank (oder Dateisystem).

Wenn ich nun von der IO-Schicht Eingaben entgegen nehme, habe ich grundsätzlich zwei Möglichkeiten die Eingabe zu validiern:

  1. direkt in der IO-Schicht
  2. erst kurz vor der Speicherung in der Persistenzschicht

Allerdings habe ich keine Ahnung welche Vor- oder Nachteile diese Varianten haben und welche ich am besten einsetzen soll.
Wäre nett, wenn mir jemand ein paar Entscheidungshilfen geben könnte.

Danke!

Hi,

am Besten in beiden Schichten. Wenn Du schon separierst, dann betrachte beide Schichten auch so, dass sie sich getrennt von einander ändern können.
Es kann also vorkommen, dass ein Wert in der IO Schicht gültig sein kann, durch eine Änderung in der Persistenzschicht aber nicht mehr gespeichert werden kann.
Umgekehrt kann beim Laden aus der Persistenzschicht ein für diese Schicht gültiger Wert geladen werden, aber durch eine Änderung in der IO Schicht nicht mehr weiter verarbeitet werden.
Jede Schicht benötigt also eine eigene Validierung, wenn man die Trennung in Schichten ernst nehmen will.

Generell kann man sagen, dass überall dort, wo Daten erzeugt werden, diese auch validiert werden müssen. Das gleiche gilt, wenn Daten von einer Komponente in eine andere wandern. Auch hier ist eine Validierung nötig.

Cheers,
Herb

Macht Sinn.
Danke!