julia について
Julia 開発者向けのプログラミングスキルです。言語の型システム、多重ディスパッチ、高性能計算に重点を置き、コード構成、ドキュメント、テスト、最適化を案内します。
主な機能
- 01多重ディスパッチと型システムの実践
- 02命名とモジュール構成
- 03関数と構造体のドキュメント
- 04エラー処理のパターン
- 05並列処理と性能最適化
- 06Test モジュールの規約
活用シーン
- 01Julia パッケージとモジュールの構成
- 02関数とデータ型の文書化
- 03性能と型安定性の改善
- 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を使用します
コメント
Markdown 対応