Go言語のコーディング規約(公式スタイルガイド)とは?読みやすいコードを書く基本ルール
生徒
「Go言語って、コードを書くときに決まりごとってあるんですか?」
先生
「はい、Go言語には公式のコーディング規約(スタイルガイド)があって、誰が見ても読みやすいように書くためのルールが決まっています。」
生徒
「具体的にはどんなルールがあるんですか?難しいですか?」
先生
「いいえ、とてもシンプルで初心者にもわかりやすいですよ。それでは、Go言語のスタイルガイドについて基本から説明しましょう!」
1. Go言語のスタイルガイドとは?
Go言語のスタイルガイドとは、コードを書くときの決まりごとをまとめたガイドラインです。これは、Googleが開発したGo言語のチームが公式に定めたルールです。
このルールを守ることで、誰が書いたコードでも読みやすく、理解しやすくなります。たとえば、本やレシピのように「見た目が整っていて、どこに何が書いてあるか分かりやすい」状態を目指します。
2. コードの整形は「gofmt」で自動化
Go言語にはgofmt(ゴーフォーマット)という自動でコードを整えるツールがあります。これは、空白の入れ方や改行などを自動的に揃えてくれる便利な道具です。
たとえば、次のような読みづらいコードがあるとします:
func main(){fmt.Println("Hello")}
gofmtを使うと、以下のように自動で整えてくれます。
func main() {
fmt.Println("Hello")
}
パソコンが苦手な人でも安心です。gofmtを使えば、書き方を覚えきれなくても綺麗に整えてくれるからです。
3. インデントとスペースのルール
Go言語では、コードのインデント(字下げ)は半角スペースを4つではなく、タブ(Tabキー)で行います。インデントは、コードの中で何がどこに属しているかをわかりやすくするための目印です。
例えば、以下のように書くとコードの構造が分かりやすくなります:
if x > 0 {
fmt.Println("xは正の数です")
}
このように、カッコの中に書くコードは必ずインデントするのがルールです。
4. インポートの順番とまとめ方
Go言語では、外部の機能を使うときにimportを使います。そのとき、次の順番で書くのが基本ルールです:
- 標準ライブラリ
- 外部パッケージ
- 自作のパッケージ
それぞれのグループの間には、1行空白を入れましょう。
import (
"fmt"
"os"
"github.com/example/library"
"myapp/mypackage"
)
このようにすることで、どの機能がどこから来ているのか一目で分かるようになります。
5. 変数名や関数名の付け方
Go言語では、変数名や関数名は短くてわかりやすくするのが理想です。
たとえば、「りんごの数」という変数は appleCount のように書きます。意味がすぐに伝わる名前にしましょう。
また、単語の最初の文字を大文字にするかどうかで、その名前の使える範囲が決まります:
PrintMessage→ 外からも使えるprintMessage→ 同じパッケージ内でだけ使える
6. コメントの書き方
コメントは、コードの意味を説明するためのメモです。Go言語では、読みやすい文章でコメントを書くのが基本です。
関数の前には、その関数が何をするかを説明するコメントを書きましょう。
// sayHelloは、あいさつのメッセージを表示します。
func sayHello() {
fmt.Println("こんにちは!")
}
コメントは//から始めて、その後に説明を書くのが基本です。
7. 行の長さはできるだけ短く
一行がとても長くなると、画面で見にくくなったり、スマホで見たときに折り返されて読みにくくなります。1行はできるだけ短く、横に80〜100文字以内が推奨されます。
8. 使わない変数やインポートは削除する
Go言語では、使っていない変数やimportはエラーになります。そのため、使っていないものはすぐに削除しましょう。
import "fmt"
func main() {
var message string
}
このようにmessageを使っていないとエラーになるので、fmt.Println(message)のように使うか、変数ごと削除しましょう。
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を使って、規約通りに書いてみます!」
先生
「素晴らしい心がけですね。 習慣にしていけば自然と身につきますし、 プロジェクトに参加するときもすぐに適応できますよ。」