コーディング規約とは
コードを書くときには、全体が統一されていることが大切です。特に、大きなプロジェクトを大勢のエンジニアで作りあげるときに欠かせません。
そのために必要なコーディング規約は、具体的にどのような働きをするのでしょうか?
コーディングの際のルールを示す
プログラムを作るとき、コードの書き方は一つではありません。同じ働きをするシステムを作るのに、複数の書き方があります。その中でどれを採用するか、ルールを記しているのです。
複数のエンジニアで一つのプロジェクトを完成させる場合、ルールを指定していないと、それぞれの書き方のクセが出てしまうことがあります。
これでは、見た目がバラバラで見にくくなってしまいますし、システムの脆弱性につながる可能性もあるのです。
そこで、『命名規則』『コーディングスタイル』『禁止事項』などを定め、全体に統一性のあるコーディングができるようにします。
コーディング規約の必要性
システムが正常に動くことのみを実現するなら、コーディング規約はなくてもよいかもしれません。しかし、コードの作成に関わるエンジニア同士で分かりやすく共有するには、ルールが必要です。
それぞれが自分の書きやすいようにバラバラに書いてしまうと、全体を通して見たときに分かりにくくなってしまいます。
コードを読むのは作成するエンジニアだけではありません。その後、コードの妥当性をチェックするレビュアーや、メンテナンスに携わる人も読むのです。そのとき、書き方がバラバラだと、バグの見落としも発生しやすくなり作業はなかなか進みません。
後から見る人に読みやすいコードにするためにも規約は必要です。
コーディング規約作成の特徴について
コーディング規約は、全体の統一性のために必要なルールということが分かりました。では、ルールがあると、具体的にどのようなメリットやデメリットがあるのでしょうか?
コーディング規約作成のメリットとデメリット
明確なルールがあると、どんなメンバーでコーディングしたとしても、一定以上の質に仕上がりやすくなるメリットがあります。
副業をする場合にも、ルールがあれば迷わず作業できます。修正を求められても、規約をもとにやり取りができるので、クライアントとのスムーズな意思疎通がしやすくなるのです。
デメリットとしては、規約がストレスになる、という点があげられます。細かなルールを意識しなければいけないため、作業効率が下がることもあるでしょう。
また、メンテナンスが不十分な場合、現状の技術やプロジェクトにそぐわない決まりがあることもあります。
コーディング規約作成のポイント
プロジェクトに携わるエンジニアが働きやすくするためのルールがコーディング規約です。ルールがあることでストレスにならないよう、ポイントを押さえた規約作りをしましょう。
プロジェクトやメンバーに合わせる
使える規約にするには、プロジェクトに合った内容である必要があります。技術的にも、内容的にも、最適なルールでなければいけません。
また、どのようなメンバーが集まっているかによって内容を変えると、ストレスなく使いやすくなります。
例えば、新人や不慣れなメンバーが多いのであれば、指南書のような内容になるよう、細部までしっかり書き込むとよいでしょう。ベテランが多いのであれば、ルールは最低限の内容にしておく方が効果的です。
新人とベテランで構成されるプロジェクトなら、充実した内容の規約にしつつも、例外を認めましょう。すると、高スキルのエンジニアの生産性をいかせます。
主な項目別のポイント
コーディング規約では、項目ごとにルールを定めます。
ディレクトリー階層では、ファイルを保存する際の、階層や名前の付け方について定めましょう。バラバラのままだと、ミスにつながる可能性があります。
「インデントはタブを使う」「カラーコードは小文字にする」といった、コードの細かな書き方を指定するのがフォーマットです。見やすいコードのために、細かく規定しましょう。
コーディングスタイルでは、インデントやかっこについて定め、全体の統一性を持たせます。命名規約は、誰が見ても分かるよう、変数・定数・関数・クラスなどの名づけルールを決めるのです。
また、これらの項目で規定されていないことに関して、禁止事項を設定しておくと重大なミスを防げます。
テンプレートやガイドを参考にしよう
整ったコーディングにするためにはルールが必要ですが、何もないところから作るのは手間がかかりすぎてしまいます。そこで参考にしたいのが、テンプレートやガイドです。
似ているプロジェクトや、同じ言語を使っているテンプレートやガイドを探し、それをもとに、必要な項目を加筆したり、現状に合わせて修正したりします。
すると、何もないところから作るよりも簡単に、現状に合ったコーディング規約を作れるのです。
主な言語のコーディング規約例
コーディング規約は言語ごとに定められています。それぞれどのような規約があるのでしょうか?作成する際の参考にしましょう。
Javaのコーディング規約例
アプリ開発にも用いられているJavaは、プログラミング言語の中でも特に人気があります。「C++」「Python」と並び、Googleが使用する三大言語の一つでもあり、さまざまなシーンで使われている言語です。
そのようなJavaのコーディング規約として代表的なものは以下の通りです。
- Java コーディング標準 - オブジェクト倶楽部
- Google Java Style Guide
- Java セキュアコーディングスタンダード
- Code Conventions for the Java Programming Language
C# のコーディング規約例
C#の規約について知りたいなら、まずは『C# のコーディング規則 - C# プログラミング ガイド | Microsoft Docs』を読み込みましょう。
読みやすさ向上のための改行を入れることや、暗黙的型指定を使った簡潔な形式の使用について、ルールが定められています。
どのようにすればC#で読みやすいコードを書けるのか、ということが簡潔にポイントを絞ってまとめてあるので、C#を使うならぜひ知っておきたい内容といえるでしょう。
C# のコーディング規則 - C# プログラミング ガイド | Microsoft Docs
PHPのコーディング規約例
PHPのコーディング規約で最も基本となっているのが『PSR-2 Coding Style Guide』です。フレームワークごとに異なる規約のあるPHPにおいて「共通して使える規約を」と考えられました。
他にもPSR-0・PSR-1・PSR-4がありますが、現在、最もスタンダードなのが、先にあげたPSR-2です。
他にも、WordPressでPHPを使う際の規約として定められている『PHP コーディング規約 - WordPress Codex 日本語版』もあります。
WordPressのコードをPHPで書くときには、コアでもプラグインでもこれに従います。
C言語のコーディング規約例
歴史がありシェアも高いC言語は、プログラムの自由度が高いため汎用性があり、機器を選ばないのが特徴の言語です。参考にすべき規約には、下記があります。
- プログラム言語 C の推奨されるスタイルとコーディング規範
- 組み込みソフトウェア開発向けコーディング作法ガイド|C言語版
- CERT C コーディングスタンダード
これらの規約を参考に書けば、全体が整ったコードに仕上がりますし、脆弱性を極力排除したシステムの構築に役立つでしょう。
Pythonコーディング規約例
Googleで主要な言語として使われているPythonには、Googleの定めた規約『Google Python スタイルガイド』があります。こちらもPythonで正しくコードを書くためのルールです。
また、『PEP8』もPythonの規約としてスタンダードといえます。1行の文字数やインデント・改行・クォーテーションなど、読みやすいコードのためのルールを定めています。
これらの規約を参考にすることで、後からメンテナンスする人にも読みやすいコードが書けるのです。
まとめ
システム構築のためのコーディングには、大勢のエンジニアが携わります。そこで大切なのが、全体に統一性を持たせるためのルールであるコーディング規約です。
言語ごとに設けられている規約を参考に、読みやすいコードを書きましょう。
小規模のプロジェクトで設けられていないケースでは、紹介した主な言語の規約例を参考にすると、読みやすいコードを書く参考になります。