将旧数据转换为json格式

时间:2012-02-19 02:50:45

标签: java refactoring legacy-code

我正在处理一些遗留代码,其中我使用列值及其早期历史记录进行一些比较并突出显示差异。但是,该列以仲裁分隔的方式存储,并且围绕比较的代码很好,很难理解。

我最初的想法是重构代码 - 但是当我后来想到它时,我想为什么不修复问题的原始来源,即本案例中的数据。我对表结构有一些限制,因此不能将它从单个列转换为多列数据。

有了这个,我想是否值得将这个任意分隔的数据转换成像json这样的标准化格式。我的方法是将此数据导出到某个文件并应用一些正则表达式并将此数据转换为json格式,然后重新导入它。

如果我正在以正确的方式解决这个问题并且是否有其他想法我应该考虑,我想与这个小组核实。 JSON首先是正确的格式吗?我想知道你是如何解决类似问题的。谢谢!

1 个答案:

答案 0 :(得分:0)

  

但是,该列以任意分隔的方式存储   围绕比较的代码很好,很难理解。

所以似乎问题在于添加或修改功能的代码的可维护性/可演化性。

  

我最初的想法是重构代码 - 但是当我后来想到的时候   关于它,我想为什么不修复问题的原始来源   是这种情况下的数据。

我的意见是:为什么?我认为你最初的想法是正确的。你应该重构(即“...重构现有的代码体系,改变其内部结构而不改变其外部行为”)以获得你想要的东西。如果您更改数据格式,则无论如何都可能在新的冷却器数据格式之上使用凌乱的代码。

换句话说,你可以拥有所有的组合,因为它们并不是严格相关的:你可以拥有一个很酷的数据格式,包含一个混乱的代码或一个很棒的代码,你可以拥有一个丑陋的数据格式和一个梦幻般的代码或者凌乱的代码。

似乎你处于最后一种情况,但是从这种情况转变为:酷数据格式+凌乱的代码然后冷却数据格式+奇妙的代码不那么简单:奇妙的代码+丑陋的数据格式然后很酷的数据格式+奇妙的代码(可选)。

所以我的意见是以直截了当的方式指出你的目标:

1)针对当前功能编写测试(如果没有)并使用当前代码验证它们(重构的第一步)

2)更改由1中写的测试驱动的代码

3)如果您仍然需要,请更改测试指导的数据格式

此致