Skip to content

Commit 524c7d0

Browse files
committed
docs: 注释与教学文案专业化(消除口语化表达)
1 parent 845faea commit 524c7d0

9 files changed

Lines changed: 22 additions & 22 deletions

File tree

book/en/src/base/chapter_1.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ After entering the automated code practice environment using `d2x checker`, the
8686
// Exercise: Automated Code Practice Tutorial
8787
//
8888
// Tips:
89-
// This is an "exercises are tests" automated practice project. Two ways to play:
89+
// This is an "exercises are tests" automated practice project. Two modes of use:
9090
//
9191
// d2x checker guided mode: auto-detects your edits, passing advances you
9292
// mcpp test -p src/en/intro native mode: plain mcpp — the test report IS your progress

book/src/base/chapter_1.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,10 @@ d2x update
8686
// Exercise/练习: 自动化代码练习使用教学
8787
//
8888
// Tips/提示:
89-
// 这是一个「练习即测试」的自动化代码练习项目。两种玩法任选:
89+
// 这是一个「练习即测试」的自动化代码练习项目。两种使用方式任选:
9090
//
91-
// d2x checker 闯关模式: 自动检测、通过即进入下一题
92-
// mcpp test -p src/intro 原生模式: 直接用 mcpp 跑, 测试结果就是进度表
91+
// d2x checker 引导模式: 自动检测,通过后进入下一题
92+
// mcpp test -p src/intro 原生模式: 直接使用 mcpp 运行, 测试报告即学习进度
9393
//
9494
// 你需要根据控制台的报错和提示信息修改代码。约定只有三个:
9595
//

d2x/buildtools/src/discovery.cppm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export struct Exercise {
3333
fs::path file; // 绝对路径
3434
};
3535

