为什么变量中的数据类型是糟糕的编码风格?
本文关键字:编码 风格 变量 数据类型 为什么 | 更新日期: 2023-09-27 18:10:40
我在一个新的团队。我对他们的编码准则感到震惊。
的例子:
strName
iCount
structRectangle
listCustomers
retVal (for the return value... that is really biting me... how someone can do this)
它们要求将数据类型写在变量之前,并带参数,这样开发人员每次都可以知道变量是什么数据类型,而无需滚动到声明。
好吧,这是真的,但我的论点是,然后一个方法不应该超过30行(否则把代码放在另一个方法),这适合一个普通的24"屏幕…
但是我不完全相信,因为在。net中有像Action<T>, Dynamic, Func<T>
这样的东西。这迫使我也走同样的路,为一个委托做"actionCustomers",这个委托持有一个获取客户列表的方法。
我建议您采用与您一起编写代码的团队的编码风格。他们采用了自己的风格来处理自身的系统性问题。除非你有资格评判他们的代码(似乎你没有),或者你可以就代码风格向更高的权威提出上诉(从你的帖子来看似乎不太可能),那么,如果你想保住你的工作并证明你是一个团队成员,你需要遵守你被赋予的规则。
为什么变量中的数据类型是糟糕的编码风格?
它不是。它的一种相对古老的形式,称为Systems Hungarian Notation,它实际上对类型进行了编码,由于很多原因,包括冗余、不一致和可读性差,它受到了很多批评。但这不是你要面对的。有时我发现,当我还没有完全决定使用哪个容器(list, no, set, no, dict……)时,在对象名称中包含数据类型是很有帮助的。通常按这个顺序。)
这种编码风格在不使用IDE时非常有用。
我经常用notepad++打开旧的代码文件(只是为了阅读它并转换为更新的代码,不需要打开巨大的项目来阅读一个文件),没有这种编码风格,每次我看到一个变量,我必须在文档中搜索它的名字,只是为了找出它的类型。这大大影响了我的时间安排。
长话短说:你可能不喜欢老派的方法,但它们的存在是因为人们需要它们。你永远不会知道,如果有一天你希望它。将函数的类型编码到名称中(所谓的Hungarian)符号)是大脑受损的——编译器无论如何都能知道类型检查这些,只会让程序员感到困惑。
Linus Thorvalds, Linux内核编码风格
我真的很喜欢这句话