Files
scala_20260908/README.md
T
2026-09-10 22:38:33 +08:00

422 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# scala_20260908
Scala 学习代码仓库,记录从 2026-09-08 开始的 Scala 学习过程。
本仓库的代码主要分为两部分:
```text
chapter/
↓
线下课程学习代码
practise/
↓
使用 ChatGPT 辅助学习的练习代码
```
两部分代码虽然都属于 Scala 学习内容,但定位不同。
---
## 一、目录说明
### chapter —— 线下课程
`chapter` 用于保存**线下课程中的课堂代码**。
这里的代码以老师上课讲解的内容为准,主要目的是:
* 记录课堂学习过程
* 保留老师的代码示例
* 对应课程章节
* 方便课后复习
* 保持与课堂进度一致
例如:
```text
chapter1
├── demo1
├── demo2
├── demo3
├── demo4
└── exercises
chapter2
└── demo1
```
随着线下课程推进,会继续增加:
```text
chapter3
chapter4
chapter5
...
```
因此:
> `chapter` 可以理解为“课堂笔记的代码版”。
---
### practise —— ChatGPT 学习
`practise` 用于保存**通过 ChatGPT 辅助学习 Scala 时编写的代码**。
这部分内容不一定完全按照线下课程章节组织,而是更侧重:
* 对知识点进行补充学习
* 针对某个知识点单独练习
* 根据自己的理解重新写代码
* 编写练习题
* 编写综合题
* 验证 Scala 的语法特性
* 对容易混淆的知识点进行实验
例如:
```text
practise1
├── demo
├── exercises
└── comprehensive
practise2
├── demo
├── exercises
└── comprehensive
```
其中通常可以理解为:
```text
demo
↓
知识点示例
exercises
↓
针对知识点的练习
comprehensive
↓
综合多个知识点的练习
```
因此:
> `practise` 可以理解为“自己练习和深入理解的代码区”。
---
## 二、为什么要分成 chapter 和 practise
将两部分代码分开,可以避免课堂代码和自主练习相互混杂。
学习过程可以理解为:
```text
Scala 学习
│
┌──────────┴──────────┐
│ │
chapter practise
│ │
线下课程代码 ChatGPT辅助学习
│ │
老师怎么讲就怎么写 自己理解 / 补充 / 练习
│ │
└──────────┬──────────┘
│
最终掌握
```
其中:
`chapter` 负责**跟着课程学习**。
`practise` 负责**把知识真正练会**。
---
## 三、当前学习内容
目前已经开始学习 Scala 基础语法。
### chapter
主要对应线下课程,目前包括:
```text
Scala 基础语法
├── 变量
├── 数据类型
├── 字符串
├── 字符串插值
├── 运算符
├── 流程控制
└── 方法 / 函数
```
---
### practise
目前主要围绕已经学习的 Scala 基础知识进行练习:
```text
变量与常量
↓
数据类型
↓
字符串
↓
字符串插值
↓
if 表达式
↓
方法
↓
函数
↓
函数参数
↓
函数返回值
↓
综合练习
```
---
## 四、学习方式
整个学习过程采用:
```text
线下课程
↓
chapter
↓
理解课堂知识
↓
ChatGPT辅助学习
↓
practise
↓
独立练习 / 综合练习
↓
进一步理解 Scala
```
其中 `chapter` 和 `practise` 并不是两个独立的课程,而是同一个学习过程中的两个部分。
---
## 五、项目结构
```text
scala_20260908/
│
├── pom.xml
├── README.md
│
└── src/
└── main/
└── scala/
│
├── chapter1/
│ ├── demo1/
│ ├── demo2/
│ ├── demo3/
│ ├── demo4/
│ └── exercises/
│
├── chapter2/
│ └── demo1/
│
├── practise1/
│ ├── demo/
│ ├── exercises/
│ └── comprehensive/
│
└── practise2/
├── demo/
├── exercises/
└── comprehensive/
```
---
## 六、代码组织原则
### chapter
以**课程章节**为核心:
```text
chapter1
chapter2
chapter3
...
```
尽量保持课堂代码的原始结构,不为了“代码漂亮”而过度修改。
这样做的主要目的是:
> 能够回到对应章节,快速回忆老师当时讲了什么。
---
### practise
以**学习和练习**为核心:
```text
practise1
practise2
practise3
...
```
可以根据学习过程自由增加:
```text
demo
exercises
comprehensive
test
experiment
```
等目录。
这里允许出现为了理解某一个 Scala 特性而专门编写的小实验代码。
---
## 七、环境
当前项目使用 Maven 管理。
主要环境:
```text
JDK 8
Scala 2.11.12
Maven 3.x
IDEA IntelliJ IDEA
```
项目通过 `scala-maven-plugin` 编译 Scala 代码。
---
## 八、运行代码
推荐使用 IntelliJ IDEA 打开项目。
找到需要运行的 `.scala` 文件,例如:
```scala
object Demo {
def main(args: Array[String]): Unit = {
println("Hello Scala")
}
}
```
直接运行:
```text
Run 'Demo.main()'
```
也可以使用 Maven:
```bash
mvn clean compile
```
运行指定 Scala 主类:
```bash
mvn scala:run -DmainClass=chapter2.demo1.DemoMethod
```
或者:
```bash
mvn scala:run -DmainClass=practise2.demo.DemoFunction
```
---
## 九、学习记录原则
这个仓库不追求一次性把 Scala 所有知识整理完整,而是随着学习过程持续更新。
因此:
```text
chapter
= 课程真实学习进度
practise
= 自主学习与练习进度
```
以后学习到新的内容后,继续按照这个规则添加即可。
---
## 十、后续学习方向
随着 Scala 学习深入,预计逐步涉及:
```text
基础语法
↓
流程控制
↓
方法与函数
↓
集合
↓
面向对象
↓
Trait
↓
继承
↓
函数式编程
↓
高阶函数
↓
隐式转换
↓
Scala 集合操作
↓
Spark / 大数据开发
```
最终希望通过:
```text
课堂学习
+
ChatGPT辅助学习
+
大量练习
```
逐步建立完整的 Scala 编程能力。
---
## License
个人 Scala 学习代码,仅用于学习、练习和知识整理。