前回書いている途中で自分が入眠してしまったため続きを書いている入眠用記事担当です。
さて、前回伝え方が悪いのかいきなり全体から違うコードに書き直されて面食らいましたが、気を取り直して進めました。
一度AI側のコードをさらっとチェックして、特に問題が見つからなければテスト環境にdeploy => 出力結果が違えばその箇所を調べて再度AIに修正依頼
を繰り返していたものの、一向に出力結果が思う通りになりません。
( ◜ω◝ ): う〜む、どうも上手くいかんのう...。
( ◜ω◝ ): そう言えばチャット形式のAIて、「基本前回の内容を覚えていない」って聞いたな...。まだあのまんまなんやろか?
しかし某GPT先生の"メモリ"を参照してみると、散々伝えた「修正したい箇所・内容」や細かい仕様も一応入っている様でした。これを消したらそもそも意味無いはず。
AI側には仕様は記録されている前提でとりあえず進めて行ったのですが、ある段階で今度は「Aは正しいのにBを間違う」「Bの問題点を指摘し修正を依頼すると今度はAを間違う」という事態のループに陥ります。
( ◜ω◝ ): 項目Aの値は正しいのですが、項目Bの値がこちらで手動で集計した値と異なっており、正しくありません。
( ◜ω◝ ): 恐らくコード内のxxxの箇所の集計条件が正しく適用されていないと思われます。ここを修正して項目Bの値も正しくなる様にしてください。
[▣🝙▣]: 指示通りxxxを修正しました(長文+絵文字で逐一解説入り)。
( ◜ω◝ ): 今度は項目Bの値が正しくなりましたが、項目Aの値が全部0になってしまいました...。
( ◜ω◝ ): 仕様としては項目Aの値の条件はxxx、項目Bの値の条件はxxxなので、単純に⚪︎⚪︎⚪︎をxxxの条件で集計する様にすれば問題ないはずです。
[▣🝙▣]: 指示通りxxxを修正しました(長文+絵文字で逐一解説入り)。
( ◜ω◝ ): また項目Aの値が正しくなったのに、項目Bの値が変になった...。
( ◜ω◝ ): 問題箇所はxxxの部分なんやから、ここを中心に修正してくれればええんやけどな...。
( ◜ω◝; ): あんまり細かく書き過ぎても精度は上がらんとも聞くし、かと言って大雑把に書くとすぐ勘違いされる様な気がする。
指摘しては修正ループを繰り返していた時、突然見たこともないクエリが入った1文を含むコードが返答されました。
説明はありましたが念の為SQL側の公式ドキュメントを探ると、確かに存在する関数の様です。
( ◜ω◝ ): ほう...。この様なSQL関数を使えばこういう事が出来るのか...。
( ◜ω◝ ): こんなんあるんなら最初からコレで書いてくれれば良いのに。
( ◜ω◝ ): まあいい。要件で使われているバージョンは結構古くて制限多いから、多少分かりづらいコードになっても使えるもんは使おう。
さらっと一通りチェックしたところ、他の箇所にも問題は無さそう...。
( ◜ω◝ ): カラムとかjoinも問題無さそうやな。これで一回実行してみるか。
( ◜ω◝ ): これで上手く行けば、ようやく一山越えるな...。
期待を胸にいざテスト環境にdeployし、画面を起動。
...
( ◜ω◝ ): アッー!めっちゃ重い。システム落ちちゃうかも... => 慌てて実行をキャンセルし事なきを得る
今度はプログラムから生成されるSQLのパフォーマンスに問題があることが判明。
( ◜ω◝ ): まあ元々既存のシステム内には無い処理の仕方してるからなあ...。結構無理してるから仕方ないっちゃ仕方ないが...。
( ◜ω◝ ): しかしSQLのパフォーマンスとか最近気にした事無いしな...。
( ◜ω◝ ): AI先生はそういうのもやってくれるんやろか?
( ◜ω◝ ): 教えて頂いたコードを元にプログラムを修正・実行してみたところ、発行されるSQLのパフォーマンスに問題がある様です。
( ◜ω◝ ): このプログラムが集計対象とするデータの数は、凡そxxx件です。極力現在の処理内容を維持しつつ、パフォーマンスを改善する方法はありますか?
[▣🝙▣]: はい、可能です。こちらがパフォーマンスを改善したプログラムです(長文+絵文字で解説入り)。
( ◜ω◝ ): 勝手にクラスが追加されとるがな。
( ◜ω◝ ): しかも今までのコード全体(中身は殆ど変わっていない)が、優しくふんわりと別の関数に包まれとる。
( ◜ω◝; ): ...これ何の意味があるの?
果たしてGPT先生の「可能です」は本当なのか。
何故、コード全体を関数で包んでしまったのか。
悩んでいるうちに微かに頭の先端から何かが焦げる様な匂いがしてきました。
to be continued...?
(まだ引っ張るの...?)
- 2025.08.30
- by O(:3 )~ ('、3_ヽ)_