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";
構文は異なりますが、いずれも名前解決と依存関係の指定です。