Magnolia Tech

いつもコードのことばかり考えている人のために。

『Rustの練習帳』でコマンドラインツールを作る感覚を身につける

最近、立て続けにRsutに関する話になったので、さすがに一度ちゃんと勉強しておこうと思って、『Rustの練習帳』を元に練習を始めた。

echocatheadwcuniqと、伝統的なUNIX由来のコマンド群を、Rustで実装するとどうなるか?をひたすら繰り返す演習問題集。

その実装の過程で必要になるRustの機能がちょっとずつ増えていくように構成されているところがミソ。

Rustの使い方としてコマンドラインツール実装に使われる例が増えてきたけど、この本でも扱っているclapというライブラリがよくできていて、確かに一番面倒臭い引数の処理をここまで面倒見てくれるなら、メモリ安全云々の前にいい感じ。

一方で、演習問題に使ったコマンドの数が多く、「もう少しまとめても良かったのかも...」という感想は正直ある...clapによるオプション引数の解析機能の実装を繰り返しているうちに、「これはclapの練習帳では?」という気持ちにもなってきたところもある。

で、あまり全体を見ないで頭から進めていった結果、最後の日本語訳者による補足で「clapAPIが大きく変わりました」と出てきて、「マジか!」と思ってしまった。


Rust、ライブラリのドキュメントも異様に充実しているし、chatGPTにエラーメッセージを与えれば割と原因の推測が的確に返ってくるし、NeoVimとLSPサーバとの連携はしっかり作り込まれているし、そもそもエラーメッセージがとにかく親切。

2024年のプログラミング環境はこう有って欲しい、というベンチマークになるなーって思った。


全般的にとっかかりとしてはゴールが明確で、非常に良い本ですね。

意外と厚めの本なので、これを全部解く、というより、いくつか解いて、「なるほどー」となったら、さっさと自分が実装したいコマンドの実装に取り掛かった方が理解は進むと思いました。