mcpField
M
moai-lang-scala

moai-lang-scala

github.com/modu-ai开发1.2k59 次安装今天更新
代码仓库

关于 moai-lang-scala

面向 JVM 开发者的 Scala 3.4+ 开发技能,涵盖函数式编程、效果系统和大数据处理,并按主题提供参考模块与示例。

主要功能

  1. 01Scala 3 语言特性
  2. 02Cats Effect 与 ZIO 模式
  3. 03Akka Actor 与流处理
  4. 04Spark DataFrame 与 SQL
  5. 05HTTP、JSON 和数据库库

适用场景

  1. 01构建 Scala JVM 应用
  2. 02选择效果系统方案
  3. 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.md
cats-effect.md
functional-programming.md
spark-data.md
zio-patterns.md
references/
examples.md
reference.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

模块索引

此技能采用渐进式披露,并包含专门的模块:

核心语言
效果系统
  • 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)

评论

支持 Markdown