Rustfmtで秩序を!ソフトウェアエンジニアが知るべきコード整形とcargo fmt


Rustfmtで秩序を!ソフトウェアエンジニアが知るべきコード整形とcargo fmt

rust-lang/rustfmt

2025-10-15

ダース・ベイダー
ルーク、聞くがいい。お前が書いたあのRustコードだ。インデントはバラバラ、スペースの入れ方も一貫性がない。見るに堪えん!

ルーク・スカイウォーカー
父上…。でも、動くことは動くんですよ。それに、急いでいたんです!

ダース・ベイダー
動くだけではダメだ、ルーク。プロジェクトでは一貫性こそが重要。多くの開発者が関わる時、コードの見た目が揃っていないと、バグを見つけるのも、機能を追加するのも困難になる。これではダークサイド…いや、メンテナンス地獄に落ちるぞ。

ルーク
メンテナンス地獄は嫌ですね…。じゃあ、どうすればいいんですか?

ダース・ベイダー
そこで登場するのが、rust-lang/rustfmtだ。これはRustのコードを自動で標準的かつ一貫したスタイルに整形してくれるツールだ。これこそが、Rust開発における秩序をもたらす!

ルーク
自動で整形してくれるのは便利そうですが、具体的に僕たちエンジニアにどんな良いことがあるんでしょう?

ダース・ベイダー
いい質問だ。このツールがもたらすメリットは計り知れない。

ベイダー
整形ルールに関するコメントや指摘が不要になる。コードレビューで本質的なロジックの改善に集中できる。「ここインデントが違う」「スペースが多い」といった雑念から解放されるのだ。

ルーク
チーム全員が同じフォーマットで書くことになるわけですね!

ベイダー
そうだ。誰が書いても同じスタイルになる。プロジェクト全体で可読性が向上し、新しいメンバーもすぐにコードベースに慣れることができる。まるで帝国軍の行進のように、完璧な統一感だ!

ルーク
手動で整形する手間がなくなるのは本当に助かります。僕は新しい機能の実装にフォースを集中させたい!

ベイダー
その通り。機械に任せられる作業は任せるべきだ。開発者はより価値ある創造的な作業に時間を費やせる。

ベイダールーク、導入は非常に容易だ。Rustのパッケージ管理ツールcargoを使えば、すぐに使える。

通常、Rustの環境をセットアップしていれば、rustfmtは既にrustupでインストールされているはずだ。もし入っていなければ、このコマンドを打つがいい。

rustup component add rustfmt

ルーク
ええと、このコードを直したいんです。ちょっとスペースが多かったり、改行が不自然だったりして。

fn  main ( ) {
    let  x = 10;
     if x > 5 {
        println! ("{}","x is large");
    }
}

ダース・ベイダー実行はcargo fmtコマンドだ。プロジェクトのルートディレクトリで実行するがいい。

cargo fmt

ベイダー
見事だ!rustfmtの圧倒的な力がコードに秩序をもたらした。

fn main() {
    let x = 10;
    if x > 5 {
        println!("{}", "x is large");
    }
}

(ルークのコードの不必要な空白や改行が全て修正され、標準的なRustのスタイルになった。)

ルーク
父上、でも、チームによっては、標準のルールではなく独自のルールを使いたい場合もあるんじゃないですか?

ダース・ベイダーその通りだ。rustfmtは柔軟性も兼ね備えている。プロジェクトのルートにrustfmt.tomlという設定ファイルを作成することで、特定のスタイルオプションを上書きできる。

例えば、文字列の幅を80文字ではなく120文字に設定したい場合などだ。

# rustfmt.toml
max_width = 120

ベイダー
これにより、プロジェクトの独自のフォースに従ったコード整形が可能となる。

ダース・ベイダー
ルーク、覚えておくがいい。rustfmtを使うことは、効率と一貫性を追求するプロのエンジニアにとって義務だ。これにより、お前はコードの美しさと品質を高め、銀河系一のデベロッパーに近づくことができる。

ルーク
分かりました、父上!僕のコードはもうダークサイドに迷い込みません!rustfmtの力で、クリーンなコードを書き続けます!


rust-lang/rustfmt




開発効率爆上げ!Rust製P2Pライブラリ iroh徹底解説

