動作を保ってコードをリファクタリングする方法。
明示的に変更を依頼されない限り、リファクタリングは観察可能な動作を保つものです。意図しない差を検出できるテストや例を特定してください。
作業手順をタスクに合わせましょう。
変えてはいけない動作と、対処する重複や複雑さを定めます。限定した構造変更を行い、既知のケース、エラー、副作用を元の実装と比較してください。
- 用意するもの
- コードと依頼された構造変更。
- 得られるもの
- 意図した動作を保つリファクタリング案。
入力と結果を確認しましょう。
説明用の入力と出力 · 実際の WebAct 実行ではない学習用サンプル
入力項目サンプル個
Refactor this Python function without changing its result or empty-name error:
def label(name, loud):
if loud:
if not name:
raise ValueError("name required")
return name.upper()
if not name:
raise ValueError("name required")
return name.lower()完成例
def label(name, loud):
if not name:
raise ValueError("name required")
return name.upper() if loud else name.lower()
Checks: label("Ada", True) → "ADA"; label("Ada", False) → "ada". An empty string raises ValueError("name required") in both modes.この入力をプロンプトに読み込み、WebAct にコピーして試してください。結果は掲載例と異なる場合があります。
判断のポイントとトラブル対処。
リファクタリングで意図的にエラー動作を変えてよいですか?
その動作変更が依頼に含まれる場合に限ります。それ以外は保つか、明示的な後続判断として分けてください。
共通コードの抽出で一つの分岐の結果が変わるのはなぜですか?
実行順序、状態、分岐固有の条件を確認してください。似たコードでも異なる前提で処理している場合があります。
自分の資料で試しましょう。
タスクのプロンプト内の例を自分の資料に置き換えてください。必要な要件を残し、タスクを WebAct にコピーします。
タスクを調整してコピー ↑