Estoy 100% de acuerdo con el caso de que uno definitivamente debería usar validaciones de datos tanto del lado del cliente como del lado del servidor.
Sin embargo, en los marcos y entornos en los que he trabajado, los enfoques que he visto nunca han sido SECOS. La mayoría de las veces no hay un plan o patrón: las validaciones se escriben en la especificación del modelo y las validaciones se escriben en el formulario de la vista. (Nota: la mayor parte de mi experiencia de primera mano es con Rails, Sinatra y PHP con jQuery)
Reflexionando sobre ello, parece que no sería difícil crear un generador que, dado un conjunto de validaciones (por ejemplo, nombre del modelo, campo (s), condición), podría producir tanto el material necesario del lado del cliente como del lado del servidor. Alternativamente, dicha herramienta podría tomar las validaciones del lado del servidor (como el validates
código en un modelo ActiveRecord) y generar validaciones del lado del cliente (como los complementos jQuery, que luego se aplicarían al formulario.
Obviamente, lo anterior es solo una reflexión "oye, tuve esta idea", y no una propuesta formal. Este tipo de cosas seguramente es más difícil de lo que parecía cuando la idea me golpeó.
Eso me lleva a la pregunta: ¿cómo abordaría el diseño de una técnica de "escribir una vez, ejecutar en el servidor y el cliente" para la validación de datos?
Subtemas relacionados: ¿Existen herramientas como esa para marcos específicos o tecnologías cliente-servidor? ¿Cuáles son los principales problemas o desafíos al tratar de mantener solo un conjunto de validaciones?