inflearn logo
知識共有
inflearn logo

エレガントなRust 中級(2)―モジュール編

Rustプロジェクトが大きくなると、ファイルを分割するだけではコードの責任範囲や公開範囲を明確に管理するのが難しくなります。この講義では、パッケージ・クレート・モジュールの違いから、ファイル配置、パス、公開範囲、ライブラリと実行ファイルの分離、再公開、ワークスペースまで、順を追って扱います。

6名 が受講中です。

難易度 中級以上

受講期間 無制限

Rust
Rust
Rust
Rust

受講後に得られること

  • パッケージ・クレート・モジュールの違いを区別し、Rustプロジェクトの構造を正確に読み取れるようになります。

  • `mod`宣言によって複数のファイルをモジュールツリーに接続できます。

  • ライブラリと実行ファイルの役割を分けて、テストしやすいプロジェクトを構成できます。

  • 役割と変更理由を基準に、モジュールとクレートの境界を設計できます。

  • 非公開モジュールを接続し、必要な型と関数だけを再公開するライブラリを完成させることができます。

ファイルを分けるだけだったコードを、境界の見えるRustプロジェクトへ

プロジェクトが大きくなると、コードがどのファイルにあるかを知るだけでは不十分です。各コードがどの責任を担うのか、どこまで公開すべきか、複数の実行ファイルがどのコードを共有して使うべきかも決定する必要があります。

この講義では、よく混同されるパッケージ・クレート・モジュールの違いから始めます。続いて、モジュールツリーとファイル配置、crate::self::super::パス、use、公開範囲、ライブラリと実行ファイルの分離、pub useを利用した再公開、Cargoワークスペースを順に学びます。

最後には、model・parser・reportモジュールの内部実装を隠し、外部ユーザーが必要な型と関数だけを簡潔なパスで利用できるライブラリを自分で完成させます。文法を覚えるだけにとどまらず、変更しやすく使いやすいRustプロジェクトの境界を設計することが、この講義の目標です。

このような内容を学びます

パッケージ・クレート・モジュールを正確に区別します

Cargo.tomlが管理するパッケージ、コンパイル単位であるクレート、コードを役割ごとにまとめるモジュールの違いを学びます。 src/lib.rssrc/main.rssrc/binがそれぞれどのクレートの起点となるのかを確認し、1つのパッケージ内にライブラリと複数の実行ファイルを構成する方法を理解します。 each serve as the starting point for a different crate, and understand how to organize a library and multiple executable files within a single package. lần lượt là điểm bắt đầu của crate nào, đồng thời hiểu cách cấu trúc một thư viện và nhiều tệp thực thi trong cùng một package.

1つのパッケージ内でも、ライブラリと各実行ファイルはそれぞれ別のクレートとしてコンパイルされます。

モジュールツリーとファイル配置を関連付けて理解します

mod宣言がファイルを単にコピーする構文ではなく、モジュールツリーにコードを接続する宣言であることを学びます。インラインモジュール、parser.rsparser/mod.rsの違いを確認し、親・子モジュールの論理的な構造と実際のソースファイルの配置を区別します。


モジュールツリーはコードの論理的な関係を表し、ファイルは各モジュールのコードを保存します。

総合演習で公開APIを完成させます

すでに実装されている model、parser、report のコードを非公開モジュールとして接続し、外部に必要な型と関数だけをクレートルートで再公開します。テストの失敗メッセージを一つずつ解決しながら、内部構造を隠し、使いやすいライブラリ API を自分で完成させます。

受講前の注意事項

実習環境

  • オペレーティングシステムおよびバージョン(OS):macOS、Linux、Windows

  • 使用ツール:Git、VS Code、Rustup、Cargo

  • PCスペック:特別に高性能なPCは不要

学習資料

  • オンライン学習教材

  • GitHubソースコード

前提知識および注意事項

  • 洗練された高性能プログラミング言語Rustの入門・活用講座の受講をおすすめします。

  • この講義は『優雅なRust 中級シリーズ』の一部です。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Rust入門コースを修了したものの、パッケージ・クレート・モジュールの違いがまだよく分からない方

  • プロジェクトが大きくなったとき、ファイルやモジュールをどのような基準で分けるべきか悩んでいる方

  • mod、use、pubを使う際に、パスや公開範囲のエラーによく遭遇する方

  • 内部実装を隠し、使いやすいライブラリAPIを設計したい方

前提知識、
必要でしょうか?

  • Rustの基本文法の知識

  • Rustの所有権の基本概念

こんにちは
hatemogiです。

キャリア認証

2,120

受講生

169

受講レビュー

27

回答

4.7

講座評価

8

講座

関数型プログラミングに関心の高いバックエンド開発者です。カカオの開発チーム長、NHNの主席、LINE+のリードを務め、開発チームのリーディングを行ってきました。また、DnotitiaというAIスタートアップで開発チーム長として働き、Rustでプロジェクトを進めました。

カリキュラム

全体

10件 ∙ (54分)

講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価を受けていない講座です。
みんなの役に立つ受講レビューを書いてください!

hatemogiの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!

期間限定セール

¥7,150

35%

¥1,409