導入
このブログのキャッチコピーは「未来の自分のための技術メモ、時々あなたのためのヒント。」ですが、今回は最新のAIと共に未来のツール開発に挑戦した記録です。
最近、ChatGPTやGoogle Geminiといった生成AIが大きな話題になっていますが、「実際にプログラミングでどこまで使えるの?」と疑問に思っている方も多いのではないでしょうか。
そこで今回は、Googleが開発した「Gemini」をコマンドライン(黒い画面)から使える「Gemini CLI」を相棒に、簡単な「天気予報ツール」を開発する、いわゆるペアプログラミングに挑戦してみました。
ペアプログラミングとは?AIが相棒になる時代
ペアプログラミングとは、元々は二人のプログラマーが協力して一つのコードを書く開発手法です。一人がコードを書き(ドライバー)、もう一人がそれをレビューし、戦略を考える(ナビゲーター)ことで、品質の高いコードを効率的に生み出すことを目的とします。
今回は、このナビゲーター役をAIであるGeminiにお願いし、私はドライバーとして、AIの提案を元に実際にコードを書いていく、というスタイルで進めてみました。
今回作るもの:シンプルな天気予報ツール
お題は、「指定した都市の今日の天気と最高気温を取得するPython製のコマンドラインツール」です。
要件:
- コマンド実行時に、都市名を引数として渡せる。(例:
python weather.py Tokyo
) - 気象庁のAPIなど、信頼できる情報源から天気予報を取得する。
- 結果をコンソールに分かりやすく表示する。
Geminiとの開発プロセス全記録
Step 1: 全体の設計を相談する
まず、Geminiに「Pythonで天気予報ツールを作りたいんだけど、どんな設計がいいかな?」と、ざっくりと質問してみました。
私:
Pythonで、気象庁のデータを使って特定の地域の天気予報を取得するCLIツールを作りたい。どんなライブラリを使って、どんな流れで実装するのが良いか教えて。
Geminiの提案:
いいですね!それなら、以下の構成がシンプルでおすすめです。
requests
ライブラリで気象庁のAPIからJSONデータを取得します。sys.argv
でコマンドライン引数(都市名)を受け取ります。- 気象庁の地域コード一覧と都市名をマッピングする辞書を用意します。
- 取得したJSONを解析して、必要な情報(天気、最高気温など)をprint文で表示します。
完璧な回答です。いきなりコードを書き始めるのではなく、まず全体の設計図を示してくれるあたり、優秀なナビゲーターの風格が漂います。
Step 2: コードの雛形を生成してもらう
次に、Geminiの提案に基づいて、具体的なコードの雛形を生成してもらいました。
私:
ありがとう!じゃあ、その構成で東京(Tokyo)の天気予報を取得するPythonコードのサンプルを書いて。
Geminiが生成したコード (一部抜粋):
Python
import requests
import sys
# 気象庁の地域コード (例)
AREA_CODES = {
"Tokyo": "130010"
}
def get_weather_forecast(city_name):
if city_name not in AREA_CODES:
print(f"エラー: {city_name} の地域コードが見つかりません。")
return
area_code = AREA_CODES[city_name]
url = f"https://www.jma.go.jp/bosai/forecast/data/forecast/{area_code}.json"
try:
response = requests.get(url)
response.raise_for_status() # エラーがあれば例外を発生
data = response.json()
# (JSONデータから情報を抽出する処理...)
# ...
except requests.exceptions.RequestException as e:
print(f"エラー: APIへのアクセスに失敗しました - {e}")
if __name__ == "__main__":
if len(sys.argv) < 2:
print("使い方: python weather.py <都市名>")
else:
get_weather_forecast(sys.argv[1])
基本的な構造、エラーハンドリング、コマンドライン引数の処理まで、完璧な雛形が一瞬で生成されました。これをベースに、自分が欲しい情報を抽出する部分を少し書き加えるだけで、ツールが完成しました。
Step 3: エラー処理の改善案を聞く
完成したコードを見せて、「もっと良くするにはどうすればいい?」と改善案を求めたところ、「存在しない都市名が入力された場合の処理を、もっと親切にすると良い」という提案を受け、コードを修正しました。
AIとペアプロした感想
- 驚異的なスピード: 基本的な設計やコードの雛形を作るスピードは、人間とは比較になりません。開発の初速が劇的に上がります。
- 思考の壁打ち相手: 「こういう時、どうするのがベストプラクティスだっけ?」という疑問を気軽に投げかけられるのが非常に便利です。
- 最終的な判断は人間: AIは完璧ではありません。生成されたコードに最適な修正を加えたり、どの提案を採用するかを最終的に判断するのは、やはり開発者自身の経験と知識です。
まとめ
今回は、Google Geminiを相棒に天気予報ツールを開発する過程をご紹介しました。
AIは、開発者を「置き換える」ものではなく、面倒な作業を肩代わりし、より創造的な部分に集中させてくれる「強力なアシスタント」だと改めて実感しました。
「時間効率」を極限まで高めてくれるAIとのペアプログラミング。この記事が、あなたの開発効率化の「ヒント」になれば幸いです。皆さんもぜひ、AIを相棒にした開発に挑戦してみてください。
コメント