レジ「いらっしゃいませ~!」あなた「(スマホ片手に)いや~、困ったなぁ。最近、プロジェクトでデータ共有するのに、DropboxとかGoogle Driveとか使ってるんですけど、なんかこう、もっとスマートな方法ないかなって。」レジ「おや、それはお困りですね!もしかして、ソフトウェアエンジニアさんですか?」


コードの悩みを解決!ast-grepで始める効率的なリファクタリング

彼女 「あ〜、もう!明日のお出かけ、何着ていこう…?この服もなんだか違うし、あの服も合わせにくいし…もう嫌になっちゃう!」彼 「また悩んでるのかい?そんな時は僕に任せてよ。僕の持ってる『構造的クローゼット検索ツール』を使えば、君の持ってる服の中から、ぴったりの組み合わせをすぐに見つけられるよ。」


Rust製オープンソース決済スイッチ juspay/hyperswitchで効率的な決済処理を実現!

ワシは織田信長……いや、俺はソフトウェアエンジニアの「俺」だ! 今日はな、お主らにとって、まさに「天下布武」ならぬ「決済布武」を成し遂げるかもしれない秘宝、「juspay/hyperswitch」について語ろうではないか!(ガラガラと襖が開き、厳かな音楽が流れる…)


警察 vs ヤクザのコントで学ぶ!Rust GUI「gpui-component」はなぜ高性能で使いやすいのか

これは、Rustで高性能かつクロスプラットフォームなデスクトップアプリケーションのGUI(グラフィカルユーザーインターフェース)を構築するためのコンポーネントライブラリです。要するに、Rustで素晴らしいデスクトップアプリを作るための、「部品の詰まった宝箱」のようなものです。特に、大規模なデータや高速な描画が必要なアプリ(例IDE、高性能なツール)開発に適しています。


そのPython、Rustで書き直さない?闇バイトの甘い誘惑を論理的に論破するRustPython入門

ただ、今回は「闇バイトに注意」というテーマで、ちょっとしたコント仕立てでお届けします。怪しい勧誘には気をつけつつ、技術の深淵を覗いてみましょう!【登場人物】先輩エンジニア(A)Rustが大好き。何でも爆速にしたがる。後輩エンジニア(B)最近「高単価・即日払い」のエンジニアバイトを探している。


「Google版Rust」で学ぶ、信頼性と安全性を高めるコーディング

このコースは、単なる文法解説にとどまらず、実用的な視点でRustを学ぶことができます。信頼性の高さ GoogleのAndroidチームという、世界トップクラスのエンジニアたちが実際に使っている教材です。内容の質と正確性は非常に高いと言えます。


MinIO代替?「rustfs/rustfs」で高性能ストレージを構築する!

(舞台はとあるIT企業の開発室。エンジニアのAさんとBさんがストレージの課題に頭を抱えている。)Aさん 「はぁ〜、またストレージがパンパンだよ…。データが増えるのは嬉しいんだけど、管理が大変だし、レスポンスも遅い時があるんだよなぁ。もっと『うまい、早い、安い』ストレージはないもんかな…。」


AIアプリケーション開発の新常識:chroma-core/chroma入門

「煽り運転に注意」という例えは面白いですね。それになぞらえると、chroma-core/chromaは「AIの安全運転を助ける、賢いカーナビ」のような存在です。AI、特に文章や画像のような非構造化データを扱うAIアプリケーションを開発していると、大量のデータの中から、AIにとって意味のある情報(例えば、特定のキーワードを含む文章や、似たような画像)を素早く見つけ出す必要が出てきます。


【エンジニア必携】AIコードアシスタントを「一元管理」!cc-switchで開発フローを劇的に効率化

コントのようなやり取りで解説するのは少し難しいですが、「farion1231/cc-switch」というツールの、ソフトウェアエンジニアにとっての価値、導入方法、そしてサンプルコードの考え方を、コンビニ店員と常連のお客さんのようなフレンドリーな会話調で、分かりやすく丁寧にお伝えしますね!


Waylandの新時代へ!niriの「スクロール可能タイル」がもたらす巨大ワークスペース活用術

「体操のお兄さん」風に、元気よく、そしてソフトウェアエンジニアの視点から「YaLTeR/niri」がどう役立つのか、導入方法やサンプルコードの例まで、分かりやすく、フレンドリーに解説しますね!みんな、こんにちはー!今日のデスクトップ体操のお時間だよ!担当は、みんなのデスクワークをサポートする、元気いっぱいの(仮称)AIアシスタントだよ!