はじめに
コードを読まない開発でも、コーディング規約は非常に重要です。AIは規約に従って一貫したコードを生成します。規約がなければ、バラバラなコードが生まれ、システム全体の品質が低下します。
なぜコーディング規約が必要か
1. AIの学習パターンを統一
既存コードに一貫性があれば、AIはそのパターンを学習し、同じスタイルで新しいコードを生成します。
2. バグの早期発見
規約に従わないコードは問題のサインです。ルール違反を検出することで、潜在的なバグを発見できます。
3. 保守性の向上
誰が見ても理解しやすいコードは、将来の修正や機能追加を容易にします。
私たちのコーディング規約
規約1:命名規則
【スネークケースで統一】
✓ user_id, created_at, get_user_name
✗ userId, createdAt, getUserName
【理由】
- データベース(MySQL/SQLite)と一致
- フロントエンドとバックエンドで変換不要
- 全体の一貫性を保てる
規約2:イベントハンドラ
【addEventListener使用】
✓ button.addEventListener('click', handle_click);
✗ <button onclick="handleClick()">
【理由】
- HTMLとJavaScriptの分離
- 複数のイベントリスナー設定が可能
- テストが容易
規約3:API呼び出し
【APIClient使用】
✓ APIClient.post('/api/users', data);
✗ fetch('/api/users', { method: 'POST', ... });
【理由】
- 認証処理の一元管理
- エラーハンドリングの統一
- ベースURLの一括管理
規約4:エラーハンドリング
【統一されたエラーレスポンス】
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "メールアドレスは必須です"
}
}
CLAUDE.mdへの記載例
# コーディング規約エッセンシャル
## 1. 命名規則
- 全てスネークケースで統一
- 変換処理は禁止
## 2. イベントハンドラ
- インラインイベントハンドラ禁止
- addEventListener使用
## 3. API呼び出し
- fetchの直接使用禁止
- APIClient使用必須
## 4. 禁止事項
- var の使用(const/let を使う)
- console.log の本番コード残存
- ハードコードされた設定値
規約違反への対処
【違反を発見したら】
1. 仕様書・規約を確認
2. AIに規約を再度伝えて修正依頼
3. 修正後、動作確認
【予防策】
- 規約をCLAUDE.mdに記載
- 新機能実装時に規約を明示
- 定期的なコードの品質確認
まとめ
コーディング規約は、AIと人間の共通言語です。規約を明確に定義し、AIに伝えることで、一貫性のある高品質なコードを維持できます。
次回:「APIファーストなシステム設計」