Newer
Older
DeepTIAS / .claude / rules / coding-style.md
@rintoHasegawa rintoHasegawa 14 days ago 3 KB [add] コーディング規約を整備

paths: ["Tongue extraction//*.cs", "DeepTIAS.Tests//*.cs"]

コーディング規約 (Coding Style)

C# のコードを書くときは本規約に従うこと.基本は Microsoft の C# のコーディング規則 と 識別子の名前付け規則 に従い,本規約ではプロジェクト固有の点だけを定める.

既存コードの扱い (Legacy Code)

  • 引き継いだコードは命名が混在している(path_outputDir・mat_input のようなスネークケースのローカル変数,Button_start_Click のようなハンドラ名).
  • **新しく書くコードは本規約に従う.**既存コードの名前を変えるのは,その箇所を整理・修正するときに限る.名前を変えるためだけの一括変更はしない(差分が大きくなり,挙動を変えていないことの確認が難しくなるため).
  • WinForms デザイナが生成する名前(button_start・Form1_Load 等)は,デザイナとの対応が崩れるため変えない.

命名 (Naming)

対象形式例
クラス・メソッド・プロパティ・定数PascalCaseTongueDetector,DetectTongue,ScoreThreshold
ローカル変数・引数camelCaseoutputDir,inputImage
private フィールド_ + camelCase_session
インターフェースI + PascalCaseIFeatureExtractor
  • 画像処理の変数は,型が分かる名前にする(Mat なら mask・binaryImage,パスなら maskPath のように Path・Dir を付ける).
  • 論文や手法の名前(Chiu・FiveClick 等)は既存の呼び方をそのまま使う.

書式 (Formatting)

  • インデントはスペース 4 つ.波かっこは次の行に置く(Visual Studio の既定).
  • var は右辺から型が明らかなときだけ使う.
  • using は System 系を先頭にし,未使用のものは残さない.

マジックナンバー (Magic Numbers)

  • 解析結果に影響する数値(検出スコアのしきい値 0.5,小領域除去の面積 500,領域分割の比率 0.2 等)は,名前の付いた定数にまとめる.値は変えない(解析処理仕様 が基準).
  • 定数には,何を表し,単位は何か(画素・比率等)をコメントで書く.

外部の実行ファイル・DLL の呼び出し (External Binaries)

  • 外部 exe(TongueFeatures.exe・TongueAnalysis.exe)を呼ぶ処理は 1 か所にまとめ,引数の並びと出力ファイルをコメントに書く.
  • ネイティブ DLL の DllImport 宣言は専用のクラスにまとめる.

コメント (Comments)

  • コメントは日本語で書く.
  • 「何をしているか」ではなく「なぜそうしているか」を書く(手法の根拠となる論文,値を決めた理由等).
  • public なクラス・メソッドには /// の XML ドキュメントコメントで,役割・引数・戻り値を書く.
  • 使わなくなったコードはコメントアウトで残さず削除する(履歴は git に残る).