13.1 モジュールの目的

大規模なプログラムを意味のある単位へ分割します。

user
order
payment
authentication

モジュールには次の役割があります。

名前衝突の防止
依存関係の明示
内部実装の隠蔽
再利用
コンパイル単位の分割

13.2 可視性

代表的な可視性は次です。

可視性 意味
public 外部から利用可能
private 定義内部だけ
protected 継承先でも利用可能
internal・package 同一モジュールやパッケージ内だけ

現代的な設計では、原則として公開範囲を狭くします。

デフォルトは非公開
必要なAPIだけ公開

13.3 importと名前空間

他モジュールの要素を参照する仕組みです。

from app.users import User
use crate::users::User;
import { User } from "./users";

構文は異なりますが、いずれも名前解決と依存関係の指定です。