With a preventative paradigm, most errors aren’t allowed into a system in the first place, just by the way the system is defined. With such an approach, the more reliable the system, the higher the productivity in its lifecycle.

Margaret Hamilton

JiiVal è un engine Java progettato per la validazione di input complessi.

  • Elimina il codice boilerplate condizionale tipico del linguaggio Java.
  • Sposta negli oggetti di mapping le condizioni di validità
  • Previene che gli errori entrino nel sistema, sollevando la Business Logic dal compito di validare i dati

Molti dei problemi del software provengono da input complessi, di scarsa qualità o da debiti tecnici ereditati da sistemi legacy. Spesso i dati di input sono interdipendenti e/o legati allo stato del sistema o della transazione: più servizi possono condividere le stesse strutture dati, ma con requisiti differenti e infine tipi di dato, vincoli e strutture possono essere imposti da enti o fornitori a cui è necessario adeguare il software.
Come conseguenza, la logica di business spesso viene complicata e diviene problematica per lo sviluppatore.

Formalizzare le regole a volte è impossibile, altre non è pratico:
XML prevede il DTD: un formato complesso ed esterno a Java.
In JSON non esiste alcun supporto simile al DTD.
Scrivendo un servizio REST in JAVA, però, qualsiasi formato di input o output viene mappato in classi POJO.

Con JiiVal, invece di dover scrivere classi apposite di validazione composte da catene if-else complesse, annidate e poco leggibili, o peggio di distribuire la logica di validazione “alla bisogna” nelle classi di Business Logic, è possibile utilizzare le JiiVal annotation direttamente negli attributi delle classi POJO.

In sostanza, l’engine eredita i modelli di validazione elementari di altre librerie (come Jackson) e li estende con un modello completo, ovvero con la possibilità di dichiarare direttamente negli oggetti di mapping i requisiti di cui il sistema necessita per processare un input sicuramente corretto.

JiiVal è progettato per coprire tutti i pattern di validazione più frequenti tramite la sua sintassi standard di dichiarazione delle regole.
I requisiti più particolari o complessi, che esulano da quelli presenti nelle assertion standard, possono essere risolti con oggetti Custom riconosciuti da JiiVal, con cui è possibile estendere le funzionalità della libreria laddove necessario.

Il paradigma “Validation First” offerto da JiiVal permette:

  • Architetture più semplici e maggior velocità di sviluppo, quindi risparmio di costi
  • Servizi più veloci a rifiutare input errati, quindi maggior velocità di risposta e risparmio di risorse computazionali
  • Maggiore velocità e minor complessità della Business Logic, quindi minore manutenzione e difettosità.

JiiVal si ispira ai capisaldi dell’ingegneria informatica per coniugare un’alta qualità del software col risparmio di risorse umane e computazionali.

Vuoi saperne di più?