LoginSignup
0
0

はじめに

個人的なChatGPT活用方法についてまとめます。
ChatGPT関連の記事はすでに多く出ているので、備忘・記録として書きます。
「プロンプトエンジニアリング」など込み入った話には触れずゆるく使っていきます。

※ ChatGPTの回答画像は全文を掲載していない可能性があります
※ 記事用に生成されたコードの検証はしていません。

前提条件

ChatGPT Plus(GPT-4) を使う

GPT-3.5と比較して回答の精度が段違いです。
$20/月掛かりますが、それ以上の価値があるので課金しておきましょう。

プログラミングでの活用に限定する

キリがないので、プログラミングでの活用に限定しています。

気を付けること

  • 質問に機密情報やキー情報を含めないようにする
  • 自分で真偽が判断できない情報を鵜呑みにしない
    • あくまで「それっぽい回答」をしてくれるだけ
    • 自身でファクトチェックをするか、判断できる領域で活用しましょう

基本的な使い方

条件を箇条書きで指定する

箇条書きで条件を指定すると期待する結果を得られやすいです。

Javaでとあるフォルダからファイルツリーを出力するプログラムを書いて下さい。
- for文はなるべく使わないでください
- なるべくStreamAPIやLambdaを利用して下さい
- 引数はファイルパスを受け取って下さい
- 例外が発生した場合は、上位にスローして下さい

レビュアーになった気持ちで指摘をしていく

一回で期待する回答が得られることは少ないので、質問を繰り返してブラッシュアップしていきます。
レビューで人間に指摘するようにしていくと、上手く修正していってくれます。

Q1

Javaで1から10の値を合計する関数を作って下さい。

image.png

Q2

for 文を使わないでください

image.png

Q3

LambdaやStreamAPIでできませんか?

image.png

活用方法

欲しいメソッドやクラスを作ってもらう

メソッドコメントを質問として渡すを良い感じになります。

質問例

Goで以下のメソッドを作って。

# 内容
- UTCをJSTに変換する
- 入力値、出力値は文字列「yyyyMMddhhmmss」とする

# 入力値
UTC時間

# 出力値
JST時間
package main

import (
	"fmt"
	"time"
)

func convertUtcToJst(utcTime string) (string, error) {
	// UTC時間の文字列をtime.Timeにパース
	layout := "20060102150405"
	utc, err := time.Parse(layout, utcTime)
	if err != nil {
		return "", err
	}

	// UTCをJSTに変換
	jst := utc.In(time.FixedZone("JST", 9*60*60))

	// JST時間を文字列にフォーマット
	jstTime := jst.Format(layout)

	return jstTime, nil
}

func main() {
	// Example usage
	utcTime := "20230709103000"
	jstTime, err := convertUtcToJst(utcTime)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	fmt.Println("UTC time:", utcTime)
	fmt.Println("JST time:", jstTime)
}

メソッド名や変数名をつけてもらう

質問例

○○をするメソッドの名称を考えて下さい。

○○をするメソッドの名称で△△というのは自然ですか?

といった質問をすると使いやすいです。

メソッドをブラッシュアップしてもらう

質問例

以下のコードを書きましたが、間違いや改善できる点があれば指摘して下さい

クラスの配置箇所の相談

質問例

クリーンアーキテクチャでSpring/Javaの実装をしています。
Controllerでのみ利用する定数定義はどこに格納するのが良いですか?
定数は複数のControllerで利用されます。

image.png

テストデータやダミーデータの生成

架空のアイドルユニット名をいくつか考えて下さい

image.png

経験の無い/浅い言語でのプログラミング

生成した言語を微修正していけば、知らない言語でも結構実装できてしまいます。
ただし、精通している言語とあまりにかけ離れた文法のものは真偽の判断ができないため、難しいです。

あまりに構文の違うものだと厳しいと思いますが、1つ得意な言語があれば

終わりに

雑然とした記事なので、まとめることは特にありません。。。
また思いついた(or 思い出した)内容があれば追記していきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0