Vol.08

コーディング規約の重要性

はじめに

コードを読まない開発でも、コーディング規約は非常に重要です。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ファーストなシステム設計」