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 のアクターとストリーム
  4. 04Spark の DataFrame と SQL
  5. 05HTTP、JSON、データベースライブラリ

活用シーン

  1. 01Scala 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:型付きアクター、ストリーム、クラスタリング、永続化
  • 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)

コメント