Skip to main content

Get full access to 実用 Go言語 ―システム開発の現場で知っておきたいアドバイス and 60K+ other titles, with a free 10-day trial of O'Reilly.

There are also live events, courses curated by job role, and more.

6.1 プロジェクト構成の事前知識

どのプログラミング言語を使っても、ソフトウェアのソースはファイルとディレクトリの組み合わせで作られます。言語によって用語の使い方が多少異なりますし、基盤となる考え方も異なりします。特に、パッケージやモジュールなどの一般的にも利用される用語は、プログラミング言語によってまったく異なる意味を持つことがあります。JavaScriptではファイルの単位がモジュールで、それを複数含む配布物の単位がパッケージです。Goとは逆にパッケージ⊇モジュールです。Pythonもモジュールを含むディレクトリがパッケージで、Goとは逆です。JavaはGoと同じような扱い方です。このあたりの違いを、丁寧に理解しておくことが混乱を減らすことになるでしょう。また、これまでGoの歴史の中では比較的変動が大きな要素だったこともから、時期によって説明が異なるところも現状を理解する難易度を上げている要因です。ここで整理しておきます。

プロジェクトに最適な構成を決定できるように、Goのソースコードを階層化して扱いやすくする機構、モジュールとパッケージについて説明します。詳細な利用方法はこの後で説明しますが、全体像や開発の流れをつかむことができると思います。

6.1.1 パッケージ

Goでは、すべてのソースコードが パッケージ に属します。フォルダ=パッケージです。ソースコードの先頭は必ずpackage文です。ここでパッケージ名を宣言します。

package sample

フォルダに含まれるファイルは論理的な階層とはなりません。1つのファイルall.goにすべての関数を宣言しても、a.gob.goに分けて宣言しても変わりません。b.goからa.goで宣言されている要素へ自由にアクセスできますし、逆も可能です。宣言の順序などはありません。 ...

Get 実用 Go言語 ―システム開発の現場で知っておきたいアドバイス now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.

Don’t leave empty-handed

Get Mark Richards’s Software Architecture Patterns ebook to better understand how to design components—and how they should interact.

It’s yours, free.

Get it now
Cover of Software Architecture Patterns

Check it out now on O’Reilly

Dive in for free with a 10-day trial of the O’Reilly learning platform—then explore all the other resources our members count on to build skills and solve problems every day.

Start your free trial Become a member now