カテゴリ: Go言語 更新日: 2025/09/01

Go言語のコーディング規約(公式スタイルガイド)とは?読みやすいコードを書く基本ルール

Go言語のコーディング規約(公式スタイルガイド)とは?読みやすいコードを書く基本ルール
Go言語のコーディング規約(公式スタイルガイド)とは?読みやすいコードを書く基本ルール

先生と生徒の会話形式で理解しよう

生徒

「Go言語って、コードを書くときに決まりごとってあるんですか?」

先生

「はい、Go言語には公式のコーディング規約(スタイルガイド)があって、誰が見ても読みやすいように書くためのルールが決まっています。」

生徒

「具体的にはどんなルールがあるんですか?難しいですか?」

先生

「いいえ、とてもシンプルで初心者にもわかりやすいですよ。それでは、Go言語のスタイルガイドについて基本から説明しましょう!」

1. Go言語のスタイルガイドとは?

1. Go言語のスタイルガイドとは?
1. Go言語のスタイルガイドとは?

Go言語のスタイルガイドとは、コードを書くときの決まりごとをまとめたガイドラインです。これは、Googleが開発したGo言語のチームが公式に定めたルールです。

このルールを守ることで、誰が書いたコードでも読みやすく、理解しやすくなります。たとえば、本やレシピのように「見た目が整っていて、どこに何が書いてあるか分かりやすい」状態を目指します。

2. コードの整形は「gofmt」で自動化

2. コードの整形は「gofmt」で自動化
2. コードの整形は「gofmt」で自動化

Go言語にはgofmt(ゴーフォーマット)という自動でコードを整えるツールがあります。これは、空白の入れ方や改行などを自動的に揃えてくれる便利な道具です。

たとえば、次のような読みづらいコードがあるとします:


func main(){fmt.Println("Hello")}

gofmtを使うと、以下のように自動で整えてくれます。


func main() {
    fmt.Println("Hello")
}

パソコンが苦手な人でも安心です。gofmtを使えば、書き方を覚えきれなくても綺麗に整えてくれるからです。

3. インデントとスペースのルール

3. インデントとスペースのルール
3. インデントとスペースのルール

Go言語では、コードのインデント(字下げ)は半角スペースを4つではなく、タブ(Tabキー)で行います。インデントは、コードの中で何がどこに属しているかをわかりやすくするための目印です。

例えば、以下のように書くとコードの構造が分かりやすくなります:


if x > 0 {
    fmt.Println("xは正の数です")
}

このように、カッコの中に書くコードは必ずインデントするのがルールです。

4. インポートの順番とまとめ方

4. インポートの順番とまとめ方
4. インポートの順番とまとめ方

Go言語では、外部の機能を使うときにimportを使います。そのとき、次の順番で書くのが基本ルールです:

  • 標準ライブラリ
  • 外部パッケージ
  • 自作のパッケージ

それぞれのグループの間には、1行空白を入れましょう。


import (
    "fmt"
    "os"

    "github.com/example/library"

    "myapp/mypackage"
)

このようにすることで、どの機能がどこから来ているのか一目で分かるようになります。

5. 変数名や関数名の付け方

5. 変数名や関数名の付け方
5. 変数名や関数名の付け方

Go言語では、変数名や関数名は短くてわかりやすくするのが理想です。

たとえば、「りんごの数」という変数は appleCount のように書きます。意味がすぐに伝わる名前にしましょう。

また、単語の最初の文字を大文字にするかどうかで、その名前の使える範囲が決まります:

  • PrintMessage → 外からも使える
  • printMessage → 同じパッケージ内でだけ使える

6. コメントの書き方

6. コメントの書き方
6. コメントの書き方

コメントは、コードの意味を説明するためのメモです。Go言語では、読みやすい文章でコメントを書くのが基本です。

関数の前には、その関数が何をするかを説明するコメントを書きましょう。


// sayHelloは、あいさつのメッセージを表示します。
func sayHello() {
    fmt.Println("こんにちは!")
}

コメントは//から始めて、その後に説明を書くのが基本です。

