我刚刚开始查看phobos源代码,它中充斥着几种不同的样式并注释掉了代码。
网络方面的风格指南非常小,我只发现2006年的断链和2004年的另一个...
是否有更新,更全面的指南?
PS:最初在D.learn新闻组被问到,但由于我没有得到任何答案,我想我可能会尝试在这里,即使它可能是在黑暗中拍摄答案 0 :(得分:5)
任何指南都已过时,不应再存在。我不相信有任何D风格指南被认为是有效的,我不认为Walter Bright,Andrei Alexandrescu等想要有一个。另外,正如我记得的那样,在C++ Coding Standards: 101 Rules, Guidelines, and Best Practices中,Herb Sutter和Andrei说风格指南是一个坏主意(或者至少是那些非常具体的风格指南),但是我必须拿出这本书才能确定正是他们所说的。所以我更怀疑Phobos(Andrei负责)会有任何风格指南;我当然不知道。可能存在一些格式化代码进入Phobos的指导原则(比如使代码看起来与模块的其余部分类似或者某些类似),但像Andrei或其他Phobos开发人员之类的人必须回答这个问题。当然,有大约15个不同的开发人员在Phobos上工作,如果没有强制的样式指南,你必然会在代码中获得几种不同的样式。
所以,我不相信D或Phobos确实存在任何推荐的编码风格。据我了解,D背后的主要人物并不特别赞成风格指南,他们当然没有推动风格指南。所以,现在还没有,我不希望将来有一个。
编辑:好的,我去找了Herb Sutter和Anderi Alexandrescu在C++ Coding Standards: 101 Rules, Guidelines, and Best Practices中说的确切内容。他们反对编码标准并不是因为他们反对特别严格的执行个人品味或过时做法的标准。我不会在这里引用整个事情(这是一本好书,你应该把它拿起来),但这里有一些关键点。
他们提供的一些例子是
无论如何,他们确实认为格式应该在源文件中保持一致。显然,Phobos在这一点上并不一定坚持这一点,但是Andrei确实只是在新闻组中提出了一些通常持有并且正在考虑执行其中一些约定的惯例(实际帖子已存档{{3} })。
然而,虽然Phobos是开源的,任何人都可以自由提交补丁,但请记住,它是用于公共消费的API。只有Phobos开发人员需要来查看代码(至少在文档是否适当完整的情况下) - 当然他们是唯一会直接使用它的人 - 所以没有必要一个公开列出的编码标准,即使他们使用一个。它看起来确实可以使用更多的一致性,并且他们可能正在努力,但是第三方所做的就是让它更具可读性。没有人真正需要知道标准实际上是什么(尽管如果你按照标准查看足够的代码,你至少可以弄清楚标准所说的内容)。
对于D大, 某些约定被认为是良好的做法(例如通常使用auto
而不是指定类型,除非您实际必须指定类型) ,但就像使用C ++一样,你可以使用你想要的任何编码风格进行编码,并且D开发人员不足以试图在整个D社区中强制执行一种风格。
答案 1 :(得分:3)
事情发生了很大变化,我认为我应该重新回答这个问题。您可以看到当前的D风格指南here,它现在是最新的。它有一些关于格式化的规则(例如没有标签和每个级别的缩进是4个空格),但几乎所有的规则都是关于命名约定的(例如类型名称应该使用PascalCase,而变量和函数应该使用camelCase )。因此,重点是API应该是什么样子,而不是代码应该如何格式化。正如我在之前的回答中详细说明的那样,Phobos开发人员永远不会尝试为D作为一个整体的官方格式化风格。事实上,有很多D程序员甚至不遵循官方风格指南中的命名惯例。
未来可能会对Phobos本身实施更严格的格式化指南(已经讨论但从未完成),以便让提交者更清楚他们应该遵循什么样的风格,并避免争论代码格式化(自从我们转移到github并且提交者的数量大大增加之后,这已成为一个问题,但在这一点上,它主要归结为确保模块中的代码格式一致。但同样,即使对Phobos强制要求更严格的格式规则,这也将是Phobos特有的,而不是整个D社区。对于如何格式化代码以使社区范围的格式化标准能够正常工作,存在太多不同的意见。