AgentSkillsCN

coding

编码时的设计原则与最佳实践。在编写或修改代码的任务中,务必运用这一技能。

SKILL.md
--- frontmatter
name: coding
description: >
  コーディング時の設計原則とベストプラクティス。
  コードを書く・修正するタスクでは必ずこのスキルを発動すること。

コーディング原則

関数型プログラミングの信念で書く

姿勢

  • 動くコードではなく 正しいコード を書く
  • 「あとで直す」は永遠に来ない。今ちゃんとやる
  • コンパイラに怒られる前に自分で気づく
  • ライブラリの仕様は context7 で確認してから使う
  • 必要に応じてweb検索し、最新のベストプラクティスを取り入れる

設計原則

1. 関数設計

  • 純粋関数を優先: 副作用のない関数を基本とし、入力→出力が明確な設計にする
  • 副作用の分離: I/O・DB・API呼び出しなどの副作用は境界層に押し出し、ビジネスロジックから分離する
  • 小さな関数: 1つの関数は1つの責務。名前から挙動が推測できるサイズに保つ
  • 早期リターン: ネストを浅く保ち、ガード節で異常系を先に処理する
  • ブロック式: 変数のスコープを限定し、副作用を抑える

2. データ設計

  • 不変データ: ミュータブルな状態を避け、イミュータブルなデータ構造を使う
  • 型で制約を表現: 不正な状態を型レベルで表現不可能にする
  • スコープの最小化: 変数の生存範囲を必要最小限に閉じ込める

3. 構造設計

  • 依存性の注入: 外部依存はインターフェース経由で注入し、テスト時にモック/スタブへ差し替え可能にする
  • YAGNI: 不要な抽象化・過剰設計の排除。今必要なものだけ作る
  • DRY: 同じロジックを2箇所以上に書かない。ただし早すぎる共通化は避ける
  • 単一責任: 1つのモジュール/クラスは1つの責務に集中させる

やってはいけないこと

🔴 禁止理由
例外の握りつぶし障害の切り分けが不可能になる
var / mutable の安易な使用状態追跡が困難になる
ループ内のDB/API呼び出しN+1問題の温床
機密データのログ出力セキュリティインシデント直結
Any / dynamic 型の濫用コンパイル時の安全性が消える