コーディング規約(コーディングルール)とは何か?そのメリットと主な記載事項を解説
コーディング規約の概要
コーディング規約とは多数のプログラマーが参画するプロジェクトにおいて、プログラミングコード(以下、コード)をどのように記述していくのかを定めた規約のことです。コーディングルールやコーディングガイドラインとも呼ばれることもあります。
コーディング規約は業界で標準となるものがあるわけではなく、プロジェクトやチーム、会社ごとで定められます。
そのため、今回はコーディング規約をこれから作成しようという方に向けて、コーディング規約がなぜ必要なのか、そしてどのようなことを掲載すればよいのかを解説していきます。
コーディング規約はなぜ必要なのか
コーディング規約はソフトウェアのコードの可読性、保守性、品質を高めるためにあります。
ここからは、コーディング規約によって可読性、保守性、品質がどのように高められるのかを解説していきます。
可読性
可読性とは字の通り、コードの読みやすさを意味しています。
コードの読みやすさは、記述するコードのロジックが簡潔であるかどうかだけでなく、その意味や目的がコメントで記述されているかどうかにも左右されます。
このコードの可読性を高めることが、コーディング規約の最大の理由と言っても過言ではないでしょう。
可読性を評価する時に1つの目安になるのが、後日コードを見て何を記述しているのかがわかるかどうかです。
例えば、Webサイトのメンテナンスをしていたプログラマーが以下のようなJavaScriptのコードを発見したとします。
function() {
var x = $(".test").text();
alert(x);
}
プログラマーがこのようなコードを発見したとしても、これが何のために存在しているのか、どのような意味を持っているのかをすぐに理解することができません。
このコードを書いたプログラマーを見つけて聞きだすか、コードを1から読み込んでいき理解していくしかありません。
しかし、先ほどのコードが以下のような記述になっていたらどうでしょうか。
/*
2020/11/20
見積りの合計金額が正しく取得されているかテスト
*/
function() {
var sum_test = $(".estimated-total").text();
alert(sum_test);
}
このようにコメントが加えられていたり、変数が"sum_test"という名前であったりすれば、このコードがテストのものであることがわかり、リリース後のWebサイトであれば直ちに削除したほうがよいことがわかります。
この例のように、作成者以外の人物が後から読み返しても目的や意味のわかる可読性の高いコードを作成するために、プログラマー間で取り決めをしていこうというのがコーディング規約です。
保守性
コードの可読性が高まると、自ずと保守性も高まります。
保守性の高いコードは、不具合が発生した時にコードを修正しやすく、改修が発生した時に手を加えやすいつくりになっています。
これにより、日々の保守業務の負担が軽減されるほか、経験が浅いプログラマーでもプロジェクトに参加しやすくなるというメリットがあります。
品質
コーディング規約を作成することで、コードの品質が高まることも期待されます。
コードの可読性が高まることで、コードのレビューがしやすくなり、コードのエラーにいち早く気づくことができるようになります。
さらに、機能追加などの改修を行う時も、対応箇所がわかりやすいため、既存のコードに下手に干渉しないような記述を行うことができるようになります。
コーディング規約の主な記載事項
コーディング規約の内容は大抵、以下の内容が記載されています。
- 命名規則
- コーディングスタイル
- 禁止事項
- 制限事項
- 推奨事項
命名規則
命名規則とは、クラスやメソッド(関数)、変数、パラメーターなどの名前の付け方のルールです。
例えば、Webサイトを構築する時に使用するHTMLにidやclassを付与する時に以下のルールを定めることがあります。
- idにはアンダーバーを使い、classにはハイフンを使う。
(例)id="sample_text" class="sample-text"
上記のルールを定めておくと、アンダーバーがついたコードを見た時に、それがidを参照していることがすぐにわかるようになります。
このように、命名規則を設けることによって、後からコードを見た時に該当箇所のコードが何をしているのか見当をつけやすくなります。
この命名規則については、下記のコード設計の記事も参考になるため、ご参照ください。
コーディングスタイル
コーディングスタイルはインデントの入れ方や括弧の位置、コメントの挿入方法などを決めておきます。
インデントの入れ方はとくに個人の好みがわかれるものなので、コーディング規約で定めておかなければ、インデントの揃っていないコードができてしまいます。
禁止事項
禁止事項では使ってはいけない文法や現在使用できない記述方法などをまとめていきます。
なぜ、禁止する必要があるのかその理由を明確に記載しておいたほうがよいでしょう。
制限事項
制限事項では、あまり推奨されない機能、コーディング、クラスなどを記載しておきます。
例えば、Webサイトを構築する際に用いられるCSSでは、他の設定より優先させる“!important"という記述があります。
記述したCSSがうまく見た目に反映されない時に"!important"を使えば、無理やりデザインを変えることができますが、他のCSSの記述が効かなくなる可能性も高いので、あまり使用は推奨されません。
しかし、時と場合によっては"!important"の設定も有効であるために、基本的には使わないとしつつ、どのような時に使用するのかを制限事項としてまとめておいたほうがよいでしょう。
推奨事項
推奨事項には、好ましいコーディングや、複数の似たようなクラス名やメソッドなどがある場合にどちらを推奨しているのかを記載します。
例えば、「後から見返してもわかるようにコメントを残しておきましょう」という話をチーム内でしていても、「どのような時にコメントを残しておくのか」が明確でない限り、プログラマーによって小まめに残す人もいれば、まったくコメントをしない人もでてきてしまいます。
こうした認識の不一致を防ぐためにも、コーディング規約の推奨事項で基準を定めておくとよいでしょう。