Domanda

Nella mia esperienza, cercare di garantire che le nuove versioni di un'applicazione mantengano la compatibilità con l'archiviazione dei dati dalle versioni precedenti possono spesso essere un processo doloroso.

Quello che attualmente faccio è salvare un numero di versione per ogni "unità" di dati (che si tratti di un file, riga/tabella del database o qualsiasi altra cosa) e assicurarsi che il numero di versione venga aggiornato ogni volta che i dati cambiano in qualche modo. Creo anche metodi per convertire da V1 a V2, V2 a V3 e così via. In questo modo, se sono a V7 e incontro un file V3, posso fare V3-> V4-> V5-> V6-> V7.

Finora questo approccio sembra funzionare bene, ma non ho ancora dovuto usarlo ampiamente, quindi potrebbero esserci problemi non performanti. Sono anche preoccupato che se gli oggetti che sto caricando cambiano in modo significativo, dovrò tenere le vecchie versioni delle lezioni o il viso aggiornando tutti i miei metodi di conversione per gestire la nuova definizione della classe.

Il mio approccio è sano? Ci sono altri approcci migliori che potrei usare? Ci sono schemi di progettazione applicabili a questo problema?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top