Skip to content

QA: Snippets' Test #387

@arrowrowe

Description

@arrowrowe

主题: 代码片段的质量保证.
相关: #375, #385, #399, ......

  • 现存问题
    • 书中代码片段没有自动化的质量保证.
  • 可供参考的方案
    • Rust by Example 的方案:
      • 代码单独放, 正文中引用其位置, 而非代码本身. 参考它的 README.md, 特别是 Processing input.md 中对 {hello.play}, {hello.rs}{hello.out} 的说明.
      • 预处理时使用 rustc -Z no-trans --test 检查所有代码. 参考它的 Makefile, 特别是第 5 行和第 46 行.
    • 这个分支 中的方案:
      • 增加测试. 具体过程为, 提取正文中代码并输出, 然后编译并运行.
      • 优点: 正文所需改动稍小 (有 12 章不需要改动). 是在已有的测试流程上增加的, 不用改变整个流程.
  • 上述方案的问题
    • 共同的问题是正文修改工作量较大. 要保证每个代码片段都单独可运行, 这对作者的书写习惯有要求. (不过, 两个方案都允许豁免某些代码片段.)
    • Rust by Example 方案需要引入插件并配置, 改变整个发布流程. (不确定工作量如何.)
    • 某些章节 (如 Any 和反射) 需要 nightly, 要特殊考虑. (也可以直接豁免掉这些特例, 人工检查.)

以上. 请多指教......

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions