Exercism 风格指南


本文档是练习中所用语言和措辞的风格指南。

适用范围

所有练习都应遵循这些规则。 现有的描述和测试用例可以更新以符合这些规则,无需新增“替代”测试用例。

练习内部的一致性

有些术语有多种合法拼写(例如 “lower case” 和 “lowercase”)。 如果本文档没有约定统一的风格,那么这些术语在同一个练习内必须保持一致。

例外

如果维护者们普遍认为合理,练习可以偏离这些规则。 例如,一个关于不同单位之间换算的练习,可能选择不使用 SI 度量单位。

语言

所有内容都应使用美式英语撰写,美式英语与英式英语有诸多差异。将来可能会出现其他翻译,但 Exercism 的“官方”语言是美式英语。

度量单位

所有度量单位都必须是 SI 或 SI 派生单位。

缩写、缩略词和首字母缩写词

相比其他表述方式,缩写、缩略词和首字母缩写词往往更难理解,还可能让正在学习的人感到疏远。

许多缩写本身就是行话。尽量改用其他说法,避免行话。除非满足以下任一条件,否则不要使用缩写:

  • 缩写形式比未缩写的完整说法更广为人知
  • 不使用缩写会让文字过于冗长

使用缩写时,一定要在它第一次出现时解释它的含义。这通常会,但并不总是,包括写出缩写的完整形式。仅仅写出缩写的完整形式,往往是不够的。

下面是一些示例规则:

  • 用 “if I recall correctly” 而不是 “IIRC”
  • 用 “as far as I know” 而不是 “AFAIK”
  • 用 “queue” 而不是 “FIFO”,用 “stack” 而不是 “FILO”
  • 与其把接口描述为 “RESTful”,不如描述它的具体特性
  • 如果必须使用 “CRUD”,请解释它代表 Create、Read、Update、Delete,并且这些是标准数据库中的基本操作

再看几个良好用法的示例:

  • “HyperText Markup Language (HTML) is the language used to describe document structure and content on the web”(写出完整形式并加以解释)
  • “DNA, a set of chemical instructions that influence how our bodies are constructed”(不写出 DNA 的完整形式,因为“deoxyribonucleic acid”不太可能帮助我们的读者理解 DNA 是什么)
  • “NASA, the United States' space agency, launched the Mariner 2 space probe in...”(不写出 NASA 的完整形式,因为“National Aerospace and Space Administration”以缩写形式比完整名称更广为人知)
  • “The Department of Motor Vehicles (DMV) is filled with sloths. That's why everything takes forever at the DMV”(在 DMV 第一次出现时加以定义)

语法

牛津逗号

在列举时使用牛津逗号(又称系列逗号)。例如,不要写 “I love my parents, Lady Gaga and Humpty Dumpty”,而要写 “I love my parents, Lady Gaga, and Humpty Dumpty”。你也可以看看这张图片的解释。

例外

有些缩写被认为足够常见、有用且不涉及专业术语,因此我们决定允许使用它们:

  • e.g. 或 eg
  • i.e. 或 ie
  • etc. 或 etc
  • docs

在练习描述中,缩略形式(例如 “won't”“I'm”“that's”)应尽量少用,最好完全不用,但在网站其他地方的文字中(例如网站文案、指导)则不受限制。

许多美式英语风格指南指出,缩写 “i.e.” 和 “e.g.” 后面应该跟一个逗号(例如参见这个 StackExchange 帖子)。在 Exercism 的文字中,这允许,但不强制。

用词选择

数学术语和行话

凡是使用数学术语的地方,都应加以解释,或改用不需要那么多领域知识的说法。

示例:

  • 与其使用“natural numbers”,我们应使用“positive whole numbers”。
  • 如果我们想使用“rational numbers”这一说法,就必须在练习的简介中加以解释。
  • 与其使用 range 一词(它在不同语境中可能有不同含义),不如使用“x < ? < y (greater than x and less than y)”。
  • 与其使用“esoteric terms”,不如使用“terms not understood by the majority of people”这一说法。

代码

所有代码都应按照各自 track 的风格约定统一格式化。在可能的情况下,这些整个 track 范围的约定应与该语言偏好的风格约定保持一致。