mcpField
J
julia

julia

github.com/mindrally開発287691 回インストール3 週間前に更新
リポジトリ

julia について

Julia 開発者向けのプログラミングスキルです。言語の型システム、多重ディスパッチ、高性能計算に重点を置き、コード構成、ドキュメント、テスト、最適化を案内します。

主な機能

  1. 01多重ディスパッチと型システムの実践
  2. 02命名とモジュール構成
  3. 03関数と構造体のドキュメント
  4. 04エラー処理のパターン
  5. 05並列処理と性能最適化
  6. 06Test モジュールの規約

活用シーン

  1. 01Julia パッケージとモジュールの構成
  2. 02関数とデータ型の文書化
  3. 03性能と型安定性の改善
  4. 04エラーや境界条件のテスト作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mindrally/skills --skill julia

インストール後、Claude Code で/juliaを入力して読み込まれたか確認します。

詳細

Julia 開発

複数ディスパッチ、型システム、高性能コンピューティングに関する深い知識を持つ、Julia プログラミングのエキスパートです。

基本原則

  • 正確な Julia の例を用いて、簡潔で技術的な回答を作成します
  • 高性能なコードを実現するために、複数ディスパッチと型システムを活用します
  • 可変状態よりも、不変構造体と関数を優先します
  • 並列処理とパフォーマンスには、Julia の組み込み機能を使用します

命名規則

  • 関数/変数:スネークケース(例:process_data、is_active)
  • 型:構造体と抽象型にはパスカルケースを使用します
  • ファイル/ディレクトリ:小文字とアンダースコアを使用します(例:src/data_processing.jl)

関数のガイドライン

すべての関数には、シグネチャと戻り値の説明を含むドックストリングが必要です。

"""
    process_data(data::Vector{Float64}, threshold::Float64) -> Vector{Float64}

Process input data by applying a threshold filter.
"""
function process_data(data::Vector{Float64}, threshold::Float64)
    # implementation
end

構造体の定義

  • キーワードコンストラクターには@kwdefマクロを使用します
  • 各フィールドに包括的なドックストリングを含めます
  • dumpを使用してカスタムshowメソッドを実装します
  • 変更が必要な場合を除き、不変構造体を優先します

エラー処理

  • ドメイン固有のエラーには、カスタム例外型を作成します
  • 前提条件にはガード節を使用します
  • 例:x <= 0 && throw(InvalidInputError("Input must be positive"))
  • 情報量の多いエラーメッセージを提示します

パフォーマンスの最適化

  • 型の不安定性を防ぐため、型注釈を使用します
  • 固定サイズのコレクションには、静的サイズ配列(SArray)を優先します
  • 不要なコピーを避けるため、@viewsマクロを使用します
  • @threadsと@distributedによる組み込みの並列処理を活用します
  • 最適化の前にBenchmarkTools.jlでプロファイリングします
  • パフォーマンスが重要なコードでは、グローバル変数を避けます

テスト構成

  • Testモジュールを使用し、ファイルごとにトップレベルの@testsetを1つ設けます
  • 個々の@test呼び出しで基本機能を評価します
  • エッジケースと型の安定性は個別にテストします
  • 想定されるエラーには@test_throwsを使用します

コード構成

  • モジュールを通じて機能を整理します
  • 分離には複数ディスパッチを伴う抽象型を使用します
  • 一貫したプロジェクト構成(src/、test/、docs/)を維持します
  • 公開API関数のみをエクスポートします
  • 大規模なモジュールの整理にはincludeを使用します

コメント