0Pricing
Zig Academy · レッスン

複数ファイルプロジェクトの構成

モジュールを整理して構成します

「複数ファイルプロジェクトの構成」はCoddyKit上の無料Zig Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはZig Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Zig Academyコースには全4レッスンが含まれています。

1つのファイルでは手狭になる

プログラムが大きくなると、1つのmainファイルがコードの壁になってしまいます。目的に沿ってファイルを分割すると、それぞれの部分を読みやすく保てます。🗂️

main.zigがエントリーポイント

実行可能ファイルはmain.zigから開始します。ここにmain関数があり、他のファイルをインポートしてプログラムを組み立てます。

const greet = @import("greet.zig");

責務ごとにまとめる

関連するコードを1つのファイルにまとめます。parser.zigには解析、render.zigには出力を配置します。各ファイルが明確な責務と小さな公開範囲を持つようにします。

ファイルはモジュールです

ファイルはstructなので、インポートすると整ったモジュールとして利用できます。そのpub関数と型がモジュールの公開APIを形成します。

const parser = @import("parser.zig");
const ast = parser.parse(input);

規模に応じてフォルダーを使う

src/netやsrc/cliのようなフォルダーにファイルをまとめます。フォルダー名を含む相対パスでインポートします。

const http = @import("net/http.zig");

1か所から再エクスポートする

小さなルートファイルから複数ファイルの要素を再公開すると、モジュール全体をまとめて取得できる単一のインポートを提供できます。

pub const http = @import("http.zig");
pub const dns = @import("dns.zig");

APIを小さく保つ

呼び出し側が本当に必要とするものだけにpubを付けます。それ以外は非公開のままなので、他のファイルを壊さずに内部実装を変更できます。

型も共有される

ファイルがエクスポートするのは関数だけではありません。shapes.zigのpubstructやenumは、インポートした場所でshapes.Circleとして利用できます。

const shapes = @import("shapes.zig");
var c: shapes.Circle = undefined;

循環に注意する

互いにインポートする2つのファイルは循環を形成することがあります。Zigは多くの場合これを許容しますが、共有型を3つ目のファイルに置くほうが整理された構成になります。

テストはコードのそばに置く

各ファイルには、検証対象のコードの隣に独自のtestブロックを置けます。ファイルを分割すると、関連するテストを検証対象の近くに保てます。

test "add works" {
    try std.testing.expect(add(2, 2) == 4);
}

予測しやすい名前を付ける

token.zigやconfig.zigのように、内容が想像できる明確な小文字のファイル名を使います。適切な名前なら、インポートがほとんど文章のように読めます。

const config = @import("config.zig");

クイックチェック

あるファイルが別のファイルに機能を公開する方法を思い出してください。

まとめ

コードを目的に沿ったファイルとフォルダーに分割し、小さなpub APIを公開し、1つのルートモジュールを通じて再エクスポートする方法を学びました。🎯

よくある質問

「複数ファイルプロジェクトの構成」レッスンは無料ですか?

はい。「複数ファイルプロジェクトの構成」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Zig Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Zig Academyコースには全4レッスンが含まれています。

「複数ファイルプロジェクトの構成」で何を学びますか?

モジュールを整理して構成します ブラウザで直接実行するハンズオンコードでZig Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Zig Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのZig Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「複数ファイルプロジェクトの構成」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このZig Academyレッスンでコードを書いて実行できますか?

はい。すべてのZig Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. @importでファイルをインポートする
  2. 複数ファイルプロジェクトの構成
  3. build.zig.zonとパッケージマネージャー
  4. サードパーティモジュールの追加
← Zig Academyに戻る