Cita:
Iniciado por enriqueplace Cada capa debe tener su propia validación, independientemente de la otra capa, pero muchas veces el tema es qué validar ...
Muy buen punto.
Cita:
Iniciado por enriqueplace ...
- Pides el email en el form y luego se lo pasa al modelo y la persistencia te lo rebota por no estar bien formado (la validación la haces en una capa)
- Pides el email en el form y lo validas ahí para no tener que pasar a la persistencia, pero en caso que algo falle en la interfaz esto es controlado también a la hora de persistir.
- El punto 2 también es útil cuando tienes varias capas de presentación, o cuando decides cambiar la presentación por otra, y así logras que tu sistema se mantenga consistente.
...
El re-utilizar los mismos componentes el proceso de validación se simplifica y se obtiene consistencia y escalabilidad. Y al final no parece tan redundante.
Por ejemplo, para seleccionar 1 de 7 opciones únicas (podría ser 1 día de la semana), en la base de datos se puede crear un rango de 1..7 en ese campo, pero en la vista se muestran 7 imágenes diferentes, que al seleccionar 1 cambia de color.
Al reutilizar el componente no hay que crear la lógica en cada vista, y al mostrar las 7 imágenes la validación no parece redundante, sino mas bien un valor agregado al presentarlo de una forma agradable y fácil de usar.
Es escalable porque se puede modificar el control para que acepte 8 días (es solamente un ejemplo irreal) y cambia automáticamente en todas las vistas con pequeños ajustes.
Y la misma lógica se podría aplicar a número enteros, fechas, listas, arboles, etc., re-utilizando componentes.
En el caso del e-mail si parece horriblemente redundante, pero creo que no hay muchos casos de ese tipo.
Saludos,