36-
// .d2x.json 里我们只关心 "lang"。写一个完整 JSON 解析器是杀鸡用牛刀
36+
// .d2x.json 中此处只需读取 "lang"。引入完整 JSON 解析器并无必要
3737
// 但也不能假装解析——这里只做一件明确的事:取出 "lang" 的字符串值。
3838
export std::string read_lang(const fs::path& root) {
3939
std::ifstream in(root / ".d2x.json");
@@ -85,7 +85,7 @@ std::string humanize(std::string_view topic) {
8585
// 练习 id 直接来自目录/文件名,而它有两个危险去向:
8686
// 1. d2x 把它拼进一条 shell 命令(`<provider> check <id>`)
8787
// 2. 我们把 test 名拼进 `mcpp test <pattern>` 命令行
88-
// 带反引号、引号或换行的名字能在任一处越界。在源头挡住比在下游转义更可靠
88+
// 带反引号、引号或换行的名字在任一处都可能越界。在发现阶段拒绝比在下游各自转义更可靠
8989
export bool valid_id(std::string_view id) {
9090
if (id.empty()) return false;
9191
return std::ranges::all_of(id, [](unsigned char c) {

d2x/buildtools/src/runner.cppm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,8 @@ export struct RunReport {
185185
std::vector<Failure> failures;
186186
};
187187

188-
// 判定顺序(与代码一致,注意 wait 先于退出码——d2x 库里 wait 会把退出码
189-
// 顶成 1,若先看退出码,blocked 会全部误判成 fail):
188+
// 判定顺序(与代码一致wait 必须先于退出码判定——d2x 库在存在未拆除的
189+
// wait 时会将退出码置为 1,若先判退出码,blocked 会被整体误判为 fail):
190190
// 有 ok:false → Fail,每条失败都能转成一个 Diagnostic
191191
// 无失败、有 wait → Blocked(答案已对,只差拆路障)
192192
// 无失败但退出码非 0 → Fail(纯崩溃 / 练习自己 return 非 0)

d2x/buildtools/tests/e2e.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
#
77
# 这是 rustlings `cargo dev check --require-solutions` 的等价物。
88
#
9-
# 两道防线(各自都咬过人,见 .agents/docs 参考文档):
9+
# 两道防线(均源自历史缺陷,背景见 .agents/docs 参考文档):
1010
# - 脏树检查: 练习/答案目录有未提交改动时拒绝运行 —— 脚本要把答案覆盖到
11-
# 练习上再用 git 还原,未提交的改动会被吃掉
11+
# 练习上再用 git 还原,未提交的改动会被覆盖丢失
1212
# - 防空转: overlay 后 passed 总数为 0 时直接失败,绝不静默绿灯
1313
#
1414
# 用法: bash d2x/buildtools/tests/e2e.sh [zh|en|all] (默认 all)
@@ -31,7 +31,7 @@ run_lang() {
3131
local dirty
3232
dirty=$(git status --porcelain -- "${test_dirs[@]}" solutions/ | head -20)
3333
if [[ -n "$dirty" ]]; then
34-
echo "E2E($label) 拒绝运行: 练习/答案目录有未提交改动(脚本的覆盖-还原会吃掉它们):"
34+
echo "E2E($label) 拒绝运行: 练习/答案目录存在未提交改动(脚本的覆盖-还原流程会将其覆盖丢失):"
3535
echo "$dirty"
3636
return 1
3737
fi

d2x/src/d2x.cppm

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import std;
2222
// 把「为什么失败」变成结构化诊断、把 wait 区分成 blocked。
2323
// 未设置时不写文件:学习者直接跑二进制零摩擦。
2424
//
25-
// 可见输出的设计(学习者每天面对的三行):
25+
// 可见输出的设计(学习者直接看到的三类输出行):
2626
// ✅ | <what> (<actual> == <expected>) 绿
2727
// ❌ | <what> (<actual> == <expected>) -> <file>:<line> 红
2828
// 🚧 | Delete the d2x::wait() to continue -> <file>:<line> 黄
@@ -104,9 +104,9 @@ inline void report_wait(const char* file, int line) {
104104
emit(out);
105105
}
106106

107-
// std::formattable 是 SFINAE 安全的探测;直接在 requires 里写
108-
// std::format("{}", v) 会踩进未特化 std::formatter 的 static_assert
109-
// 硬错误(scoped enum、自定义类型的练习实测中招)。
107+
// std::formattable 是 SFINAE 安全的探测;若直接在 requires 表达式里写
108+
// std::format("{}", v),会触发未特化 std::formatter 的 static_assert
109+
// 硬错误(scoped enum、自定义类型的练习中已实际出现)。
110110
inline std::string show_impl(const auto& v) {
111111
using T = std::remove_cvref_t<decltype(v)>;
112112
if constexpr (std::formattable<T, char>) return std::format("{}", v);

mcpp.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# d2mcpp 根 workspace。练习即测试:每个 C++ 标准是 src/ 下的一个真实工程,
2-
# 练习是它的 tests/,mcpp test 直接就是进度表;d2x checker 驱动同一条链
3-
# d2x/ 是练习库(import d2x)与 Provider 的家
1+
# d2mcpp 根 workspace。练习即测试:每个 C++ 标准对应 src/ 下的一个 mcpp 工程,
2+
# 练习即该工程的 tests/,mcpp test 的测试报告即学习进度;d2x checker 复用同一条链路
3+
# d2x/ 目录包含练习库(import d2x)与 Provider(buildtools/)
44
[workspace]
55
members = [
66
"d2x",

src/en/intro/tests/hello-mcpp.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
// Exercise: Automated Code Practice Usage Tutorial
66
//
77
// Tips:
8-
// This is an "exercises are tests" automated practice project. Two ways to play:
8+
// This is an "exercises are tests" automated practice project. Two modes of use:
99
//
1010
// d2x checker guided mode: auto-detects your edits, passing advances you
1111
// mcpp test -p src/en/intro native mode: plain mcpp — the test report IS your progress

src/intro/tests/hello-mcpp.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
// Exercise/练习: 自动化代码练习使用教学
66
//
77
// Tips/提示:
8-
// 这是一个「练习即测试」的自动化代码练习项目。两种玩法任选:
8+
// 这是一个「练习即测试」的自动化代码练习项目。两种使用方式任选:
99
//
10-
// d2x checker 闯关模式: 自动检测、通过即进入下一题
11-
// mcpp test -p src/intro 原生模式: 直接用 mcpp 跑, 测试结果就是进度表
10+
// d2x checker 引导模式: 自动检测,通过后进入下一题
11+
// mcpp test -p src/intro 原生模式: 直接使用 mcpp 运行, 测试报告即学习进度
1212
//
1313
// 你需要根据控制台的报错和提示信息修改代码。约定只有三个:
1414
//

0 commit comments

Comments
 (0)