0

我目前正在将对象转换为 csv 并再次转换回来。我已经到了需要考虑版本控制如何工作的地步。我正在使用的当前库是 CsvHelper

例如,在我们的业务领域中,产品发布后需求发生变化是很常见的,因此最初存储 GPS LAT 和 GPS LONG 的对象可以在生产使用一段时间后扩展,以将 NumberOfSatellites 作为人为的案例。

这意味着有最初以第一种格式写出的文件;纬度,只要 V1,现在是带有 NumberOfSatellites 的 V2。理想情况下,这个原始数据应该能够被 V2 对象读取以进行测试和向后兼容。

同样,如果不再需要某个属性,例如 V3 中的 NumberOfSatellites ,则 V1 和 V2 生成的数据应该仍然有效,还是应该无效?

最后,如果更改财产名称会发生​​什么,例如 GPS LAT 重命名为 LATITUDE。V1、V2 和 V3 中的数据应该仍然可以读取。

其他人如何解决这些问题?还是我对 CSV 格式的期望过高

4

1 回答 1

1

这是任何存储数据和数据更改的问题。

您需要做的是为每个版本的数据设置不同版本的类。然后,您需要在每个版本之间有升级代码。如果版本 1 上有某些东西,而当前版本是 3,那么您需要通过从 1->2 升级到 2->3 的代码来运行它。

为了保持井井有条,您可以让您的正常课程始终保持最新状态。然后,您可以拥有一个包含每个版本的文件夹的升级文件夹。在那里,您可以拥有每个文件的旧版本,以及升级代码、csv 映射文件,以及与旧代码一起出现的任何其他内容。

于 2014-10-01T21:40:35.530 回答