导入
本课程主要内容是什么?
本课程概述了目标受众、课程内容及学习成果。
让我们首先了解一下本课程的目标受众。
目标受众
本课程面向希望深入学习函数式编程的中级 Scala 程序员。课程主要聚焦于后端 Web 服务开发。理想情况下,学员应具备使用 Akka HTTP 和 Slick 等库的经验,这些库在该领域应用广泛。
Scala 是一种广泛使用的通用编程语言,同时支持面向对象和函数式编程。在本课程中,你将深入探索 Scala 的函数式特性。
...
课程内容
我们将从一个小型应用场景开始。通过分析引用透明性,你将学习到纯函数与不纯函数之间的区别。随后,你将逐步以纯和不纯两种方式实现该场景。
下一节课将提供 API 服务的正式接口说明。
在实现过程中,我们将同步进行构建、测试和文档编写,并指出所需的关键工具。课程中将涵盖以下核心概念:
1. 不纯服务
对于不纯服务,我们将使用以下库:
尽管这些库经过实战检验且表现良好,但我们仍可以做得更好。
现在的问题是:“我们如何做得更好?”答案是采用纯服务,这将在后续章节中详细探讨。
2. 纯服务
针对纯服务场景,我们将使用以下库:
3. 性能基准测试
在完成服务的构建与测试后,我们将对纯与不纯实现的 API 性能进行对比分析。
4. 文档化
接下来,我们将深入探讨如何为纯服务和不纯服务编写文档。我们将利用 Swagger 和 tapir 来为纯服务生成文档。
学习成果
本课程旨在让你掌握纯与不纯服务实现技术。课程结束后,你将对这两种技术的工作原理、优缺点有深刻理解,并认识到纯实现在以下方面具有更强的稳健性:
- 可读性
- 可测试性
- 性能
- 类型安全性等