Skip to content

Commit 56df1c9

Browse files
committed
Fix localized lesson/course content and quiz behavior
1 parent 016b892 commit 56df1c9

21 files changed

Lines changed: 1581 additions & 64 deletions

File tree

Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
{
2+
"language": {
3+
"id": "cpp",
4+
"name": "C++",
5+
"description": "一种通过引用、对象和 RAII 安全管理内存的系统编程语言",
6+
"icon": "C++",
7+
"color": "#6366F1"
8+
},
9+
"phases": [
10+
{
11+
"name": "打好基础",
12+
"description": "C++ 要点:引用、对象和 RAII",
13+
"chapters": [
14+
1
15+
]
16+
},
17+
{
18+
"name": "STL基础知识",
19+
"description": "标准容器:字符串、向量等",
20+
"chapters": [
21+
2,
22+
3
23+
]
24+
},
25+
{
26+
"name": "内存管理",
27+
"description": "智能指针和所有权",
28+
"chapters": [
29+
4,
30+
5
31+
]
32+
},
33+
{
34+
"name": "先进的",
35+
"description": "移动语义和实用模式",
36+
"chapters": [
37+
6
38+
]
39+
}
40+
],
41+
"chapters": [
42+
{
43+
"id": "cpp-1",
44+
"order": 1,
45+
"title": "引用和对象基础知识",
46+
"description": "C++ 与 C 的区别:引用、对象和自动销毁",
47+
"keyQuestion": "C++ 内存中的值副本和引用有何不同?",
48+
"part": "syntax",
49+
"partLabel": "句法",
50+
"lessons": [
51+
{
52+
"id": "cpp-1-1",
53+
"order": 1,
54+
"title": "参考基础知识",
55+
"description": "引用是变量的别名,而不是副本",
56+
"difficulty": "basic",
57+
"estimatedTime": 9
58+
},
59+
{
60+
"id": "cpp-1-2",
61+
"order": 2,
62+
"title": "RAII 和基于范围的销毁",
63+
"description": "当对象超出范围时会自动清理",
64+
"difficulty": "basic",
65+
"estimatedTime": 10
66+
},
67+
{
68+
"id": "cpp-1-3",
69+
"order": 3,
70+
"title": "引用与指针",
71+
"description": "从内存角度来看,引用和指针之间的决定性区别",
72+
"difficulty": "intermediate",
73+
"estimatedTime": 12
74+
}
75+
]
76+
},
77+
{
78+
"id": "cpp-2",
79+
"order": 2,
80+
"title": "标准::字符串",
81+
"description": "C字符串和C++字符串的区别及其内部结构",
82+
"keyQuestion": "为什么在 C++ 中使用 string 而不是 char[]?",
83+
"part": "stl",
84+
"partLabel": "STL",
85+
"lessons": [
86+
{
87+
"id": "cpp-2-1",
88+
"order": 1,
89+
"title": "std::string 基础知识",
90+
"description": "字符串创建、串联和比较",
91+
"difficulty": "basic",
92+
"estimatedTime": 8
93+
},
94+
{
95+
"id": "cpp-2-2",
96+
"order": 2,
97+
"title": "字符串的内部结构",
98+
"description": "堆分配、SSO、大小与容量",
99+
"difficulty": "intermediate",
100+
"estimatedTime": 12
101+
}
102+
]
103+
},
104+
{
105+
"id": "cpp-3",
106+
"order": 3,
107+
"title": "std::向量",
108+
"description": "动态数组向量的内存结构及增长策略",
109+
"keyQuestion": "矢量如何在内部增加其大小?",
110+
"part": "stl",
111+
"partLabel": "STL",
112+
"lessons": [
113+
{
114+
"id": "cpp-3-1",
115+
"order": 1,
116+
"title": "矢量基础知识",
117+
"description": "创建、插入、访问和迭代",
118+
"difficulty": "basic",
119+
"estimatedTime": 10
120+
},
121+
{
122+
"id": "cpp-3-2",
123+
"order": 2,
124+
"title": "尺寸与容量",
125+
"description": "向量的增长策略和重新分配",
126+
"difficulty": "intermediate",
127+
"estimatedTime": 12
128+
}
129+
]
130+
},
131+
{
132+
"id": "cpp-4",
133+
"order": 4,
134+
"title": "新建/删除和堆",
135+
"description": "动态内存分配和释放的内存结构",
136+
"keyQuestion": "new live 的内存在哪里以及如何分配?",
137+
"part": "memory",
138+
"partLabel": "记忆",
139+
"lessons": [
140+
{
141+
"id": "cpp-4-1",
142+
"order": 1,
143+
"title": "新建和删除",
144+
"description": "可视化动态内存分配和释放",
145+
"difficulty": "intermediate",
146+
"estimatedTime": 10
147+
},
148+
{
149+
"id": "cpp-4-2",
150+
"order": 2,
151+
"title": "内存泄漏",
152+
"description": "当你忘记删除时会发生什么",
153+
"difficulty": "intermediate",
154+
"estimatedTime": 10
155+
}
156+
]
157+
},
158+
{
159+
"id": "cpp-5",
160+
"order": 5,
161+
"title": "智能指针",
162+
"description": "使用unique_ptr和shared_ptr进行安全内存管理",
163+
"keyQuestion": "为什么使用智能指针而不是原始指针?",
164+
"part": "memory",
165+
"partLabel": "记忆",
166+
"lessons": [
167+
{
168+
"id": "cpp-5-1",
169+
"order": 1,
170+
"title": "unique_ptr 基础知识",
171+
"description": "独家所有权和自动解除分配",
172+
"difficulty": "intermediate",
173+
"estimatedTime": 12
174+
},
175+
{
176+
"id": "cpp-5-2",
177+
"order": 2,
178+
"title": "Shared_ptr 和引用计数",
179+
"description": "共享所有权以及 use_count 的工作原理",
180+
"difficulty": "advanced",
181+
"estimatedTime": 15
182+
}
183+
]
184+
},
185+
{
186+
"id": "cpp-6",
187+
"order": 6,
188+
"title": "移动语义",
189+
"description": "使用 std::move 和右值引用消除不必要的副本",
190+
"keyQuestion": "如何在不复制对象的情况下传输对象?",
191+
"part": "advanced",
192+
"partLabel": "先进的",
193+
"lessons": [
194+
{
195+
"id": "cpp-6-1",
196+
"order": 1,
197+
"title": "左值和右值",
198+
"description": "两类值及其记忆差异",
199+
"difficulty": "advanced",
200+
"estimatedTime": 12
201+
},
202+
{
203+
"id": "cpp-6-2",
204+
"order": 2,
205+
"title": "std::move 实践",
206+
"description": "可视化移动构造函数和所有权转移",
207+
"difficulty": "advanced",
208+
"estimatedTime": 15
209+
}
210+
]
211+
}
212+
]
213+
}
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
{
2+
"language": "java",
3+
"languageId": "java",
4+
"title": "Java Master Class",
5+
"description": "Stack vs Heap, the truth about Pass-by-Value, and the fundamental principles of OOP",
6+
"chapters": [
7+
{
8+
"chapterId": "java-ch1",
9+
"title": "变量和数据类型",
10+
"description": "基本类型如何存储在堆栈上以及对象如何存储在堆上",
11+
"order": 1,
12+
"lessons": [
13+
"java-1-1",
14+
"java-1-2",
15+
"java-1-3",
16+
"java-1-4",
17+
"java-1-5",
18+
"java-1-6",
19+
"java-1-7",
20+
"java-1-8"
21+
]
22+
},
23+
{
24+
"chapterId": "java-ch2",
25+
"title": "对象和引用",
26+
"description": "变量保存的不是对象本身,而是它的“地址(引用)”",
27+
"order": 2,
28+
"lessons": [
29+
"java-2-1",
30+
"java-2-2",
31+
"java-2-3",
32+
"java-2-4"
33+
]
34+
},
35+
{
36+
"chapterId": "java-ch3",
37+
"title": "关于价值传递的真相",
38+
"description": "Java 中传递的所有参数始终是“值的副本”",
39+
"order": 3,
40+
"lessons": [
41+
"java-3-1",
42+
"java-3-2",
43+
"java-3-3",
44+
"java-3-4"
45+
]
46+
},
47+
{
48+
"chapterId": "java-ch4",
49+
"title": "数组和字符串",
50+
"description": "数组是对象,而String是不可变对象,永远不会改变",
51+
"order": 4,
52+
"lessons": [
53+
"java-4-1",
54+
"java-4-2",
55+
"java-4-3",
56+
"java-4-4"
57+
]
58+
},
59+
{
60+
"chapterId": "java-ch5",
61+
"title": "包装类和拳击",
62+
"description": "整数缓存陷阱以及自动装箱的工作原理",
63+
"order": 5,
64+
"lessons": [
65+
"java-5-1",
66+
"java-5-2",
67+
"java-5-3",
68+
"java-5-4"
69+
]
70+
},
71+
{
72+
"chapterId": "java-ch6",
73+
"title": "异常处理",
74+
"description": "Stack Unwinding和try-catch-finally的内部机制",
75+
"order": 6,
76+
"lessons": [
77+
"java-6-1",
78+
"java-6-2",
79+
"java-6-3",
80+
"java-6-4"
81+
]
82+
},
83+
{
84+
"chapterId": "java-ch7",
85+
"title": "泛型和类型擦除",
86+
"description": "编译时类型安全和运行时类型擦除",
87+
"order": 7,
88+
"lessons": [
89+
"java-7-1",
90+
"java-7-2",
91+
"java-7-3",
92+
"java-7-4"
93+
]
94+
},
95+
{
96+
"chapterId": "java-ch8",
97+
"title": "馆藏框架",
98+
"description": "HashMap的内部工作原理以及动态数组(ArrayList)的原理",
99+
"order": 8,
100+
"lessons": [
101+
"java-8-1",
102+
"java-8-2",
103+
"java-8-3",
104+
"java-8-4"
105+
]
106+
},
107+
{
108+
"chapterId": "java-ch9",
109+
"title": "内存和垃圾收集 (GC)",
110+
"description": "JVM 堆分代轮换以及有关 GC 算法的所有内容",
111+
"order": 9,
112+
"lessons": [
113+
"java-9-1",
114+
"java-9-2",
115+
"java-9-3",
116+
"java-9-4"
117+
]
118+
},
119+
{
120+
"chapterId": "java-ch10",
121+
"title": "多线程和并发基础知识",
122+
"description": "线程、竞争条件和同步(Synchronized)",
123+
"order": 10,
124+
"lessons": [
125+
"java-10-1",
126+
"java-10-2",
127+
"java-10-3",
128+
"java-10-4"
129+
]
130+
}
131+
]
132+
}

0 commit comments

Comments
 (0)