Версии объектов, записанных в CSV

Вопрос:

В настоящее время я работаю над преобразованием объектов в csv и обратно. Я подошел к тому моменту, когда мне нужно было рассмотреть, как будет работать версия. Текущей библиотекой, которую я использую, является CsvHelper

Например, в нашей бизнес-области часто возникает потребность в изменении после выпуска продукта, поэтому изначально объект, хранящий GPS LAT и GPS LONG, может быть расширен после периода использования в качестве использования в качестве изобретательного случая NumberOfSatellites.

Это означает, что вначале есть файлы, выписанные с первого формата; lat, длиннее V1 и теперь V2 с NumberOfSatellites. В идеале, эти исходные данные должны быть прочитаны объектом V2 для тестирования и обратной совместимости.

Опять же, если свойство больше не требуется, например NumberOfSatellites в V3, данные, созданные V1 и V2, должны быть действительны или не должны быть?

Наконец, что происходит в случае смены имени собственности, например, GPS LAT переименовывается в LATITUDE. Данные, хранящиеся в V1, V2 и V3, мы надеемся, что все еще будут действительными для чтения.

Как другие сталкиваются с этими проблемами? Или я ожидаю слишком многого из формата CSV

Лучший ответ:

Это проблема с любыми сохраненными данными и изменением данных.

Вам нужно иметь разные версии ваших классов для каждой версии данных. Затем вам нужно иметь код обновления между каждой версией. Если что-то находится на версии 1, а текущая версия – 3, вам нужно запустить ее через код, который обновляется с 1-> 2, а затем из 2-> 3.

Чтобы он был организован, вы можете иметь обычные классы, которые всегда актуальны. Затем вы можете иметь папку обновления, содержащую папки для каждой версии. Там вы можете иметь старые версии каждого файла вместе с кодом обновления и файлами сопоставления csv и все остальное, что было со старым кодом.

Оцените статью
TechArks.Ru
Добавить комментарий