先月の記事 で Claude Code を使い始めたと書いていました。 ClaudeをMaxプランで契約して使って色々書かせてみたり、仕事でも使っているのですが、プログラミング、アプリ開発に対する考え方を変えていく必要があるなと思っているところです。
さて、仕事ではPythonやTypeScriptを書かせることが多いのですが、普段あまり自分がやらないRustを試しに書かせてみることにしました。
私はRustについては、Hello worldを試したことがあるぐらいで、ほとんど使ったことがないです。 ある程度プログラミング言語としての特徴(高速軽量に動作、メモリ安全、クロスプラットフォーム対応)は知っていて、この便利な特性を活用することができるといいなとは思っていたので、いい機会だと思ってやってみました。
ファイル分割・結合を行うCLIツールを作る
私は何度かDelphi、FreePascalでファイル分割ツールを書いたことがあり、要件・仕様を把握しているソフトウェアの題材としてちょうどいいかなと思い、これをClaude Codeを使ってRustで書かせてみることにしました。
成果物はGitHubに置いています。 github.com GitHubのReleasesページには、ビルド済みのバイナリが置かれていて、サイズ指定でファイルを分割できる簡易的なCLIツールをダウンロードできます。
作業の手順
Claude Codeで作業をした手順を簡単にまとめておきます。SNS上を見ていると色々なやり方が議論されていて、まだまだいい方法を模索している状況でもありますが、ひとまず記録として。
- 完成品の仕様、使い方を示したREADMEを作成する
- CLAUDE.mdを整備する(私はレビューしやすいように日本語にしています)
- 実装プランを検討させて、コード設計をレビューし、CLAUDE.mdに反映
- コードを書かせる
- 動作確認
- テストコード、CIの整備をさせる
- READMEに使い方などを反映
こんな感じの手順でやってみました。CIの導入を後からやるのだと、Lintやコードフォーマッタを通すのにコードの結構書き換えが発生し、動作確認が二度手間になってしまったりがあったので、環境整備は早い段階でやったほうがいいかもしれないなと思いました。
Rustのツールチェーン整備
RustはCargoを使ってビルド、パッケージ管理ができるので、プロジェクト開始からの環境整備が簡単にできたのもよかったです。 またクロスコンパイルに対応しているため、GitHub Actionsによるビルドで、簡単に各OS(Windows x64、macOSX、Linux)向けのリリース用のバイナリを作れるのもよかったです。
また、ClaudeCode任せではあったのですが、Lint、Audit-Checkなども当たり前のように導入してくれたところも良かったです。
出力結果に対する評価
今回は出力されたコードの内容を私が読んで大丈夫そうか評価していたのですが、コードの書き方で不明なところがあれば、ClaudeCodeに質問すれば答えてくれるので、これもやりやすかったです。
まとめ
- 言語未経験でも実用的なツールが作れる: Hello world程度の知識しかなくても、Claude Codeの支援により実際にリリースできる品質のCLIツールを開発できた
- Rustのエコシステムとの相性が良い: Cargo、クロスコンパイル、GitHub Actionsなど、Rustを使って開発する際に利用するツールチェーンをClaude Codeが適切に環境構築してくれる
- コードレビューと学習が両立できる: 生成されたコードを読んで評価し、分からない部分はその場でClaude Codeに質問できるため、実装しながら言語を学べる
- 作業手順の確立が重要: README作成→CLAUDE.md整備→設計検討→実装→テスト・CI整備という流れでやってみましたが、試行錯誤で時間を使う部分もあったので、スムーズに開発を進めるためには作業手順は重要になりそうです。
全体的にはすごくいい体験だったので、他にも色々作ってみたいと思いました。