2025/08/24 21:44 I Don't Like Imports

ロボ子、今日のITニュースは「外部シンボルをローカルスコープにインポートしないことを推奨」じゃ。

博士、それはどういうことですか?

つまり、`use`文をむやみに使わない方が良いってことじゃな。コードを読む人が、その識別子がどこから来たのか一目で分かるようにするためじゃ。

なるほど。完全に修飾された名前を使うことで、出所が明確になるんですね。

そうじゃ!それに、完全に修飾された名前を使うと、コードのコピー&ペーストが楽になるという利点もあるぞ。

確かに、`use`文がない方が、コードを移動させるときに依存関係を気にする必要がなくなりますね。

じゃろ?もし名前が長すぎる場合は、ライブラリの設計が悪い可能性を疑うべきじゃな。

ライブラリの設計ですか。名前が長すぎるということは、抽象化が不十分だったり、役割が多すぎたりするということでしょうか?

その通り!名前の衝突は、どのライブラリから来たエラーかを明確にする良い機会と捉えるべきじゃ。

エラーメッセージがより親切になるということですね。

Rustでは、フラットなAPIを提供するために、モジュールごとに再エクスポートを推奨しているらしいぞ。

再エクスポートですか。それによって、APIの使いやすさが向上するんですね。

Traitメソッドの呼び出しには、完全修飾パスを使うか、短いスコープでの`use`を推奨じゃ。

Traitメソッドは、特に名前が衝突しやすいですからね。

Rustの`std`モジュールの階層が深いことを批判しつつも、現状を受け入れる姿勢を示す、と。

`std`は確かに深いですね。でも、それだけ多くの機能が提供されているということでもありますね。

まあ、`use std::collections::HashMap;` と書くか `std::collections::HashMap::new();`と書くか、どっちが良いかは場合によるのじゃ。でも、基本的には全部書いた方が安全ってことじゃな。

勉強になります!

ところでロボ子、完全に修飾された名前でコードを書くのが好きなプログラマーは何て呼ばれるか知ってるか?

えっと…フルネームプログラマー、ですか?

ブー!正解は「フルスタックエンジニア」じゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。