以下是各 Skill Tree 方向的内容风格统一性规范,包括编码环境、编码风格、模板、代码文件、测试用例、参考答案等。

内容风格统一性规范建立在 通用规范和要求 的基础之上,是根据各技术方向特点,对通用规范和要求的补充和细化。

编码环境

  • 目前的实验和挑战支持的环境为 Python 3.10

编码风格

  • 使用4 个空格缩进,而不是 Tabs
  • 变量、函数和方法的名称应使用全小写字母,空格使用下划线(又称 “snake case”)。
  • 类应该用TitleCase命名(又称 “Camel Case”)。
  • 变量、函数和方法的名称,必须使用有意义的英文单词命名,便于理解。
  • 在 lambda 之外不能使用单字母变量名。这包括循环变量和生成式。
  • 详细的代码注释。

模板

代码文件

  1. 尽量给用户提供基础代码文件,而不是让用户自行创建文件。特殊情况除外。
  2. 命名为全小写,空格用下划线分隔,如:sum_of_cubes.py
  3. 基础代码文件中的函数名、变量名、类名等书写规范,需要包含 Type Hints 和 Docstring。
  4. 需要用户补充的部分,使用 # TODO: 开头,并简要概述。
  5. Python 挑战尽量不要直接在 verify.sh 中使用 Shell 编写测试,而是使用 unittest 编写规范的单元测试用例。
  6. 基础代码文件中的函数尽量使用 return 返回结果,方便使用 unittest 编写规范的单元测试用例。
  7. 当存在规范的单元测试用例时,可以配置 "showstderr": true,以便在测试失败时显示详细的错误信息,方便用户 Debug。
  8. 基础代码文件存放在 assets 目录中,通过在 index.json 中配置 assets 字段 复制到环境用户目录。

测试用例

  1. 请使用 unittest 编写规范的单元测试用例,可以学习和参考 exercism/python
  2. 单元测试用例文件和基础代码文件一一对应,以 _test结尾。
  3. 命名为全小写,空格用下划线分隔,如:sum_of_cubes_test.py
  4. 单元测试用例文件存放在 assets 目录中,通过在 index.json 中配置 assets 字段 复制到 /tmp 目录中,方便测试时用户不可见。

参考答案

  1. 参考答案文件存放在 solutions 目录中,名称与基础代码文件一致,如:sum_of_cubes.py。最终绑定到 index.json