ChatGPTでプログラムのリファクタリング(再設計、改修)をするプロンプトを紹介します。
複数人で作業する際や別の誰かに保守運用などを引き継ぐ際に、正常に動作はしているけどソースコードが分かりづらいと嫌な顔をされます。リファクタリング大事。
自分で書いたコードを一度ChatGPTに投げて添削・フィードバックしてもらうと良いかもしれませんね。
コピペで使える具体的な指示書と例文を記載しているのでぜひお試しください。
使用するプロンプト
ChatGPTにリファクタリングをしてもらうためのプロンプトテンプレートは以下です。
以下のソースコードの可読性や保守性を向上させるためのリファクタリング提案をしてください。
[ここにコードを書く]
[]内に構造や書き方を見直したいソースコードを入れて使ってみてください。
以下、他のプロンプト例です。
このLaravelメソッドは機能しますが、可読性や保守性を向上させるためのリファクタリング提案をしてください。
[ここにコードを書く]
このSQLクエリを最適化する方法にはどんな手法がありますか?具体的な改善点と改善後のクエリ例を教えてください。
[ここにコードを書く]
次のJavaScript関数は何をしているのか理解していますが、これをもっとパフォーマンス効率の良い方法で書き直すアイデアがあれば教えてください。
[ここにコードを書く]
私はこのLaravelのクラスをもっと効率的にしたいと考えています。メモリ管理の観点から改善点を指摘して、リファクタリングされたコードを提供してもらえますか?
[ここにコードを書く]
ChatGPTによる回答
上記のテンプレートでPHPフレームワークLaravelのコントローラー内のリファクタリングについてお願いすると、ChatGPTから以下の回答が返ってきました。
Laravelコントローラー内のコードのリファクタリング
以下のソースコードの可読性や保守性を向上させるためのリファクタリング提案をしてください。
$gptQuery = Gpt::CreateGpt()
->publish()
->where('category_id', '!=', '24');
if($typeParam === 'weekly'){
$gptQuery = $gptQuery->weeklyRanking();
$gpt = $gptQuery->orderBy("weekly_views", "desc")->limit(20)->get();
} else if($typeParam === 'total'){
$gptQuery = $gptQuery->totalRanking();
$gpt = $gptQuery->orderBy("total_views", "desc")->limit(20)->get();
} else if($typeParam === 'monthly'){
$gptQuery = $gptQuery->monthlyRanking();
$gpt = $gptQuery->orderBy("monthly_views", "desc")->limit(20)->get();
}
以下、ChatGPTの回答です。
ソースコードを一部抜粋しただけだと少しこちらが意図していない回答をしてくるので、ソースコード+プロジェクト概要などを記載するなどの注意が必要です。