代码之家  ›  专栏  ›  技术社区  ›  simendsjo

火卫一风格指南

  •  6
  • simendsjo  · 技术社区  · 14 年前

    我刚刚开始研究phobos的源代码,它有很多不同的样式和注释掉的代码。

    有更新的,更全面的指南吗?

    2 回复  |  直到 14 年前
        1
  •  5
  •   Jonathan M Davis    14 年前

    C++ Coding Standards: 101 Rules, Guidelines, and Best Practices 赫伯萨特和安德烈说,风格指南是一个坏主意(或至少是真正具体的),但我必须拿出书,以确保他们说的确切。因此,我相当怀疑火卫一(安德烈负责)会有任何类型的风格指南;我当然不知道有什么。对进入Phobos的代码进行格式化可能有一些指导原则(比如使代码看起来与模块的其他部分相似),但是像Andrei或其他Phobos开发人员这样的人必须回答这个问题。当然,大约有15个不同的开发人员在使用Phobos,如果没有强制的样式指南,那么代码中肯定会有几种不同的样式。

    所以,我不相信真的有任何一种推荐的D或Phobos编码风格。据我所知,D背后的主要人物并不特别喜欢风格指南,他们当然也没有推出。所以,现在真的没有,我也不指望将来会有。

    编辑: C++编码标准:101条规则、准则和最佳实践 . 与其说他们反对编码标准,还不如说他们反对那些特别限制性的标准,这些标准强制执行个人品味或过时的做法。我不打算在这里引用整本书(这是一本好书,你可能无论如何都应该拿起它),但这里有一些要点。

    • 不要强制执行特定的行长度,但要保持行长度可读。
    • 不要过度注册命名,但要给我们一个一致的命名约定。

    他们举的一些例子是

    • 在空格和制表符之间,他们似乎并不关心编码标准是否对此有所说明。
    • 他们反对C++中的匈牙利符号,但认为它在不太安全的语言中可能是有价值的。
    • 他们完全反对强制要求函数中只有一个return语句。

    不管怎样,他们确实认为格式应该在源文件中保持一致。显然,在这一点上,火卫一并不一定坚持这样做,但安德烈只是在新闻组中提出了一些惯例,这些惯例通常是坚持的,并且正在考虑可能强制执行其中的一些(实际的帖子是存档的) here

    不过,虽然Phobos是开源的,任何人都可以自由提交补丁,但请记住,它是供公众使用的API。只有火卫一的开发者 需要

    某些被认为是良好实践的惯例(例如 auto 不是指定类型,除非你必须指定类型,但是就像C++一样,你可以用你想要的任何编码风格来编码,而DD开发者并不是独裁的,而是试图在整个D社区中强制执行一种风格。

        2
  •  3
  •   Jonathan M Davis    11 年前

    事情已经发生了很大的变化,我想我应该重新回答这个问题。您可以看到当前的D样式指南 here ,现在是最新的。它有一些关于格式的规则(例如,没有制表符,每个缩进级别是4个空格),但几乎所有的规则都是关于命名约定的(例如,类型名应该使用PascalCase,而变量和函数应该使用camelCase)。因此,重点是API应该是什么样子,而不是如何格式化代码。正如我在前面的回答中所详述的,Phobos开发人员永远不会试图为整个D命令一个正式的格式样式。事实上,有很多D程序员甚至不遵守官方样式指南中的命名约定。

    将来可能会对Phobos本身设置更多限制性的格式指南(已经讨论过了,但从未做过),以便让提交者更清楚地了解他们应该遵循什么样式,并避免关于代码格式的争论(自从我们迁移到github和提交者的数量之后,这就成了一个更大的问题)但在这一点上,主要是要确保模块中的代码格式一致。但同样,即使对火卫一强制实施了更严格的格式规则,这也只是针对火卫一的,而不是针对整个D社区。对于如何为社区范围的格式化标准格式化代码,有太多不同的观点。

    推荐文章