pgbigorokuのブログ

プログラムの再利用できそうなコードをアップ

AIでコーディングが楽にしよう!でも油断すると痛い目を見るよ

【初心者必見】

はじめに:AI、強すぎて笑う。でも油断は禁物

最近の開発現場、もうAI抜きでは考えられないですよね。

  • ClaudeやChatGPTでコードを書いてもらって、説明とコメントを整えて
  • 自分は貼り付けて、確認して、はい提出!

こんな流れで、「とりあえず動く」コードなら本当に一瞬で完成します。

でも、ここに落とし穴があるんです。

提出したコードを、AIにもう一度触らせると壊れることがあります。そう、AIは有能だけど無慈悲。「整えますね〜」と言いながら、動いていたコードを平気で壊してきます。

だからこそ、AIを「使うとき」と「使わないとき」の境界線を明確にすることが重要なんです。

提出まではAIにフル依存でOK!

初期の実装フェーズや、動作確認の段階までは、ClaudeでもChatGPTでも使い倒しましょう

AIが得意な作業: - インデント・命名の統一 - コメント補完 - 余計なコードの削除 - 命名整理 & スタイル修正

これらはAIの十八番。手動でやるより圧倒的に早くて綺麗に仕上がります。

ルールは最初に渡しておこう

AIはルールを渡せば優秀ですが、渡さないとズレた結果になることがあります。

例:最初に伝えておくべき命名規則

- camelCaseで関数・変数名を書く
- クラス名やコンポーネント名はPascalCase  
- ファイル名はkebab-case
- 関数コメントはJSDoc形式

これだけで、出てくるコードの質が格段に向上します。

関数には「挙動メモコメント」を必ず書こう(最強テク)

これは本当に効果絶大です。

関数の上に、その関数が何をするか1行でもいいから書くんです。

// ユーザー一覧をAPIから取得して画面に表示する
async function fetchUserList() {
    // ...
}

AIにも人間にも優しく、意図が伝われば整形・修正・リファクタの時に壊されづらくなります

複雑な関数には「詳細メモ」を書け

コードが複雑になるほど、次の情報を書いておくと後々楽になります:

  • 処理の目的
  • 引数の型とその意味(取ってはいけない値も)
  • 戻り値の意味と型
  • 想定されるエラー・例外条件
  • 利用しているライブラリ/API
  • 処理のアルゴリズム(DFS/正規表現パースなど)
  • 特記事項(副作用・依存関係・仕様制限など)

「慣れないと、この項目自体何言ってるの?状態」 だと思いますが、心配無用!Claudeさんがある程度やってくれます

初心者なら先輩に「おー、そこまで気を使ってるのか!でも間違えてるぞw」とか言ってもらえて、むしろ好印象だったりします。

そもそも初心者のコードをそのまま納品するなんてありえないので、きっと全世界の納品されるソースコードは先輩のレビューを通してるはず!?

だから、出しちゃえw

詳細コメントの例

/**
 * 概要: ユーザーの状態を確認し、必要に応じて警告メッセージを返す
 * 引数: user (User型) - ユーザー情報オブジェクト
 * 戻り値: string|null - 警告メッセージ、不要な場合はnull
 * 利用ライブラリ: dayjs
 * 注意: statusプロパティがnullの場合、警告は出さずsilent return
 */
function checkUserStatus(user) {
    // ...
}

⚠️ 提出後の修正はAIに「触らせるな」!

ここが超重要なポイントです。

AIが「ちょっと整えますね〜」とやった結果起こりがちなこと: - 動いていたコードがバグる - 外部との連携が壊れる
- 表面的には整っても、深いところで機能しなくなる

どうすべきか?

  1. 元のコードとAIが修正したコードをdiffで比較
  2. コメントや説明だけコピペして使う
  3. 本体コードは自分の責任で手で書き直す

AIからもらうのは「ヒント」だけ。本体はいじらせない。これが鉄則です。

さらに進んだテク:誰が、なぜ、どうやって作ったかも記録しよう

これは地味ですが、非常に効果的なテクニックです。

理想的なドキュメントコメント例

/**
 * 作成者: HanaSato(Claude原案)
 * 作成日: 2025-05-20
 * 実装環境: Node.js 20 / TypeScript 5.3
 * 概要: 管理画面の月次レポート集計処理
 * テスト: ローカル環境で3種類のダミーデータで確認済み
 * 注意点: データ件数が多いと時間がかかる(要改善)
 * 
 * 改定履歴:
 * - 2025-05-22: null除外条件のバグを修正(by TaroYamada)
 * - 2025-05-24: 出力形式をCSVからJSONに変更(by Claude)
 */

未来のあなた、あるいは他の開発者がこれを見たときの安心感は本当に別次元です。

まとめ:AIは使え。でもコードを守るのは自分だ

フェーズ 使い方
コーディング中 AIに任せてOK。コメント・整形・命名までやらせよう
提出前 自分の目で見直し、挙動コメントや注意点を加える
提出後 AIにコードは触らせるな。コメントだけ抜き取る
保守 改定履歴と背景を残せば、将来の自分も助かる

おわりに

ClaudeやChatGPTは、本当に超有能です。

でもAIを「使う道具」として適切に扱えるかどうかが、現代の開発者に求められるスキルです。

AIに任せるべきところは任せて、でも最後は自分の判断でコードを守る。

コードの未来は、コメントと文脈で決まるんです。


この記事が、AI時代のコーディングで悩む初心者の方の助けになれば幸いです。質問やコメントがあれば、お気軽にどうぞ!