DevChat で GPT-4 を VS Code に統合しプログラミング体験を飛躍的に向上させる

はじめに:なぜ DevChat なのか?

GPT-4 をコード補助に使うとどんな感じか?DevChat なら毎日ちょっとチャットするだけで仕事が片付く。例えばこんな感じ:

  • 朝はゆっくり起きて昼寝もする。
  • 午後に DevChat と話しながら数百行のコードを書く。
  • 定時前にコミットを投げて、上司に「よく頑張ったね」と言われる。

でも上司にこの「秘密兵器」を知られたら、3人分の仕事を振られるかも?

背景と動機

筆者は長年 JetBrains ユーザーで、VS Code には懐疑的だった。しかし、GPT-4 を気軽に使うために仮想電話番号や海外クレジットカードを試しても挫折。ところが DevChat は直接 GPT-4 に接続できて無料(当時)ということで、試しに VS Code を入れてみた。最初はバグを見つけて文句を言っていたが、実際に使ってみると問題解決に非常に役立ち、プログラミング効率が大幅に向上した。

実践:DevChat で Web サービスを作る

以下のシナリオでは、Go 言語で API サーバーを書き、Kubernetes にデプロイするまでの全工程を DevChat に手伝ってもらう。登場人物は「開発者」としよう。

1. プロジェクトの準備

mkdir go-webapp
cd go-webapp
git init

VS Code を開き、DevChat 拡張機能をインストール。https://www.devchat.ai でキーを取得して設定(Mac: ⌘+, / Windows: Win+,)。簡単な挨拶で動作確認完了。

2. Web フレームワークの選択

開発者: 「Go で API サーバーを書きたい。K8s で動かす。適切なフレームワークを教えて。」
DevChat は Gin、Echo、Fiber、Chi の4つを提示。今回は Gin を選択。

3. コードを書く

開発者: 「Gin で GET /ping を実装したサンプルコードを教えて。」

go mod init github.com/example/go-webapp
go get github.com/gin-gonic/gin

main.go を作成:

package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{"message": "pong"})
    })
    r.Run(":8080")
}

実行して動作確認:

go run main.go
curl http://localhost:8080/ping
# {"message":"pong"}

4. Dockerfile の作成

開発者: 「このアプリをコンテナ化する Dockerfile を書いて。」(main.go をコンテキストに追加)

FROM golang:1.20-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN go build -o app

FROM alpine:3.18
WORKDIR /app
COPY --from=builder /app/app .
EXPOSE 8080
CMD ["./app"]
docker build -t go-webapp:latest .
docker run -p 8080:8080 go-webapp:latest

5. Helm Chart の作成

開発者: 「Helm でパッケージングしたい。手順を教えて。」

helm create mychart

values.yaml を編集:

image:
  repository: go-webapp
  tag: latest
  pullPolicy: IfNotPresent
service:
  type: ClusterIP
  port: 8080

templates/deployment.yaml の livenessProbe と readinessProbe のパスを /ping に変更。

helm package mychart
# 成功: mychart-0.1.0.tgz が生成

6. ローカル K8s クラスタでテスト

開発者: 「minikube でクラスタを作り、Chart をデプロイしてテストしたい。Mac M1、Docker Desktop あり。」

brew install minikube
minikube start --driver=docker
minikube image load go-webapp:latest
helm install myapp ./mychart-0.1.0.tgz
kubectl get pods
# 正常に起動していることを確認

ポートフォワードでアクセス:

kubectl port-forward deployment/myapp 8080:8080
curl http://localhost:8080/ping

7. コミットメッセージの作成

複数のコミットに分割:

  1. Go コードと依存関係
  2. Dockerfile
  3. Helm Chart

git add 後に DevChat に「commit_message」コマンドを実行すると、GPT-4 が適切なメッセージを提案。例:

  • Add project dependencies and basic server setup
  • Add Dockerfile for Go application
  • Add Helm chart for Golang web application

まとめ

DevChat は単なる ChatGPT を VS Code に移植したものではない。ソフトウェア開発の様々なシナリオ(フレームワーク選定、コード生成、Dockerfile/Helm/commit メッセージ作成)に最適化され、GPT-4 とエディタの隙間を埋める。まだ試していないなら、今すぐ https://www.devchat.ai でキーを取得しよう。

タグ: DevChat GPT-4 VS Code golang Gin

6月3日 20:53 投稿