SESSION 07

コード生成と
リファクタリング

ex03で仕様書からの実装を体験し、ex04で動作するが保守しづらいコードの解説とリファクタリングを依頼する。「振る舞いを変えずに構造を変える」がリファクタリングの鉄則。

14:55 - 16:05(70分)
実践 2演習
HANDS-ON 01 / 25 MIN
ex03 ── 仕様書からコード生成
フォルダ構成

フォルダ: ex03_generate/
ファイル: spec.md

仕様書の内容
01

入力

サーバー稼働ログのCSVファイル(timestamp, server_name, cpu_usage, memory_usage, status)

02

出力

サーバーごとの集計レポート(件数、CPU平均、メモリ平均、エラー数)+ 全体サマリー

03

技術要件

Python 3.10以上、標準ライブラリのみ使用(csv, sys, collections)

Step 1: 仕様を確認する
VSCodeで spec.md を開いて仕様を確認する
Step 2: 実装を依頼する
Claude Codeに実装を依頼する
Step 3: 確認して実行する
生成されたファイルを確認して実行する
Step 4: 仕様との照合
仕様通りか確認する
Claude Codeへのプロンプト
## Claude Codeに入力するプロンプト ex03_generate/spec.md を読んで、仕様通りのPythonスクリプトを実装してください。 テスト用のCSVファイル(server_log.csv)も作成してください。
実行コマンド
cd handson_cc\ex03_generate python aggregate.py server_log.csv
期待される出力例
============================ サーバー稼働ログ集計レポート ============================ [サーバー別集計] web-01: 10件 | CPU平均 52.3% | メモリ平均 61.2% | エラー 1件 web-02: 8件 | CPU平均 73.8% | メモリ平均 55.0% | エラー 0件 db-01: 12件 | CPU平均 41.5% | メモリ平均 78.9% | エラー 2件 [全体サマリー] 総レコード数: 30 サーバー数: 3 CPU高負荷(80%超): 5件 エラー状態: 3件 ============================
EXERCISE

確認ポイント

仕様書の品質が生成コードの品質を決める。曖昧な仕様だと曖昧なコードになる。

HANDS-ON 02 / 30 MIN
ex04 ── コード読解とリファクタリング
フォルダ構成

フォルダ: ex04_refactor/
ファイル: log_parser.py + logs/access.log

Step 1: 動作を確認する
まず実行して動作を確認する(出力を控える)
Step 2: コード解説を依頼する
Claude Codeにコード解説を依頼する
Step 3: リファクタリングを依頼する
リファクタリングを依頼する
Step 4: 出力を比較する
再実行して出力を比較する
実行コマンド
cd handson_cc\ex04_refactor python log_parser.py
出力例(リファクタリング前に記録しておく)
============================================================ アクセスログ解析レポート ============================================================ 総リクエスト数: 50 合計転送量: 697,439 bytes (0.7 MB) --- HTTPメソッド別 --- GET: 40件 (80.0%) POST: 8件 (16.0%) PUT: 1件 (2.0%) DELETE: 1件 (2.0%) --- ステータスコード別 --- 200 (OK): 39件 201 (OK): 1件 ... --- エラーリクエスト (7件) --- [403] 10.0.0.99 -> /admin/config [401] 10.0.0.99 -> /admin/login [400] 10.0.0.99 -> /../../etc/passwd ...
Step 2 ── コード解説を依頼する
## Claude Codeに入力するプロンプト log_parser.py のコードを読んで、何をしているか解説してください。
Step 3 ── リファクタリングを依頼する
## Claude Codeに入力するプロンプト log_parser.py を以下の方針でリファクタリングしてください。 - analyze_log関数を複数の関数に分割する - 各関数にdocstringを付ける - 出力結果は変えない
出力の完全一致が品質の証明

リファクタリング前と同じ出力が得られれば成功。数値やフォーマットが1箇所でも変わっていたら、Claude Codeにその旨を伝えて修正させる。

EXERCISE

発展(余裕があれば)

「access.log の中に不審なアクセスがあります。セキュリティの観点で分析してください。」と依頼する。10.0.0.99 からの管理画面不正アクセス試行とパストラバーサル攻撃についてClaude Codeが分析してくれる。

演習が終わったら /clear を実行。