Question

D'après mon expérience, essayer de s'assurer que les nouvelles versions d'une application conservent la compatibilité avec le stockage des données à partir des versions précédentes peuvent souvent être un processus douloureux.

Ce que je fais actuellement, c'est enregistrer un numéro de version pour chaque `` unité '' de données (que ce soit un fichier, une ligne / table de base de données ou autre) et de vous assurer que le numéro de version est mis à jour chaque fois que les données changent d'une manière ou d'une autre. Je crée également des méthodes pour convertir de V1 en V2, V2 à V3, etc. De cette façon, si je suis à V7 et que je rencontre un fichier V3, je peux faire v3-> v4-> v5-> v6-> v7.

Jusqu'à présent, cette approche semble bien fonctionner, mais je n'ai pas encore eu à en utiliser largement, donc il peut y avoir des problèmes imprévus. Je crains également que si les objets que je charge changent considérablement, je devrai soit garder autour des anciennes versions des classes ou faire face à la mise à jour de toutes mes méthodes de conversion pour gérer la nouvelle définition de classe.

Mon approche est-elle sonore? Y a-t-il d'autres / meilleures approches que je pourrais utiliser? Y a-t-il des modèles de conception applicables à ce problème?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top