moai-lang-scala について
JVM 開発者向けの Scala 3.4+ 開発スキルです。関数型プログラミング、エフェクトシステム、ビッグデータ処理を、分野別の資料と例で扱います。
主な機能
- 01Scala 3 の言語機能
- 02Cats Effect と ZIO のパターン
- 03Akka のアクターとストリーム
- 04Spark の DataFrame と SQL
- 05HTTP、JSON、データベースライブラリ
活用シーン
- 01Scala 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:型付きアクター、ストリーム、クラスタリング、永続化
- 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:アクター、ストリーム、クラスタリングのパターン
- spark-data.md - Apache Spark 3.5:DataFrame API、SQL、構造化ストリーミング
実装ガイド
プロジェクトのセットアップ(SBT 1.10)
build.sbt で、ThisBuild / scalaVersion を "3.4.2" に設定し、organization を設定します。name と libraryDependencies などの設定を含めて、lazy val root プロジェクトを定義します。cats-effect、zio、akka-actor-typed、http4s-ember-server、circe-generic の依存関係を追加し、テストスコープには scalatest を追加します。非推奨機能と機能に関する警告、および Xfatal-warnings の scalacOptions を含めます。
簡単な例
拡張メソッド:括弧内にパラメーターを指定して extension キーワードを使用します。空白で分割する words や、文字列の長さを確認してから文字を取得し、省略記号を付加する truncate などのメソッドを定義します。
Given と Using:抽象メソッドシグネチャを持つ trait を定義します。with キーワードを使用して given インスタンスを作成し、メソッドを実装します。暗黙的な解決に using パラメーター句を使う関数を作成します。
列挙型:ジェネリック型パラメーターとプラスの変位注釈を指定して enum を定義します。パラメーターを持つ case エントリーを作成します。各ケースを処理し、適切な結果を返す match 式を使って、enum にメソッドを定義します。
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 の型付きアクターとストリーム
- /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 in を使った文字列の説明を使用します。等価性の確認には shouldBe でアサーションを行います。
Cats Effect を使った MUnit:CatsEffectSuite を拡張します。文字列の名前を付けてテストを定義します。assertEquals アサーションを含む IO を返します。
ZIO Test:ZIOSpecDefault を拡張します。テストエントリーを含む suite として spec を定義します。for 内包表記を使ってエフェクトを実行し、assertTrue アサーションを返します。
トラブルシューティング
よくある問題:
- 暗黙の解決:詳細なエラーメッセージを表示するには、scalac -explain を使用します
- 型推論:推論に失敗する場合は、型注釈を明示的に追加します
- SBT のコンパイルが遅い:build.sbt で Global / concurrentRestrictions を有効にします
エフェクトシステムの問題:
- Cats Effect:import cats.effect._ または import cats.syntax.all._ が不足していないか確認します
- ZIO:ZIO.serviceWith と ZIO.serviceWithZIO を使用したレイヤーの合成を確認します
- Akka:アクター階層と監督戦略を見直します
連携に適したツール
- 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)