D/Phobos风格指南

sim*_*sjo 6 coding-style d phobos

我刚刚开始查看phobos源代码,它充斥着几种不同的样式并注释掉了代码.

网络方面的风格指南非常小,我只发现2006年的断链和2004年的另一个...

是否有更新,更全面的指南?

PS:本来要求在D.learn新闻组,但我没有得到任何答案,我想我可能会尝试在这里,即使它可能是一个在黑暗中拍摄

Jon*_*vis 5

无论哪种指南都已过时,不应再存在.我不相信有任何D风格指南被认为是有效的,我不认为Walter Bright,Andrei Alexandrescu等希望有一个.此外,我记得,在C++编码标准:101规则,指南和最佳实践,Herb Sutter和Andrei说风格指南是一个坏主意(或者至少是那些非常具体的主题),但是我必须拿出这本书来确定他们所说的内容.所以我很怀疑Phobos(Andrei负责)会有任何风格指南; 我当然不知道.可能存在一些格式化代码进入Phobos的指导原则(比如使代码看起来与模块的其余部分类似或者某些类似),但像Andrei或其他Phobos开发人员之类的人必须回答这个问题.当然,有大约15个不同的开发人员在Phobos上工作,如果没有强制样式指南,你必然会在代码中获得几种不同的样式.

所以,我不相信D或Phobos确实存在任何推荐的编码风格.据我了解,D背后的主要人物并不特别赞成风格指南,他们当然没有推动风格指南.所以,现在还没有一个,我不希望将来有一个.

编辑:好的,我仔细查看了Herb Sutter和Anderi Alexandrescu在C++编码标准中所说的内容:101规则,指南和最佳实践.他们反对编码标准并不是因为他们反对特别严格的执行个人品味或过时做法的标准.我不会在这里引用整个事情(这是一本好书,你应该把它拿起来),但这里有一些关键点.

  • 不要指定缩进多少,而是缩进以显示结构.
  • 不强制执行特定的行长度,但确保行长度可读.
  • 不要过度分割命名,但要遵循一致的命名约定.
  • 不要预先评论样式(除非工具将某些样式提取到文档中),但是要写出有用的注释.

他们给出的一些例子是

  • 支架放置应该无关紧要,但它应该是一致的和可读的.
  • 在空格与制表符上,它们似乎并不关心编码标准是否说明了它.
  • 他们在C++中反对匈牙利符号,但认为它在较少类型安全的语言中可能是有价值的.
  • 他们完全反对强制执行函数中的单个return语句.

无论如何,他们确实认为格式化应该在源文件中保持一致.显然,Phobos在这一点上并不一定坚持这一点,但是Andrei确实只是在新闻组中提出了一些惯例,这些约定通常持有并且正在考虑可能执行其中的一些(实际的帖子在这里存档).

然而,虽然Phobos是开源的,任何人都可以自由提交补丁,但请记住,它是用于公共消费的API.只有Phobos开发人员需要查看代码(至少如果文档是否适当完整) - 当然他们是唯一将直接使用它的人 - 因此不需要公开列出的编码标准,甚至如果他们使用一个.它看起来确实可以使用更多的一致性,并且他们可能正在努力,但是第三方所做的就是让它更具可读性.没有人真正需要知道标准实际上是什么(尽管如果你按照标准看了足够多的代码,你至少可以找出标准所说的或多或少).

至于在大d,也被认为是很好的做法(如普遍使用的某些约定auto,而不是指定一个类型,除非你确实有指定类型),但就如同C++,你可以用任何编码风格的代码,你想要,并且D开发者不是独裁的,可以尝试在整个D社区中强制执行一种风格.