Al giorno d'oggi, al pari di molte applicazioni web ricche basate su Javascript, ho implementato alcune complicate regole di convalida sul front-end. Le stesse regole sono presumibilmente ripetute esattamente sul backend Java ma trovo sempre piccole deviazioni.
Come credente del principio DRY, penso che si dovrebbe fare qualcosa per sistematicamente sistemarlo. Idealmente entrambi i lati dovrebbero eseguire lo stesso codice e utilizzare le stesse regole, ma poiché l'esecuzione di JavaScript sul back-end non è consentita, posso solo sperare di riutilizzare alcune regole di convalida metatefatto. Fortunatamente, ho trovato alcune librerie su GitHub che possono farlo per la convalida basata su annotazioni JSR-303. Tuttavia, è ancora necessaria molta riscrittura e refactoring.
D'altra parte, il numero di regole è limitato (< 80 in totale) e il codice corrente è chiaro e semplice da comprendere (solo un gruppo di istruzioni if
). L'utilizzo di un framework di convalida richiederebbe che tutti i validatori personalizzati fossero avvolti e nascosti dietro metadati generati non immediatamente visibili durante lo sviluppo, quindi carichi di ulteriore curva di apprendimento.
Sembra che il mio obiettivo di migliorare il codice danneggerà davvero la manutenibilità. Qual è l'esperienza delle persone su questo?