コーディング規約 テンプレート(書き方とサンプル例)

2022年01月15日(土)

コーディング規約 テンプレート

こんにちは。マニュアル作成・ナレッジ共有ツール「NotePM」ブログ編集局です。
コーディング規約のテンプレートと例文をご紹介します。

コーディング規約 テンプレート

マニュアル作成・ナレッジ共有ツール「NotePM」を無料でお試し!

コーディング規約とは?

コーディング規約とは、企業内部においてプログラミングコードの書き方、注意点をまとめた文書になります。コーディング規約を用いることで、複数人が記述するコードの体裁を一定の品質に保つことができ、可読性やコードを理解しやすくなります。企業やオープンソース・ソフトウェアのプロジェクトでオープンにしている規約もあれば、企業内部で独自に作成しているケースもあります。

コーディング規約の目的

コーディング規約の目的は複数人で行う開発において、その体裁を一定の形に保つことにあります。プログラミングコードは同じ目的を達成するためにも、複数の書き方があります。それを自由に選ばせてしまうと、書き手(または読み手)によってコードの体裁がバラバラになってしまいます。それを防ぐのがコーディング規約です。括弧の付け方、変数名の付け方、コメントの量などを規定します。また、インデントをタブで行うのかスペースで行うのか(さらにスペースは幾つか)なども決めることで、エディタや個人の設定によるインデントの見え方を統一することもできます。

コーディング規約を用いてコーディングを一定の書き方に保つことができれば、ソフトウェア全体の品質を向上させたり、チームの生産性を向上させられます。

コーディング規約の書き方

コーディング規約をゼロから書くケースもありますが、最近ではすでにオープンになっている規約であったり、各プログラミング言語で公開されている規約をベースとして利用することが多いです。

有名なコーディング規約であれば、Lintライブラリが存在し、コーディングや保存を実行したタイミングで自動チェックを行ってくれます。

そして標準的なコーディング規約では触れていない企業や開発チーム独自のルールを定義します。項目としては次のようなものが必要です。

目的

コーディング規約がなぜ必要なのか、どのプロジェクトやシステム範囲に適用されるのか、メリットなどを記述します。

プロジェクトの構成

ファイルの拡張子、フォルダ構成、関数やクラスで記述すべきポイントなどを記述します。

命名規則

変数名やクラス名の命名規則を定義します。プログラミング言語によってキャメルケース、スネークケースなど標準的な規則があらかじめ存在する場合が多いです。通常はそれに則って進めるべきです。

コーディングスタイル

自社やプロジェクトですべてのコーディングスタイルに対応するのは難しいので、既存のコーディングスタイルをベースにするのが良いでしょう。その中でどうしても自社のオリジナルを取り入れたい場合に、既存のコーディングスタイルをアップデートする形で記述します。

禁止事項

プログラミング言語によって書き方が様々に存在するので、利用してはいけない書き方や関数があれば、それを規定します。たとえばGoやPythonでは三項演算子がありません(if/elseを使って書きます)。これはコードが複雑になる傾向があり、可読性を下げて不具合につながる可能性が高いためとされています。トリッキーなコードは行数を少なくできますが、他のメンバーにとって理解しづらかったり、月日が経ってから内容を理解するのに時間を要してしまう場合もあるでしょう。

制限事項

禁止まではいかないまでも利用しない方が良い構文、直接利用しない方が良いクラス(継承して使うべきクラス)など、コーディングする上で気をつけておきたい事項がある場合に記述しておきます。

推奨事項

利用すべきクラス、書き方、関数などがある場合に指定します。特に同じような関数やクラスがある場合、どういった場合にどちらを利用すべきかは明示しておくべきでしょう。

コーディング規約 サンプル例

目的

本コーディング規約は○○プロジェクトにおける開発時に適用されます。既存開発メンバーの情報共有はもちろんのこと、これから新しく入ってくるメンバーに対しても速やかに情報共有されるべく、記述されています。

本コーディング規約はごく基本的な項目に限って記述しています。新しく出てきた不明点があれば、随時更新されます。

命名規則

変数名はキャメルケースとします。

クラス名は必ず大文字ではじめてください。クラス名のプリフィックスは NP とします。

コーディングスタイル

基本的なコーディング規約は○○○○に従います。なおインデントはTabではなくスペース2文字とします。

禁止事項

if文の中で変数に代入するのは禁止とします。

if (const key = hoge()) {
} else {
}

ifを記述したら必ずelseを記述してください。ifのみ、if/elseif のみは禁止です。

制限事項

HTML表示を行う際には必ずNPViewを利用してください。

推奨事項

  • NPMailerはテキストメール用です。
  • NPHTMLMailerはHTMLメール用です。

おすすめの情報共有ツール

マニュアル作成・ナレッジ共有ツール 「NotePM」 は、社内の知りたいことが簡単に確認できるツールです。「社内のほしい情報を探すのが大変」「ナレッジ共有が上手くいっていない」とお悩みの方は、NotePMの無料トライアル をお試しください。

NotePMサービス紹介資料はこちら >