更糟糕的做法是:更改函数中的复杂参数或允许文件增长到笨拙的大小

问题描述

我和我的同事不同意哪种较差的做法:允许.vue文件中的组件变得不可靠,或者通过将某些功能委托给助手类/文件来维持其大小/复杂度,即使这些功能会发生变异一个复杂的对象。

这是一个此类函数的示例:

updateObject(sourceObj) {
    this.destObj.field1 = sourceObj.field1;
    this.destObj.field2 = sourceObj.field2;
...
    this.destObj.field10 = sourceObj.field10;
}

我们有几个更新功能,并将添加更多。每一行包含大约10行代码,只需将字段从源对象复制到目标对象(我们将使用Object.assign(this.destObj,... sourceObj),但我们不希望复制sourceObj中的所有字段过度)。目标对象是数据对象。

在代码审查期间,我建议创建一个帮助文件,并将将数据从源对象传输到目标对象的任务委派给该帮助文件:

updateObject(sourceObj) {
  helper.updateObject(this.destObj,sourceObj);
}

...并且将逐个字段复制数据将在helper.updateObject()中完成。

任务的重点是简化组件。添加这些更新功能只会使其更加复杂,但是有必要考虑我们的情况。因此,我建议在一个单独的文件中创建它们。

我的同事反对,因为当复杂对象是函数参数时,对它们进行突变是不好的做法。我以前从未听过。当我问为什么时,他说这是因为它使调试变得更加困难(我想是因为您必须执行额外的功能)。考虑到允许文件变得笨拙也是一种不好的做法,并且考虑到该任务的整个目的是简化文件,因此我认为保持文件的简单性应该优先考虑。

还有一点,我们已经在函数中对目标对象进行了突变,但是该函数是一个事件处理程序,因此无论如何它都是一个入口点。

您认为更好的做法是什么:保持文件小而简单,或避免将复杂的参数突变为函数?另外,有没有人听说过避免对函数中的复杂参数进行变异的做法?

注意:我可以共享更多代码来解释为什么必须具有这些更新功能,但是回答这篇文章的问题并不必要。但是请问,我会添加它。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...