各种语言的样式指南建议最大行长度范围为80-100个字符,以便于阅读和理解。
我的问题是,使用制表符进行缩进的人如何符合行长度限制?因为,如果在编辑器中将标签的长度设置为2,则在其他人的编辑器中,相同的代码可以超过 80个字符,标签长度设置为3/4/6 / 8。
有人建议我精神上看我的标签长度为8个字符。这不现实,不会让我专注于编程,因为我必须检查每一行。
那么,你如何(如果你只在你的代码中使用选项卡)这样做呢?
答案 0 :(得分:3)
几乎所有语言都有Tab大小的约定。大多数项目都有一个标签大小的约定,通常(但并不总是)与语言的标签大小相同。
例如,Ruby是2,Python& PHP为4,C为8等。
如果没有明显的项目标签大小,坚持使用项目的标签长度或语言标签大小是迄今为止最明智的事情,因为这几乎所有人都会使用,除非是少数。
设置不同标签大小的能力可能是使用标签而不是空格的最大优势,如果用户想要偏离标准,那很好,但是也没有合理的方法在每种可能的情况下都符合最大线路长度。
您可以将其与大多数网站进行比较;它们设计为100%缩放级别。放大或改变字体大小几乎总是有效,但一些小的东西可能会破坏。实际上不可能为每个可能的缩放级别设计&字体大小,因此人工制品被接受。
如果您想确保代码符合 行长和标签大小,您应该使用空格,而不是"真实&#34 ;标签。就个人而言,我觉得这些准则正是如此:准则;而不是严格的规则,所以我认为这不重要。但是,其他人的意见在这个问题上有所不同。
就我个人而言,我喜欢标签,原因有很多,现在并不重要,但只有暂时偏离标准,通常是在编辑重型嵌套代码时我希望更清晰一些阻止我编辑。
答案 1 :(得分:2)
您可能经常不会写很长的行,所以您可能不会经常重新格式化代码。
因此,您可以使用一种方法,定期检查文件是否合规,并修复任何不合适的内容(例如,您可以在将文件提交到代码审查之前执行此操作)。
这是一个简单的Python脚本,它在stdin上获取一个文件并告诉你哪些行超过80个字符:
TABSIZE = 8
MAXLENGTH = 80
for i, line in enumerate(sys.stdin):
if len(line.rstrip('\n').replace('\t', ' '*TABSIZE)) > MAXLENGTH:
print "%d: line exceeds %d characters" % (i+1, MAXLENGTH)
您可以通过各种方式对其进行扩展:使用文件名/目录并自动扫描其中的所有内容,使标签大小或长度可配置等。
答案 2 :(得分:0)
某些编辑器可以设置为插入多个等于标签长度的空格而不是实际标签(Visual Studio默认启用此选项)。这允许您在编写代码时使用tab键缩进,但也保证在其他人读取代码时代码看起来相同,无论它们的选项卡长度如何。
如果读者还需要编辑代码,事情会变得有点棘手,就像几乎所有开发团队的情况一样。团队通常会将标签与空格和标签长度作为编码标准的一部分。每个开发人员都负责使他们自己的提交与标准一致,通常是通过设置他们的环境来自动执行此操作。可以恢复不符合标准的更改,开发人员可以在集成之前修复它们。
答案 3 :(得分:0)
如果您要获得每个人都必须遵循的样式指南,那么确保所有代码符合列宽最大值100
的一种方法是在检查时使用代码格式化程序,例如Clang Format例如,它们包含option来设置ColumnLimit
:
列限制。
列限制为0表示没有列限制。在这种情况下,clang格式将尊重输入的换行决策 在陈述中,除非它们与其他规则相抵触。
一旦您的团队同意这些设置,那么没有人必须考虑这些关于签入代码格式的详细信息将自动完成。这需要一定程度的妥协,但一旦到位,你就会很快停止思考,而只是担心代码而不是格式化。
答案 4 :(得分:0)
如果要确保不超出团队/项目编码标准中规定的限制,那么对于标签宽度也没有teamp /项目标准是不合理的。现代编辑器允许您设置标签宽度,因此,如果您的团队决定,并且每个人都将其编辑器设置为该标签宽度,那么每个人都将位于同一页面上。
想想如果一行对您来说长100个字符,并且有人走过去说结束了,因为其编辑器设置为8,而您的是2,则可以告诉他们制表符宽度错误如果他们告诉您您的制表符宽度错误(如果没有达成共识的标准),那么他们会尽可能地有效。如果没有,那8宽度的家伙在写100个字符的行时会错,而另一个喜欢10宽度的制表符的开发人员会抱怨。
选项卡本来就没有定义的宽度,这取决于团队选择一个选项卡还是不参与非理性的争论。
也就是说,空格是shown to be correlated with higher income,所以,你知道...;)