关于 moai-lang-scala
面向 JVM 开发者的 Scala 3.4+ 开发技能,涵盖函数式编程、效果系统和大数据处理,并按主题提供参考模块与示例。
主要功能
- 01Scala 3 语言特性
- 02Cats Effect 与 ZIO 模式
- 03Akka Actor 与流处理
- 04Spark DataFrame 与 SQL
- 05HTTP、JSON 和数据库库
适用场景
- 01构建 Scala JVM 应用
- 02选择效果系统方案
- 03开发流处理或 Spark 工作负载
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ modu-ai/ moai-adk --skill moai-lang-scala安装后在 Claude Code 中输入/moai-lang-scala确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
modules/akka-actors.mdcats-effect.mdfunctional-programming.mdspark-data.mdzio-patterns.mdreferences/examples.mdreference.md详细介绍
Scala 3.4+ 开发专家
面向 JVM 应用的函数式编程、效果系统和大数据处理。
快速参考
自动触发:Scala 文件(.scala、.sc)、构建文件(build.sbt、project/build.properties)
核心能力:
- Scala 3.4:Given/using、扩展方法、枚举、不透明类型、匹配类型
- Akka 2.9:类型化 Actor、流、集群、持久化
- Cats Effect 3.5:纯函数式编程运行时、纤程、并发结构
- ZIO 2.1:效果系统、层、流处理、错误处理
- Apache Spark 3.5:DataFrame API、SQL、结构化流处理
关键生态库:
- HTTP:Http4s 0.24、Tapir 1.10
- JSON:Circe 0.15、ZIO JSON 0.6
- 数据库:Doobie 1.0、Slick 3.5、Quill 4.8
- 流处理:FS2 3.10、ZIO Streams 2.1
- 测试:ScalaTest、Specs2、MUnit、Weaver
模块索引
此技能采用渐进式披露,并包含专门的模块:
核心语言
- functional-programming.md - Scala 3.4 功能:Given/Using、类型类、枚举、不透明类型、扩展方法
效果系统
- cats-effect.md - Cats Effect 3.5:IO 单子、资源、纤程、FS2 流处理
- zio-patterns.md - ZIO 2.1:效果、层、ZIO Streams、错误处理
框架
- akka-actors.md - Akka Typed Actors 2.9:Actor、流、集群模式
- spark-data.md - Apache Spark 3.5:DataFrame API、SQL、结构化流处理
实现指南
项目设置(SBT 1.10)
在 build.sbt 中,将 ThisBuild / scalaVersion 设为 "3.4.2",并设置 organization。定义 lazy val root 项目,并配置包含 name 和 libraryDependencies 的设置。添加 cats-effect、zio、akka-actor-typed、http4s-ember-server、circe-generic 依赖,并将 scalatest 设为测试作用域。添加 scalacOptions,以启用弃用和功能警告,并设置 Xfatal-warnings。
快速示例
扩展方法:使用 extension 关键字,并在括号中指定参数。定义诸如 words 的方法来按空白字符拆分文本;定义 truncate 方法,在截取字符并追加省略号之前检查长度。
Given 和 Using:定义带抽象方法签名的 trait。使用 with 关键字创建 given 实例并实现该方法。创建带 using 参数子句的函数,以进行隐式解析。
枚举类型:定义带泛型参数和加号方差注解的 enum。创建带参数的 case 条目。使用 match 表达式在 enum 上定义方法,以处理每个 case 并返回相应结果。
Context7 集成
最新文档的库映射:
核心 Scala:
- /scala/scala3 - Scala 3.4 语言参考
- /scala/scala-library - 标准库
效果系统:
- /typelevel/cats-effect - Cats Effect 3.5 文档
- /typelevel/cats - Cats 2.10 函数式抽象
- /zio/zio - ZIO 2.1 文档
- /zio/zio-streams - ZIO Streams 2.1
Akka 生态系统:
- /akka/akka - Akka 2.9 类型化 Actor 和流
- /akka/akka-http - Akka HTTP REST API
- /akka/alpakka - Akka 连接器
HTTP 和 Web:
- /http4s/http4s - 函数式 HTTP 服务端/客户端
- /softwaremill/tapir - API 优先设计
大数据:
- /apache/spark - Spark 3.5 DataFrame 和 SQL
- /apache/flink - Flink 1.19 流处理
- /apache/kafka - Kafka 3.7 客户端
测试快速参考
ScalaTest:使用 Matchers 扩展 AnyFlatSpec。使用带 should 的字符串描述行为。使用 shouldBe 进行相等性断言。
Cats Effect 的 MUnit:扩展 CatsEffectSuite。使用字符串名称定义测试。返回包含 assertEquals 断言的 IO。
ZIO Test:扩展 ZIOSpecDefault。将 spec 定义为包含 test 条目的 suite。使用 for 推导式运行效果,并生成 assertTrue 断言。
故障排除
常见问题:
- 隐式解析:使用 scalac -explain 查看详细错误消息
- 类型推断:推断失败时添加显式类型注解
- SBT 编译缓慢:在 build.sbt 中启用 Global / concurrentRestrictions
效应系统问题:
- Cats Effect:检查是否缺少 import cats.effect._ 或 import cats.syntax.all._
- ZIO:使用 ZIO.serviceWith 和 ZIO.serviceWithZIO 验证层组合
- Akka:检查 Actor 层级结构和监督策略
适配良好的项目
- moai-lang-java - JVM 互操作、Spring Boot 集成
- moai-domain-backend - REST API、GraphQL、微服务模式
- moai-domain-database - Doobie、Slick、数据库模式
- moai-workflow-testing - ScalaTest、MUnit、基于属性的测试
其他资源
如需全面的参考资料:
- reference.md - 完整覆盖 Scala 3.4、Context7 映射、性能
- examples.md - 可用于生产环境的代码:Http4s、Akka、Spark 模式
最后更新:2026-01-11 状态:可用于生产环境(v2.1.0)