2025年5月17日土曜日

codex(chat-gpt)でリファクタリングができるのか評価してみる


https://chatgpt.com/codex



3.7 sonnetでメインループが存在する系のコードを書いて、一応完成させた。

だが、こんなの実際の人間は組まないよなー って感じの冗長化されたコードになっている。

フラグを複数管理すれば、もっとシンプルに書ける。



コードも長くなるし見通しも悪いので、codexでリファクタリングしてみるテスト。



<プロンプト>

cyber_grid_v2, big_eye_road, small_road, bee_road, game_history
これらをベストプラクティスに基づきリファクタリングしてください。
cyber_grid_v2は10目や3目が組み込まれてしまっている。

今の操作関連と表示処理は完璧なので、この動作を壊さないようにしてください。
全体的に無駄な処理がおおく、処理の流れが悪いように思えます。

例えば入力履歴が1つあれば、すべて復元できるのに、1個1個addしたりするのがおかしいように思える。
処理の流れが単純化していないので、冗長なメインコードになってしまっている、こんなのフラグ管理をするだけで、もっとシンプルにわかりやすく実装できる。







1分30秒ほど評価したあと、5個のタスクが作られた。
ここの評価で口をはさむことは、もうできない。


ここで完全に分離したタスクとして実行できるのが効率がいい。
本当に互いに疎結合として判断できてるのか、怪しい気がするが・・・







一番長いタスクで10分ほど、

ここまでの所要時間20分ぐらいで、一応リファクタリングが終わった。

さて、動作は?


※疎結合として判断してない、規模が大きいとき処理順を間違えるとコンフリクト起こすので注意!

まぁ仮にマージコンフリクト起きても、再度リファクタすればいいのだが・・・
codexがgit操作しまくってパッチを作ってくれるが、手間なので、なるべく起こさなようにした方がいい。



たまに失敗する。










結果として、とりあえずリファクタリングは完了した。

だが、メインループ系の冗長的な処理はまったく改善することはなかった。

やらないより、やった方が少しマシって程度。


だが、見つけにくい致命的なバグを生み出してしまっていた。

結果リファクタリングは失敗したので、失敗したものをさらに直してみる。


もう一度しつこくリファクタリングの指示をしてみる。




これは致命的なバグです。 他の下部3セクションにも影響します。 なぜこんな事がおきたのかも説明してください。




動作ログを見ても説明がない。
プルリクにも説明がない。
プルリク前のまとめにも説明がない。


直ったが、完全にブラックボックスになってしまった・・・
いまのところソースの評価はローカルIDEでやった方がいい。



0 件のコメント:

コメントを投稿