Optimization 如何优化这种代码?

Optimization 如何优化这种代码?,optimization,Optimization,今天早些时候,我看到我的一个朋友在谷歌阅读器上分享了一篇帖子(太长了,在这个问题的末尾) 我个人认为这段代码是可以接受的。但是我想知道可以做些什么来优化这种代码 到目前为止,我想到的是有一个建设者来完成工作。但是,它没有多大帮助,尤其是当所有字段都是必填字段时 有什么见解吗 编辑: 说到优化,我的意思是,当其他程序员看到这段代码时,他们不会说WTF 代码:不要试图理解字段的名称。它们是非英语的缩写 public CktsQfxxHsh(String hjBh, String fqfZt, St

今天早些时候,我看到我的一个朋友在谷歌阅读器上分享了一篇帖子(太长了,在这个问题的末尾)

我个人认为这段代码是可以接受的。但是我想知道可以做些什么来优化这种代码

到目前为止,我想到的是有一个建设者来完成工作。但是,它没有多大帮助,尤其是当所有字段都是必填字段时

有什么见解吗

编辑:

说到优化,我的意思是,当其他程序员看到这段代码时,他们不会说WTF



代码:不要试图理解字段的名称。它们是非英语的缩写

public CktsQfxxHsh(String hjBh, String fqfZt, String jsfZt, String qcrDm, String qcrXm, String fhrDm, String fhrXm, String qfrDm, String qfrXm, String nsrsbhGf, String nsrxmGf, String nsrsbhXf, String nsrxmXf, String swjgDmJsf, String swjgDmFqf, String swjgJcFqf, String swjgJcJsf, String bfpryDm, String bspryMc, String lxrXm, String lxrDh, String lxrDz, String lxrYb, Date sjSc, Date sjFs, Date sjTjfh, Date sjTjqf, String hjLx, BigDecimal fpfs, BigDecimal jeHj, BigDecimal seHj, BigDecimal jshjHj, String qtqk, BigDecimal tseY, BigDecimal tseZbbl, String fhsm, Date fuhjzrq, Date rqTk, Date sjFuhfs, String dyfhBh, String yqfhBz, String fhBz, String cbBz, Date sjCbhfs) { this.hjBh = hjBh; this.fqfZt = fqfZt; this.jsfZt = jsfZt; this.qcrDm = qcrDm; this.qcrXm = qcrXm; this.fhrDm = fhrDm; this.fhrXm = fhrXm; this.qfrDm = qfrDm; this.qfrXm = qfrXm; this.nsrsbhGf = nsrsbhGf; this.nsrxmGf = nsrxmGf; this.nsrsbhXf = nsrsbhXf; this.nsrxmXf = nsrxmXf; this.swjgDmJsf = swjgDmJsf; this.swjgDmFqf = swjgDmFqf; this.swjgJcFqf = swjgJcFqf; this.swjgJcJsf = swjgJcJsf; this.bfpryDm = bfpryDm; this.bspryMc = bspryMc; this.lxrXm = lxrXm; this.lxrDh = lxrDh; this.lxrDz = lxrDz; this.lxrYb = lxrYb; this.sjSc = sjSc; this.sjFs = sjFs; this.sjTjfh = sjTjfh; this.sjTjqf = sjTjqf; this.hjLx = hjLx; this.fpfs = fpfs; this.jeHj = jeHj; this.seHj = seHj; this.jshjHj = jshjHj; this.qtqk = qtqk; this.tseY = tseY; this.tseZbbl = tseZbbl; this.fhsm = fhsm; this.fuhjzrq = fuhjzrq; this.sjFuhfs = sjFuhfs; this.dyfhBh = dyfhBh; this.yqfhBz = yqfhBz; this.fhBz = fhBz; this.cbBz = cbBz; this.sjCbhfs = sjCbhfs; } 公共CktsQfxxHsh(字符串hjBh、字符串fqfZt、字符串jsfZt、字符串qcrDm、, 字符串qcrXm、字符串fhrDm、字符串fhrXm、字符串qfrDm、, 字符串qfrXm、字符串nsrsbhGf、字符串nsrxmGf、字符串nsrsbhXf、, 字符串nsrxmXf、字符串swjgDmJsf、字符串swjgDmFqf、, 字符串swjgJcFqf、字符串swjgJcJsf、字符串bfpryDm、字符串bspryMc、, 字符串lxrXm、字符串lxrDh、字符串lxrDz、字符串lxrYb、日期sjSc、, 日期sjFs、日期sjTjfh、日期sjTjqf、字符串hjLx、大十进制fpfs、, BigDecimal jeHj、BigDecimal seHj、BigDecimal jshjHj、字符串qtqk、, BigDecimal tseY,BigDecimal tseZbbl,字符串fhsm,日期fuhjzrq, 日期rqTk、日期sjFuhfs、字符串dyfhBh、字符串yqfhBz、字符串fhBz、, 字符串cbBz,日期sjCbhfs){ this.hjBh=hjBh; this.fqfZt=fqfZt; this.jsfZt=jsfZt; this.qcrDm=qcrDm; this.qcrXm=qcrXm; this.fhrDm=fhrDm; this.fhrXm=fhrXm; this.qfrDm=qfrDm; this.qfrXm=qfrXm; this.nsrsbhGf=nsrsbhGf; this.nsrxmGf=nsrxmGf; this.nsrsbhXf=nsrsbhXf; this.nsrxmXf=nsrxmXf; this.swjgDmJsf=swjgDmJsf; this.swjgDmFqf=swjgDmFqf; this.swjgJcFqf=swjgJcFqf; this.swjgJcJsf=swjgJcJsf; this.bfpryDm=bfpryDm; this.bspryMc=bspryMc; this.lxrXm=lxrXm; this.lxrDh=lxrDh; this.lxrDz=lxrDz; this.lxrYb=lxrYb; this.sjSc=sjSc; this.sjFs=sjFs; this.sjTjfh=sjTjfh; this.sjTjqf=sjTjqf; this.hjLx=hjLx; this.fpfs=fpfs; this.jeHj=jeHj; this.seHj=seHj; this.jshj=jshj; this.qtqk=qtqk; this.tseY=tseY; this.tseZbbl=tseZbbl; this.fhsm=fhsm; this.fuhjzrq=fuhjzrq; this.sjFuhfs=sjFuhfs; this.dyfhBh=dyfhBh; 这是。yqfhBz=yqfhBz; this.fhBz=fhBz; this.cbBz=cbBz; this.sjCbhfs=sjCbhfs; }
如果任何参数通常来自可以将值分组在一起的对象,或者可以合理地组合成将值分组在一起的对象,则可以通过传递这些对象而不是传递单个值来缩短代码。但我认为,如果其他对象已经存在,或者可以在其他地方更优化地使用,这只会减少编码。

如果任何参数通常来自可以将值分组在一起的对象,或者可以合理地组合成将值分组在一起的对象,您可以通过传递这些对象而不是传递单个值来缩短代码。但我认为,如果这些其他对象已经存在,或者可以在其他地方更好地使用,那么这只会减少编码。

我怀疑您使用的是Java语言。在这种情况下,如果
CktsQfxxHsh()
是构造函数,而arguments是标记为
final
的字段名称,则可以使用以下命令自动生成构造函数:


我怀疑你使用Java语言。在这种情况下,如果
CktsQfxxHsh()
是构造函数,而arguments是标记为
final
的字段名称,则可以使用以下命令自动生成构造函数:


忽略变量名(正如我认为您所要求的),唯一的另一个问题是它们太多了。这个构造函数的调用者(我假设Java)是否真的将所有这些值作为离散变量存在,或者它们的组是否构成子对象?看起来变量名有一个系统结构。代码可以通过在对象模型中反映该结构而不是依赖命名约定来改进

忽略变量名(正如我认为您所要求的),唯一的另一个问题是它们太多了。这个构造函数的调用者(我假设Java)是否真的将所有这些值作为离散变量存在,或者它们的组是否构成子对象?看起来变量名有一个系统结构。代码可以通过在对象模型中反映该结构而不是依赖命名约定来改进

第一个“优化”似乎是选择更合适的变量/参数名称。对我来说,这看起来像是故意混淆的练习……更重要的是,你所说的“优化”是什么意思?你想让它跑得更快吗?你想说得更清楚些吗?你想让它需要更少的代码行吗?@Cody Gray,是的。同意。但我不得不说,这可能会带来大量输入的痛苦。“代码:不要试图理解字段的名称。它们是非英语的缩写。”我希望缩写对某人有意义。我想知道这对可维护性意味着什么。@pavium,作为母语人士,它(在某种程度上)是可以推断出来的。第一个“优化”似乎是选择更合适的变量/参数名称。对我来说,这看起来像是故意混淆的练习……更重要的是,你所说的“优化”是什么意思?你想让它跑得更快吗?你想说得更清楚些吗?你想让它需要更少的代码行吗?@Cody Gray,是的。同意。但我不得不说,这可能会带来大量输入的痛苦。“代码:不要试图理解字段的名称。它们是非英语的缩写。”我希望
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
public class CktsQfxxHsh {
    final String hjBh;
    final String fqfZt;
    ...
}