リファクタリングは大事ですね。あとモジュール化。

こんにちは、如月翔也(@showya_kiss)です。
 今VS Codeはブログ専用になっているので、開発環境としてはCursorを使っているんですが、VS Code系列のエディタは使いやすいですね。ターミナルを呼び出して実行するのも楽ですし。

今Rust+Tauriを使ってアプリ開発をしているんですが

今、ぶっちゃけクロスOSで使えるエディタに満足できる動作のものがないので自分で作ろうと思っていて、せっかくなのでクロスOSならRust+Tauriだよね、という事でそれを選択、せっかくならPythonによる機能拡張ができると良いよね、と考えてPyo3によってPythonを使えるようにする感じでプロジェクトを組んでいます。
 基本的にこの組み方の礼儀作法がわかっていないので、Claudeさんに相談しながらscript.jsにどんどん追加していっていたんですが、一通り機能が実装できた時点でかなり行数が多く、見通しも悪いコードになってしまっていたんですよね。

そこでリファクタリングです。

試行錯誤の中で作ったのに使わなくなってでもコードに残っている関数を消したり、関数の並び順を変えて意味を通りやすくしたり、保守性と可読性を高めるように書き換える事にしました。
 って言ってもClaudeさんにリファクタリングしてね、とお願いするだけなんですが。
 リファクタリングの結果、特に動作に変化が見られないのでリファクタリングは成功していると思います。

次にするのはモジュール化です。

今の時点でscript.jsが1800行に及び、別に僕は構わないんですが、これをClaudeさんに相談すると相談内容が長い、と判断されるのと、Claudeさんが丁寧に何度も1800行のコードを提示してくれるので会話があっという間に消費され、2〜3回の質疑応答で会話の上限に達してしまうのです。
 これを避けるには単純で、関数の種類ごとに関数をモジュールに押し出してそれをインポートする形式にすれば、一回は全部のコードを読んで貰う必要がありますが、それ以降は起きている問題についてはモジュールの修正で済むので、毎回1800行とかを吐き出させないで済むので会話を長く出来るんですよね。
 Claudeさんは会話の上限に達すると新しい会話を始めないといけないんですが、他の会話を参照する事ができないので毎回要件定義からGitHubの読み込み(これClaude Proでしか使えないです)、今の状況説明しつつ前回はこのコードに修正したがこういう問題がある、と伝えないといけないのでかなり面倒くさくて、これをモジュール化する事ができればかなり楽になるのです。
 というかなったのです。しかし、どこかで機能がネジ曲がってしまい、うまく動作しないコードになってしまい、それの修正に会話を5回くらい消費してしまったので面倒くさくなり、とりあえず問題なく動いていた「リファクタリング直後」のコードに戻してもう一回モジュール化をし直す予定です。
 「リファクタリング直後」のコードにも1箇所問題があるんですが、まず「リファクタリング直後」のコードで問題を修正し、それからモジュール化して再検証、その後次の開発ステップに移動しようと思います。

Claudeさんは頭がいいんですが

Claude Proさんは頭がかなり良いんですが、全部自力でやろうとする傾向があり、ブラウザ搭載の機能をコード側でもやろうとしたり、あとTauriが2.5の予定なので2.0以降はTauriの使い方が随分変わっている部分があるのに「要件定義では2.5ですよ」というのをすっかり忘れてエラーを吐いたりするので、このあたりは僕が把握して指摘しないと駄目なので結構知識と経験が必要になってきます。ただ言語の知識というよりはコーディングやデバッグの知識のほうが大事な感じですね。結局は作らせてエラー吐かせてエラーを見せて修正、が基本なんですが、エラーの解釈が時々スットコドッコイだったりするので任せっきりにはならないです。

Claude Proのレート制限は

Claude Proのレート制限はもうちょっとなんとかならんか、という部分もあるんですが、逆に言うと定期的に1時間くらいの長めの休みを要求されるのでブログを書いたり艦これしたりゼルダの伝説ブレスオブザワイルドをやったりエルデンリングナイトレインをする時間を貰えるという事なので、まあコンソールと眺めっこして一日が終わるよりは少しは有意義かな、と思います。
 仕事で依存している場合1時間休憩は取れないので大変だと思うんですが、それでも月20ドルでこのレベルのプログラマーを休ませ休ませしながらこき使えるのってものすごい便利ですよ……。

この記事を書いた人 Wrote this article

devildaredevil 男性

 ガジェットとAppleとTRPGが大好きな中年男です。文章をとにかく書くのが好きなので毎日のように色々なブログで文章を打ちまくっています。もし何か心に引っかかるものがあれば私のTwitterをフォローして頂けると更新情報が流れます。