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

Language agnostic 不愿意将样板代码视为主要问题?为什么?对策?,language-agnostic,Language Agnostic,几乎在我工作的每一个地方,我都会遇到很多人,他们不在乎他们产生了大量的样板代码 对我来说,这是有史以来最糟糕的事情之一,它会导致错误,令人厌烦,还会增加噪音 最糟糕的例子可能是,微软甚至不愿意为这个令人讨厌的“INotifyPropertyChanged”东西提供更好的语法。您不能使用自动生成的属性,您必须创建一个大的冗余(复制调用“OnPropertyChanged”或调用raiser方法时的属性名称) 有些人甚至认为许多编程语言中的大多数程序都是由相同的重复代码(噪音)组成的,而不是有趣的东

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

对我来说,这是有史以来最糟糕的事情之一,它会导致错误,令人厌烦,还会增加噪音

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

有些人甚至认为许多编程语言中的大多数程序都是由相同的重复代码(噪音)组成的,而不是有趣的东西(信号)。参见MSDN-例如,到处都是不必要的重复代码(可怕的“INotifyPropertyChanged”模式破坏了所有流程,只是冰山一角)

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


这里还有谁被样板代码带来的大量噪音所困扰,谁想想想办法推动样板问题的解决方案呢?

杀了他们吧。不,真的,如果有人写样板代码却不想改进,我怀疑我们可以称他为专业人士。经常发生的情况是,管理层希望看到任务快速完成,唯一剩下的就是推出一些只写样板代码,让他们高兴。如果你的管理层鼓励这样的做法,那就换工作。

无论如何,我完全支持你

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

他们错了:样板代码会增加代码量,任何维护代码的人都必须挖掘不相关的代码,才能找到重要的部分。此外,由于自动生成的代码可以而且经常被编辑,因此它可以隐藏由打字错误、不完整的重命名或其他意外事件引起的错误。样板代码的成本不在于创建,而在于维护——许多项目试图完全忽略这一点

<80年代,我看到了贸易广告中为C++内存泄漏调试器贴上广告,这明显地表明C++中内存管理被严重破坏了。现在,在Java和C#附近,我看到了大量代码生成辅助,这向我表明,这些语言存在着其他地方可以更好地解决的问题


Scala也有自己的问题,但我喜欢他们在属性和自动初始化构造函数方面所做的工作。

确切地说,这就是我的感受。C#中的样板代码(我对它有一个不同的名字:“s***代码”,这是我在现实生活中如何称呼它)的数量有时是压倒性的…:-(没错。有时候,代码库最让人望而生畏的地方就是代码的数量。