話題のAI「Google Gemini」とペアプログラミング!天気予報ツール開発の全記録

AI

導入

このブログのキャッチコピーは「未来の自分のための技術メモ、時々あなたのためのヒント。」ですが、今回は最新のAIと共に未来のツール開発に挑戦した記録です。

最近、ChatGPTやGoogle Geminiといった生成AIが大きな話題になっていますが、「実際にプログラミングでどこまで使えるの?」と疑問に思っている方も多いのではないでしょうか。

そこで今回は、Googleが開発した「Gemini」をコマンドライン(黒い画面)から使える「Gemini CLI」を相棒に、簡単な「天気予報ツール」を開発する、いわゆるペアプログラミングに挑戦してみました。


ペアプログラミングとは?AIが相棒になる時代

ペアプログラミングとは、元々は二人のプログラマーが協力して一つのコードを書く開発手法です。一人がコードを書き(ドライバー)、もう一人がそれをレビューし、戦略を考える(ナビゲーター)ことで、品質の高いコードを効率的に生み出すことを目的とします。

今回は、このナビゲーター役をAIであるGeminiにお願いし、私はドライバーとして、AIの提案を元に実際にコードを書いていく、というスタイルで進めてみました。


今回作るもの:シンプルな天気予報ツール

お題は、「指定した都市の今日の天気と最高気温を取得するPython製のコマンドラインツール」です。

要件:

  1. コマンド実行時に、都市名を引数として渡せる。(例: python weather.py Tokyo
  2. 気象庁のAPIなど、信頼できる情報源から天気予報を取得する。
  3. 結果をコンソールに分かりやすく表示する。

Geminiとの開発プロセス全記録

Step 1: 全体の設計を相談する

まず、Geminiに「Pythonで天気予報ツールを作りたいんだけど、どんな設計がいいかな?」と、ざっくりと質問してみました。

私:

Pythonで、気象庁のデータを使って特定の地域の天気予報を取得するCLIツールを作りたい。どんなライブラリを使って、どんな流れで実装するのが良いか教えて。

Geminiの提案:

いいですね!それなら、以下の構成がシンプルでおすすめです。

  1. requestsライブラリで気象庁のAPIからJSONデータを取得します。
  2. sys.argvでコマンドライン引数(都市名)を受け取ります。
  3. 気象庁の地域コード一覧と都市名をマッピングする辞書を用意します。
  4. 取得した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を相棒にした開発に挑戦してみてください。

コメント

タイトルとURLをコピーしました