JavaScriptを有効にしてください

Go言語でのコメントアウトの記述方法とGodocを用いたドキュメント生成

 · 

この記事では、Goの単行コメントと複数行コメントの基本的な使い方を紹介し、ソースコード内での適切なコメントの書き方について解説します。

また、godocツールを使用して、コメントから直接ドキュメントを生成し、Dockerコンテナ内でgodocサーバーをセットアップする方法についても説明します。

1.単行コメント

単行コメントは、特定の行だけをコメントアウトするのに使用します。これは // 記号で始まり、その行の最後まで続きます。例えば:

1
// fmt.Println("Hello, world!")

上記の行は、コメントアウトされているためコードとして実行されません。これは特に、一時的に特定の行を無効にしたいときに便利です。

2.複数行コメント

複数行コメントは、範囲を指定してコメントアウトするのに使用します。これは /* で始まり、 */ で終わります。例えば:

1
2
3
4
/*
fmt.Println("Hello, world!")
fmt.Println("How are you?")
*/

上記のコードブロックは全てコメントアウトされています。これは、大量の行を一度に無効にする必要があるときや、長い説明文を追加するときなどに非常に役立ちます。

Godocについて

Go言語では、コメントを使ってドキュメントを生成する機能があります。
これはGodocとして知られており、特定のフォーマットでコメントを書くことにより、自動的にドキュメントを生成することが可能です。
これにより、開発者はコードベース内で直接ドキュメントを保守することができ、コードとドキュメントの整合性を保ちやすくなります。

Godocの使用例

環境を汚さないようにここではDockerコンテナ内でgodocサーバーを実行するやり方で説明します。

実際のプロジェクトのドキュメントをDockerコンテナ内で確認するために、プロジェクトのソースコードをコンテナ内にコピーして、godocサーバーを実行します。

ステップ1: プロジェクトの準備

greetingという名前のディレクトリを作成し、その中にgreeter.goというファイルを作成します。greeter.goファイルには以下のコードを記述します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// greeter.go
package greeter

// Greet は指定された名前に対して挨拶文を返します。
// 名前が空の場合は、デフォルトの挨拶文 "Hello, World!" を返します。
func Greet(name string) string {
    if name == "" {
        return "Hello, World!"
    }
    return "Hello, " + name + "!"
}

ステップ2: Dockerfileの作成

次に、greetingディレクトリ内にDockerfileを作成します。
このDockerfileは、Go言語の環境をセットアップし、プロジェクトのソースコードをコンテナ内にコピーし、godocサーバーを実行します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# Go言語の公式イメージをベースに使用
FROM golang:latest

# プロジェクトのルートディレクトリをワーキングディレクトリとして設定
WORKDIR /app

# ホストマシンからコンテナ内のワーキングディレクトリへプロジェクトファイルをコピー
COPY greeter.go .

# Goモジュールを初期化
RUN go mod init greeting

# godocツールをインストール
RUN go install golang.org/x/tools/cmd/godoc@latest

# ドキュメントをホストするポートを公開
EXPOSE 6060

# godocサーバーを起動するコマンド
CMD ["godoc", "-http=:6060"]

ステップ3: Dockerイメージのビルド

この時点でのディレクトリ構成が下記のようになっていればOKです。

1
2
3
4
5
6
$ tree
.
├── Dockerfile
└── greeter.go

0 directories, 2 files

greetingディレクトリ(Dockerfileがある場所)で以下のコマンドを実行し、Dockerイメージをビルドします。

1
docker build -t go-greeting-doc .

ステップ4: Dockerコンテナの実行

ビルドしたイメージからコンテナを実行し、godocサーバーを起動します。

1
docker run -p 6060:6060 go-greeting-doc

ステップ5: ブラウザからドキュメントにアクセス

コンテナが実行されたら、ブラウザを開き、以下のURLにアクセスします。

1
http://localhost:6060/pkg/greeting

これで、Dockerコンテナ内で実行されているgodocサーバーによってホストされているgreetingプロジェクトのドキュメントにアクセスできます。
Greet関数のドキュメントを含む、プロジェクトの公開されている全ての識別子のドキュメントが表示されます。

エラーが出なければ、下記のような感じで表示されるはずです。
Godoc

まとめ

Go言語におけるコメントの利用方法は、コードの可読性を高めるための重要なツールです。
本記事では、Goのコメントアウトに関する基本的な知識と、それを活用したドキュメント生成について説明しました。

単行コメントは//で始まり、対象の行の終わりまで有効です。これは一時的にコードの実行を止めたい時などに便利です。
一方、複数行コメントは/**/で囲むことで複数行にわたってコメントアウトを行い、長い説明文や一時的に多くのコードを無効化する際に使用します。

加えて、Go言語のgodocツールを使って、これらのコメントからドキュメントを生成する方法をDockerコンテナ内で実行する手順を紹介しました。
この方法により、環境に依存せずにドキュメントサーバーを立ち上げ、Goプロジェクトのドキュメントをブラウザから確認することが可能になります。

開発中の関数やメソッドに対するドキュメントを整備することで、開発者自身やチームメンバーがコードを理解しやすくなり、より効率的なコラボレーションが期待できます。
Go言語のコメントアウトの書き方をマスターすることで、コードの品質向上に大きく貢献することができるでしょう。


スポンサーリンク

共有

もふもふ
著者
もふもふ
プログラマ。汎用系→ゲームエンジニア→Webエンジニア→QAエンジニア