ChatGPTを使ってプログラムを修正する(リファクタリング)
AI技術の進歩が凄すぎる・・・
ん?りょうじ殿。どうしたでござるか?
最近、趣味でプログラミングをしているのですが、コードの修正が大変なんです。そんなときにAI(ChatGPT)を活用するとものすごく楽で、ビックリしています。
いやいや。AIでは人間を超えられないでざる!拙者と刀で切り合っても、拙者が勝つでござる!
確かに、人間が勝っている分野はあります。けれども、AIが得意な分野もありますし、人間が活用することでより良い生活になるかもしれません。
ふん!じゃあAIの力を見せてみろでござる!
ということで、今回は最近自分が趣味でやっているプログラムでChatGPTを活用している事例をざくっと解説します。
目次
ChatGPTとは?
さっそく、ChatGPTに何が出来るのか聞いてみました。
ChatGPTは、自然な言葉で対話できるAIアシスタントです。テキストベースの質問に答えたり、会話を楽しんだりできます。事前に言語を学習し、さまざまなタスクに使えますが、最新情報を持っていないことや、文脈によっては誤った情報を提供することがあるので注意が必要です。
アシスタントということは、色んな手伝いをしてくれるんでござるな。
そうですね。検索エンジンで調べたいものを聞いたり、ブログのテーマを考えてもらったり、結構色んなことができます。
質問:JavaScriptとJavaの違いを聞いてみた
質問:ITのブログネタを考えてもらった
質問:文章の添削をしてもらった
情報を教えてくれるだけじゃなくて、ネタを考えたり、文章を修正したりもできるんでござるな!
はい。そして、これを応用するとプログラミングにも活用できるんですね。
プログラムの修正や効率化をChatGPTに手伝ってもらう
本題になりますが、私はプログラムを作成する上で、ChatGPTにアドバイスをもらっています。
質問内容:HTMLとCSSで丸い図形を描画したい。どうすればいい?
質問内容:以下のJavaScriptのプログラムを効率的に書き直して。
/*雨粒一つのオブジェクト */
class OneRain {
constructor(xValue,yValue,rainSpeed) {
this.xValue = Math.floor(Math.random() * xValue); //雨粒を配置する横軸位置
this.yValue = Math.floor(Math.random() * yValue);; //雨粒が落下し始めるスタート時間
this.speed = Math.floor(Math.random() * rainSpeed) + 2.1;
}
//雨粒を表示するために<div class ="AnRain">をHTMLに追加する。
addHtmlTag() {
var newDiv = document.createElement("div");
newDiv.className = "AnRain";
newDiv.style.left = this.xValue + "px";
newDiv.style.top = this.yValue + "px";
newDiv.style.animation = "fall " + this.speed +"s linear infinite";
newDiv.style.width = (rainSpeed/ (this.speed )) * 10 +"px";
newDiv.style.height = (rainSpeed / (this.speed )) * 10 +"px";
// 新しい<div>要素をコンテナに追加
containers[0].appendChild(newDiv);
}
}
const numRains = 80; //雨粒の数を指定する
const displayWidth = 300; //雨粒を表示させる領域の幅
const displayHight = -400; //雨粒の表示をバラバラにするために、非表示領域のY軸を用意する
const rainSpeed = 5.0; //雨粒の落下スピードを1から指定秒のランダムにする
const rainArray = [];
var containers = document.getElementsByClassName("rainDropArea"); //雨粒を追加するdivのclass名を指定
//複数の雨粒を生成する
for(let i = 0; i < numRains; i++) {
rainArray[i] = new OneRain(displayWidth,displayHight,rainSpeed);
rainArray[i].addHtmlTag();
}
す、すごいでござる・・・質問から、プログラムを自動生成しているでござる・・・。
ホント、ビックリしますよね。上手く文章をChatGPTに伝えられれば、かなり精度の高い返事が返ってきます。
AIがあれば、人間は必要ない?
プログラムをする上で、もはや人間は不要なのではと思ったでござる・・・
気持ちは凄く分かります。が、実際に使ってみていて今のところ以下のように感じます。
- 結構間違えた回答が出る
質問内容が不足していたり、ChatGPTが違う情報を参照することで、普通に回答が間違っている場合があります。なので100%信頼するのではなく、参考にする程度がお勧めです。 - 過去の情報しか参照できない
私は無償版のChatGPTを利用していますので、情報が古いんですね。なので、最新の技術情報などをAIに質問しても返事が返ってこないことがあります。 - 大きな計画や設計はまだまだ人間の領域
今の段階では、あくまでアシスタントをしてくれる感じです。なので、システムの企画や設計などは人間の方が勝っていると思います。
ふむ。まだまだ未完成な感じでござるな。
それでも人間よりも圧倒的な速度で回答ができるので、すごしシステムですよね。今後の技術進歩も応援しつつ、上手にChatGPTを活用して勉強していきたいものです。