gpt4 book ai didi

language-agnostic - 不愿意将样板代码视为主要问题?为什么?对策?

转载 作者:行者123 更新时间:2023-12-04 08:59:38 24 4
gpt4 key购买 nike

几乎在我工作的每一个地方,我都遇到了很多人,他们并不关心他们产生了大量的样板代码。

对我来说,这是有史以来最糟糕的事情之一,它会导致错误,很无聊并且会增加噪音。

最糟糕的例子甚至可能是微软不愿意为这个烦人的“INotifyPropertyChanged”提供更好的语法 - 东西。您不能使用自动生成的属性,您必须创建一个很大的冗余(在调用“OnPropertyChanged”或调用任何您的 raiser 方法时复制属性名称)。

有些人甚至接受许多编程语言中的大多数程序都包含大部分相同的重复代码(噪音),而不是有趣的东西(信号)。请参阅 MSDN - 示例,例如,到处都是不需要的重复代码(可怕的“INotifyPropertyChanged” - 破坏所有流程的模式只是冰山一角)。

然而,当我提出这个问题并提出像 AOP (PostSharp.NET) 或使用委托(delegate)(对于非 C# 人员:匿名函数,通常使用 lambda 运算符实现)这样的解决方案时,我得到的只是“我们不在乎”。

这里还有其他人对样板代码引入的大量噪音感到困扰,并且谁想考虑将解决方案推向样板问题的方法?

最佳答案

对于它的值(value),我完全站在你这边。

样板人认为重复的、冗余的代码是“自动的”或“一致的”,因此不会增加代码的复杂性。通常,当一种语言迫使开发人员创建样板文件时,行业会创建 IDE 和其他拐杖来自动化该过程。然后,当生成该样板代码的表观成本接近于零时,人们认为它不需要任何成本。

他们错了:样板代码导致代码量大,任何维护代码的人都必须挖掘不相关的代码以获取重要部分。此外,由于自动生成的代码可以而且经常被编辑,它可以隐藏由拼写错误、不完整的重命名或其他事故引入的错误。样板代码的成本不在于其创建,而在于其维护——许多项目试图完全忽略这一点。

在 80 年代,我看到贸易杂志上贴满了 C++ 内存泄漏调试器的广告,这对我来说是一个明显的迹象,即 C++ 中的内存管理严重受损。现在,在 Java 和 C# 附近,我看到代码生成辅助的激增,这向我表明,这些语言存在可以在其他地方更好地解决的问题。

Scala 有它自己的问题,但我喜欢他们用属性和自动初始化构造函数所做的事情。

关于language-agnostic - 不愿意将样板代码视为主要问题?为什么?对策?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3235197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com