
今時のプログラミングがわかった気がした日
今日は1日中プログラミングをしていた。
何時間やっていたんだろう?
朝4時に起きて、ごちゃごちゃ家事やって軽く食事して6時ぐらいからかな。
それからずっと17時まで。
ということは、11時間?!
その間に進捗としては大して進んでいないのだがw(笑ってる場合か)、なんだかコツを掴んだ気がするから一応言語化しておく。(ちなみに寝たのは午後8時過ぎだったと思う)
まず実装したいコードを自力で書く。
もはや最終的にAIが清書するので、動けばいい。
人間として感覚的に書けばいい。
プログラミング初心者みたいにね。細かいことは一切不要。
例えばループが使えたり、関数化できそうな重複した処理もコピペで書いていい。
んで、ある程度まとまったら、全部コピペしてAIに投げる。
Gemni2.0で結構いけるし、ChatGPTも使う。
そもそもVSCODEにもgithubの無料版が入っているし、なんだかこの3つを全部使っている。
ChatGPTに投げて、出てきたコードが直感的にわかりにくかったら、グーグルのやつに投げるとだいたいうまくいく(なんとなくGeminiの方が良さそう)。この見た瞬間の感覚がとても大事。
逆になんか複雑そうなことをしている場合は大体NGだ。
シンプルに少ないコードになることがとても良い。
とりあえず1クラスに百行以上は書きたくないので、百を超えた時点で全部丸投げして、「リファクタリング」&「バグが入らないように」というような指示を出す。そうすると丁寧に解説付きで編集してくれる。まるごと投げているから、丸ごとコピペして終わり。(もちろん元のコードは一旦コメントアウトして保存しておくけど)
nullチェックとか、そういう類なものを全部あとからサクッと追加してくれるからとても助かる。もちろん出てきたコードを実行して、不完全なところはいまだにある。しかし、VSCODEがエラーを出すとgithub copilotの自動修正が入ったりして一行ぐらいなら余裕だ。
楽できるところをとことん楽にする。
今まで細かいことばかり考えてきた。
リファクタリングの本も読み漁った。
この2冊は持っている(下の方は改訂していない方だけど)
こういう知識があるからこそAIにコードを修正させたり、書かせたりするとスラスラ読めるんだろうなと思う。
とりあえず、今作っているゲームはどう考えても神ゲーであり、(そう思ってないとやってられない)AIが味方してくれるという環境がある。
毎日とても楽しい。11時間とか働くのも全然苦じゃない。
みんなも暇で一攫千金当てたいならAI使ってゲーム作ったらいいのにねえ。
もうAIなしでプログラミングをしろと言われても無理というメンタルになってしまった。でもまだまだ使い方が甘いところもあるんだと思う。しかし、なんとなく使いこなしている感覚が出てきた。いい感じである。☺️
AI使い方まとめ
・エラーが出たら丸投げで聞く
・ある程度まとまった量のコードを書いたらリファクタリングをお願いする。
・デバック用の関数を作ってもらう(結構便利)
・クラスを丸投げして、「XXがしたいんだけど」と日本語で説明して、ある程度書いてもらう
・3つのAIを使って総合的に良いコードを使う
・コメント付きのコードを生成してもらって意味を理解する(学習)
・AIが書いたコードを100%信じないようにして、すべて読み理解するまで次に進まない
・開発速度は上がっていると思うので、焦らない。(作るだけでは意味がない)
まあこんな感じかな。
世界変わったなぁ・・・。