デバッグとリファクタリングのプロンプト
LLMを利用して既存コードのバグを特定し、リファクタリングや最適化の改善案を得ます。
「デバッグとリファクタリングのプロンプト」はCoddyKit上の無料AI Prompt Engineeringレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Prompt Engineering学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Prompt Engineeringコースには全3レッスンが含まれています。
コード品質向上にLLMを活用する
大規模言語モデル(LLM)は、新しいコードを生成するためだけのものではありません。既存のコードを改善するための強力なアシスタントにもなります。LLMを、知的なコードレビュアーだと考えてみてください。
このレッスンでは、LLMが次の作業に役立つ方法を学びます。
- コード内のバグを特定して修正する
- リファクタリングの改善案を提案する
- パフォーマンスと可読性を高めるためにコードを最適化する
AIでデバッグ:バグを見つける
デバッグとは、ソフトウェアのエラー(バグ)を見つけて修正するプロセスです。時間のかかる作業になることがあります。
LLMを使うと、次のような方法でデバッグを大幅に高速化できます。
- よくある間違いがないかコードを分析する
- エラーが発生している正確な場所を特定する
- 具体的な解決策と修正後のコードを提案する
例を見てみましょう。
初めてのデバッグ用プロンプト
リスト内の数値を合計するはずのPython関数が、正しく動作していないとします。LLMにバグを見つけるよう依頼できます。
次は、バグのあるPython関数です。間違いを見つけられますか?
def calculate_sum(numbers):
total = 0
for num in numbers:
total + num # This line is the bug!
return total
my_list = [1, 2, 3]
print(f"The sum is: {calculate_sum(my_list)}")LLMによるデバッグ分析
前のコードをLLMに渡し、「このPython関数のバグを見つけ、修正方法を説明してください」のようなプロンプトを入力すると、LLMは問題を正しく特定できます。
バグの原因は、total + numが値を計算するだけで、その値をtotalに再代入していないことです。修正後のコードは次のとおりです。
def calculate_sum(numbers):
total = 0
for num in numbers:
total = total + num # Corrected assignment
return total
my_list = [1, 2, 3]
print(f"The sum is: {calculate_sum(my_list)}")LLMでリファクタリング:クリーンコード
リファクタリングとは、外部から見た動作を変えずに、既存のコンピューターコードの構造を変更するプロセスです。家具を動かさずに部屋を片付けるようなものです。
リファクタリングの主な目的は、次の要素を改善することです。
- 可読性:コードを理解しやすくします。
- 保守性:将来の更新や変更を簡単にします。
- 効率:場合によっては、コードの実行速度を高めます(ただし、主な目的ではありません)。
基本的なリファクタリング用プロンプト
LLMは、コードをより簡潔でPythonらしいものにする方法を提案できます(Pythonのベストプラクティスに沿った書き方です)。
リストを処理する次の関数を考えてみてください。動作はしますが、もっとすっきりさせられないでしょうか?
def process_positive_squares(data_items):
result_list = []
for item in data_items:
if item > 0:
squared_val = item * item
result_list.append(squared_val)
return result_list
numbers = [1, -2, 3, -4, 5]
print(f"Processed list: {process_positive_squares(numbers)}")よりすっきりしたバージョン
「可読性と簡潔さを高めるため、このPython関数をリファクタリングし、リスト内包表記を使用してください」のようなプロンプトを入力すると、LLMは次のようなコードを提案することがあります。
リスト内包表記とは、既存のシーケンスから新しいリストを作成する簡潔な方法です。
def process_positive_squares(data_items):
# Using a list comprehension for conciseness
return [item * item for item in data_items if item > 0]
numbers = [1, -2, 3, -4, 5]
print(f"Processed list: {process_positive_squares(numbers)}")LLMでコードを最適化する
LLMは可読性だけでなく、パフォーマンスを高めるためにコードを最適化する方法も提案できます。多くの場合、独自に作成したループを組み込み関数や、より効率的なアルゴリズムに置き換えます。
次は、ある文字が最初に現れる位置を検索する関数です。動作はしますが、Pythonにはより最適化された方法があります。
def find_char_manually(text, char):
for i in range(len(text)):
if text[i] == char:
return i
return -1
my_string = "hello world"
print(f"'o' found at index: {find_char_manually(my_string, 'o')}")組み込み関数を活用する
ここでは、「このPython関数で文字が最初に現れる位置を検索する処理を、どのように最適化できますか?」というプロンプトが適しています。
LLMは、.find()のような、最適化が進んだPythonの組み込み文字列メソッドを使うことを提案するでしょう。
def find_char_optimized(text, char):
# Using the built-in string find method, which is highly optimized
return text.find(char)
my_string = "hello world"
print(f"'o' found at index: {find_char_optimized(my_string, 'o')}")クイックチェック
デバッグとリファクタリングの違いを理解することは、コードを効果的に改善するうえで重要です。
まとめ:AIコードアシスタント
このレッスンでは、LLMがコード品質の向上に役立つ貴重なツールになることを学びました。
- デバッグ:LLMはエラーをすばやく特定して説明し、修正方法を提案できるため、時間を節約できます。
- リファクタリング:LLMはコードの構造、可読性、保守性の改善に役立ちます。多くの場合、より簡潔でPythonらしいコードの書き方を提案します。
- 最適化:パフォーマンスのボトルネックを指摘し、より効率的な方法を提案することもできます。
AIコードアシスタントから最適な結果を得るために、明確で具体的なプロンプトを作成することを忘れないでください。
AI チューターと学ぶ AI Prompt Engineering — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 53
- レッスン
- 199
よくある質問
「デバッグとリファクタリングのプロンプト」レッスンは無料ですか?
はい。「デバッグとリファクタリングのプロンプト」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Prompt Engineeringコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Prompt Engineeringコースには全3レッスンが含まれています。
「デバッグとリファクタリングのプロンプト」で何を学びますか?
LLMを利用して既存コードのバグを特定し、リファクタリングや最適化の改善案を得ます。 ブラウザで直接実行するハンズオンコードでAI Prompt Engineeringを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Prompt Engineeringを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Prompt Engineeringは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。
「デバッグとリファクタリングのプロンプト」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Prompt Engineeringレッスンでコードを書いて実行できますか?
はい。すべてのAI Prompt Engineeringレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- LLMによるコード生成
- デバッグとリファクタリングのプロンプト
- IDEへのLLM統合