Goのコーディング規約【プログラミング初心者向け教材】

プログラミング

プログラミングには様々なお作法や暗黙的なルール、パターンがあります。

プログラムの命名規則やフォーマットなどについてのお作法やルールをまとめたものがコーディング規約になります。

このルールを知らないと他人に正しくコードを読んでもらえなかったり、チーム内で自分だけ違う書き方をしてしまうということになります。

コーディング規約は基本的に組織やチーム毎に内容を決めて作成しますが、多くの場合は元にしているものがあります。

そこで本記事では、Goでよく使われる一般的なコーディング規約についてまとめます。

ある程度一人でプログラミングができるようになった方や、組織やチームにまだコーディング規約がない方は、参考にしていただければと思います。

Goのコーディング規約

Goのコーディング規約のまとめとして、以下の内容を採り上げます。

  • コーディング規約の種類
  • 命名に関する規約
  • フォーマットやレイアウトに関する規約
  • コメントに関する規約

コーディング規約の種類

Goのコーディング規約は、代表的なものとして以下があげられます。

  • Effective Go [英語] [日本語]
    • Go言語の公式ページで紹介しているコーディング規約です。

本記事では、公式で紹介されている『Effective Go』の内容をまとめます。

命名に関する規約

命名 規則
パッケージ名
小文字の単一単語名とする。
短く、簡潔にする。
ソースディレクトリのベース名にする。
bytes
 
ソースが src/encoding/base64 であれば base64 とする
公開メソッド名
公開フィールド名
パスカルケース(アッパーキャメルケース)とする。
MyMethod
非公開メソッド名
非公開フィールド名
キャメルケースとする。
myMethod
コンストラクタ名
生成する構造体名の先頭にNewを付ける
NewExample
1つのメソッドを持つインターフェイス名
メソッドの名前にerを付ける。
Reader

フォーマットやレイアウトに関する規約

go fmtの利用

Go言語では、フォーマットを機械的に行うためのgofmtプログラムを提供しています。
実行することで、標準スタイルのインデントにして、縦方向にも整列します。
元のソースコードをフォーマットして書き換えるには、go fmtコマンド(goコマンドのfmtオプション)を利用します。
元のソースコードを書き換えずに、標準出力へ整形結果を出力したい場合は、gofmtコマンドを利用します。

インデント

インデントには、基本的にタブを用います。スペースは、どうしても使わなければならない時に使います。

一行の桁数

行の長さに制限はありません。長すぎると感じる場合は、改行し、一つタブを付けてインデントします。

括弧

制御構文(if、for、switch)に括弧は必要ありません。
演算子の優先順位に従ってスペースを付けることで、括弧は必要ありません。

x<<8 + y<<16

コメントに関する規約

コメントには、ブロックスタイルのコメント /* */ と、行コメント // があります。
通常は行コメントを使います。
ブロックコメントは、パッケージコメントに使います。

パッケージコメント

パッケージ文の前にはパッケージコメントを記述します。
ファイルが複数であるパッケージでは、どれか1つのファイルにパッケージコメントを書きます。
パッケージコメントとして記述すると、godocページの最初に出力されます。
godocが空白を調整するため、整列させる必要はありません。長い行には改行を入れてください。

ドキュメントコメント

パッケージ中のトップレベル宣言の直前のコメントがドキュメントコメントになります。
公開される関数、変数にはドキュメントを書きます。
ドキュメントコメントは文章で、1文で内容を表す要約を記載します。

ツールを使って自動的にチェックできるようにしよう

コーディング規約は、多くの場合、プロジェクトや組織ごとに異なります。

それらをすべて覚えてプログラミングするのは、返って効率が悪くなる場合があるので、主要な部分は覚えて、細かい部分はツールでチェックできるようにすると良いです。

IDEにツールが備わっている場合もありますし、それぞれのコーディング規約に沿ったチェックツールが提供されている場合もあります。

それらを上手く活用し、自分たち向けにカスタマイズして、誰もが同じ規約のもとで、同じようにコードが書けるようにするのがベターです。

Goのコーディング規約というわけではありませんが、コーディング時に気を付けるべき様々な点がまとめられた書籍『リーダブルコード』もおすすめです。

当ブログでも以前に紹介していますので、気になる方はぜひチェックしてみてください。

エンジニアのおすすめ本『リーダブルコード』
ある程度一人でプログラミングができるようになってさらに上達したい方、チームメンバーから褒めてもらえるようなより良いプログラムを書きたいと思っている方、チームで開発しているプログラムが統一感がなく属人的になっていることに悩んでいる方向けに、書籍『リーダブルコード』を紹介します。

今回はGoのコーディング規約について紹介しました。

参考になれば幸いです。

コメント

タイトルとURLをコピーしました