7. 行の長さはできるだけ短く

7. 行の長さはできるだけ短く
7. 行の長さはできるだけ短く

一行がとても長くなると、画面で見にくくなったり、スマホで見たときに折り返されて読みにくくなります。1行はできるだけ短く横に80〜100文字以内が推奨されます。

8. 使わない変数やインポートは削除する

8. 使わない変数やインポートは削除する
8. 使わない変数やインポートは削除する

Go言語では、使っていない変数やimportはエラーになります。そのため、使っていないものはすぐに削除しましょう。


import "fmt"

func main() {
    var message string
}

このようにmessageを使っていないとエラーになるので、fmt.Println(message)のように使うか、変数ごと削除しましょう。

9. 自動整形ツールを活用しよう

9. 自動整形ツールを活用しよう
9. 自動整形ツールを活用しよう

Go言語は、他の言語と比べてもgofmtという便利な整形ツールが標準で用意されている点が特徴です。コマンドラインで以下のように使います:


gofmt -w ファイル名.go

-wは、元のファイルを自動で書き換えて保存してくれるオプションです。

まとめ

まとめ
まとめ

Go言語のコーディング規約は、初心者から上級者まで全てのエンジニアにとって欠かせないルールです。 公式スタイルガイドに沿って書かれたコードは、可読性が高く、保守性に優れています。 特にgofmtによる自動整形、インデントのタブ利用、インポート順序の整理、変数名や関数名の命名規則、 コメントの記述方法などは、実務で非常に役立つ要素です。

この記事で学んだことを振り返ると、Go言語の規約は単なるルールではなく、 チーム開発における効率化や品質向上に直結する重要な要素であることがわかります。 また、コードを短くシンプルに保つことや、不要な変数やインポートを排除することは、 プログラム全体のエラーを防ぎ、動作を安定させる効果があります。

以下に、今回学んだ内容を踏まえたサンプルプログラムを示します。

サンプルプログラム:シンプルな挨拶アプリ


package main

import (
    "fmt"
)

// greetは渡された名前に挨拶を返します。
func greet(name string) {
    fmt.Printf("こんにちは、%sさん!\n", name)
}

func main() {
    greet("太郎")
    greet("花子")
}

このコードでは、Go言語のスタイルガイドに沿ったインデント命名規則コメントの付け方を実践しています。 実際の開発現場でも、このようにシンプルで分かりやすいコードを書くことが推奨されます。

先生と生徒の振り返り会話

生徒

「先生、Go言語のコーディング規約を守ると、どういうメリットがあるんですか?」

先生

「一番大きなメリットは、コードが読みやすくなることです。 自分だけでなく他の人も理解しやすくなり、チーム開発がスムーズになります。 また、ツールが整形してくれるので無駄な議論も減ります。」

生徒

「確かに、決まった書き方があればみんな同じ見た目になりますね。 でも、覚えるのは大変じゃないですか?」

先生

「心配いりませんよ。Go言語はgofmtが自動で整えてくれるので、 細かいルールを完璧に覚えなくても大丈夫です。 ただ、基本的なインデントや変数名の付け方は身につけておくと役立ちます。」

生徒

「なるほど!つまり、スタイルガイドはルールというより、 チームで開発するための共通の言葉みたいなものなんですね。」

先生

「その通りです。規約を守れば、誰が書いたコードでも同じように読めるので、 バグを減らして開発スピードを上げることができます。 これがGo言語の強みの一つなんですよ。」

生徒

「よし!今日からぼくもgofmtを使って、規約通りに書いてみます!」

先生

「素晴らしい心がけですね。 習慣にしていけば自然と身につきますし、 プロジェクトに参加するときもすぐに適応できますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Go言語のコーディング規約や公式スタイルガイドは初心者にも必要ですか?

はい、Go言語の公式スタイルガイドは初心者にとって特に重要です。最初から正しい書き方を覚えることで、読みやすくて理解しやすいコードを書く習慣が身につきます。後から修正するよりも、最初から正しい規約に沿ったコーディングをする方が効率的です。
関連記事:
カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!