
動くコードは書けたけど、“もっときれいに書く”にはどうすればいい?
そんなエンジニアの悩みに応えるのがこのプロンプト。
AIに既存コードを読み込ませることで、保守性・可読性・効率性の面からリファクタリングの提案を受けられます。
コードレビューの補助にも使える、エンジニア必携のプロンプトです!
プロンプトを使うメリット
このプロンプトを使うと、下記のメリットがあります。
- AI視点での改善案をもらえるため、気づきが増える
- コードの可読性や保守性が向上する
- チーム全体のコーディング品質を均一化できる
- 初学者の「なんでダメ?」に理由付きで教えられる署との橋渡しがしやすくなるになる
こんな人におすすめ
- Webエンジニア(フロント/バック問わず)
- アプリ開発者(モバイル・デスクトップ)
- コードレビューを効率化したいテックリード
- 駆け出しエンジニア/新人教育担当者
利用シーン
- 動いてはいるけど“なんとなくイマイチ”なコードの改善
- リリース前のコードレビュー補助
- チームメンバーの書いたコードの品質チェック
- リファクタリングの勉強用教材として部共有用に直したいとき
プロンプト内容
下記の手順通りに画像生成AIツールに入力をしてください。
プロンプト(指示文)の使い方
- 生成AIツールにを開き、以下のプロンプトをコピー&ペーストする
- __欄を入力する
- 生成AIツールにメッセージ
実際のプロンプト
送信例を、内容に合わせて自由に変更・削除してお使いください。
今回はChatGPTへ送信した回答例を紹介します。
プロンプト内容例
#依頼
以下のPythonコードを、保守性・パフォーマンス・可読性の観点からリファクタリングしてください。
コードの問題点を明確に指摘し、改善案を理由付きで説明したうえで、改善後のコードを提示してください。
なお、引数data
には複雑なネスト構造の辞書が格納されることを想定しています。
def process_user_data(data):
result = []
for user in data[‘users’]:
if user[‘status’] == ‘active’:
name = user[‘name’].strip().title()
age = user.get(‘age’, None)
if age and isinstance(age, int):
if age >= 18:
result.append({‘name’: name, ‘age’: age})
return result
Chat GPTの回答
🔍 問題点の指摘:
リスト内包表記に置き換えることで簡潔に書ける可能性あり
ネストが深く、可読性が低い(if
の多重構造)
strip().title()
の処理が直接書かれていて再利用性が低い
デフォルト値取得+型チェック+条件分岐が1か所に詰まりすぎている
✅ 改善案:
内包表記を使ってロジックを簡潔にする
条件式を関数化して読みやすく整理
文字列処理や年齢チェックを明示的に関数で抽出
🔧 改善後のコード:
def is_valid_user(user):
age = user.get('age')
return (
user.get('status') == 'active' and
isinstance(age, int) and age >= 18
)
def format_name(name):
return name.strip().title()
def process_user_data(data):
return [
{'name': format_name(user['name']), 'age': user['age']}
for user in data.get('users', [])
if is_valid_user(user)
]
📝 解説:
内包表記で処理を一文にまとめ、Pythonicな書き方に改善
is_valid_user()
で判定ロジックを明確に切り出し、テストもしやすく
format_name()
によって、文字列加工処理を再利用可能に
まとめ
AIにコードの改善提案を任せることで、レビュー効率が一気にアップします。
個人でもチームでも使えるこのプロンプト、エンジニアの「もっと良くしたい!」に確実に応えてくれます。
日々の実装に“AIの目”を取り入れて、より良いコードを書いていきましょう!