Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Language agnostic 重构非常复杂的代码_Language Agnostic_Refactoring - Fatal编程技术网

Language agnostic 重构非常复杂的代码

Language agnostic 重构非常复杂的代码,language-agnostic,refactoring,Language Agnostic,Refactoring,我现在必须重构一些代码,这基本上是一种方法(大约1000行代码),它进行了大量计算,并且有很多变量。我不知道如何重构它。 代码像什么 ... calculateSth(param1,param2,param3,param4,param5, params6); calculateSthElse(param1,param2,param3); ... 好看吗 我可以引入参数对象,但这些对象只能用作某些方法的参数,所以看起来是这样的 ... calculateSth(calculateSthObjec

我现在必须重构一些代码,这基本上是一种方法(大约1000行代码),它进行了大量计算,并且有很多变量。我不知道如何重构它。 代码像什么

...
calculateSth(param1,param2,param3,param4,param5, params6);
calculateSthElse(param1,param2,param3);
...
好看吗

我可以引入参数对象,但这些对象只能用作某些方法的参数,所以看起来是这样的

...
calculateSth(calculateSthObject);
calculateSthElse(calculateSthElseObject);
...
或者我可以把所有的东西都放在一个大物体里

...
calculateSth(calculateObject);
calculateSthElse(calculateObject);
...
然而,在这个解决方案中,我必须在方法开始时提取私有方法中所需的所有内容,并在最后设置,并且要找出私有方法中使用的值将非常困难。大约一半的变量需要作为输出

你会怎么做

p.S.计算并非微不足道,因此

calculateObject.setMagicValue4((calculateObject.getMagicValue() * calculateObject.getMagicValue2() / calculateObject.getMagicValue3()) 

这只会使它很难阅读。

我会花任何必要的时间来确保我了解算法的实际功能。然后,如果我可以选择的话,我会尝试找出如何真正解决这个问题,这可能涉及到许多类和概念。然后,我会尝试将这些概念一个接一个地介绍到现有代码中,确保在介绍每个概念的过程中获得适当的测试覆盖率。

我会花费任何必要的时间来确保我了解算法的实际功能。然后,如果我可以选择的话,我会尝试找出如何真正解决这个问题,这可能涉及到许多类和概念。然后,我会尝试将这些概念一个接一个地介绍到现有代码中,确保在介绍每个概念时获得适当的测试覆盖率