2017.03.14技術

コーディング規約の作り方の基本とメリット・デメリット

  • このエントリーをはてなブックマークに追加
E05269ce 1ada 4ec8 8539 685dca59cdf7
コーディング規約とは、簡単に説明すると、“コードの書き方に関する決まりごと”です。ソフトウェア開発において、様々な書き方が可能な場合に、企業やコミュニティ、あるいは特定のプロダクトごとに、どういった書き方にするかを定め、プログラムのコーディングに統一性を持たせるガイドラインのような役割があります。

チームで作業をする場合、各々が自分のやり方で自由にコードを書いてしまうと、様々な書き方のコードが混在し、後で理解したり修正したりすることが難しくなってしまいます。そこで、コードの表記法を“コーディング規約”として統一することが必要となります。
 
今回は、このコーディング規約の基本的な作り方と、コーディング規約を利用することによってのメリット・デメリットについて解説していきます。
 
10,000件以上の案件から希望の案件をご紹介!

未公開案件も多数ありますので「まずは相談したい。」という方もお気軽に登録ください。

あなたに合ったフリーランス案件を探す
Banner free wide 037b570405fddeb419957475d18a005501589cadc55bfe73d5000335887322fd
【目次】
コーディング規約の内容とは|作り方の基本
コーディング規約のメリット・デメリット
コーディング規約のメリット
コーディング規約のデメリット
言語別コーディング規約の実例まとめ
コーディングチェックツールを活用しよう
まとめ
 

コーディング規約の内容とは|作り方の基本


コーディング規約の内容は、プロジェクトの規模やメンバーのスキル、使用言語によって変わってきますが、基本としてはこのような内容が書かれています。
 
目的
プロジェクトの構成
ディレクトリー階層
フォーマット
命名規則
コーディングスタイル
禁止事項
 
では、それぞれの項目の内容を具体的に見ていきます。
 

目的

まず、コーディング規約の適用する範囲を決め、なぜ必要なのか、それを守ることによりどんなメリットがあるかなど、コーディング規約を規定する目的を提示します。コーディング規約は、メンバーのスキルによっては足枷ともなりかねないので、コーディング規約を作る際は目的を明確にしておくことが必要です。
 

プロジェクト構成

プロジェクトの名称などの一覧表を付けます。メタ情報の指定方法、フォルダの構成方法なども規約を統一する時点で決めておきます。ソースプログラムの先頭にコメントを入れたりする際に使用します。
 

ディレクトリー階層

あらかじめ、ファイルを保存するフォルダの階層や、そのフォルダの名前を決めておきます。同じ内容でも、人によってフォルダの名前が変わってしまうと管理がしづらく、ミスの増加に繋がってしまいます。共通ファイルも同様に、他のファイルと混同しないように分かりやすい名前のフォルダ内に保存しておきます。
 

フォーマット

インデントはタブを使うのか、カラーコードは小文字にするのかなど、コードの細かい書き方を決めておきます。チームでコーディングしていくのであれば全て統一しておいた方が管理も楽になります。特に間違えやすい部分は具体的に良い例と悪い例をあわせて記載することで、よりメンバーに分かりやすくミスも減ります。コメントフォーマットも、統一するのか、言語によって分けるのか決めておきましょう。
 

命名規約

変数、定数、関数、クラスなどの名前の付け方を統一します。例えば、変数名の先頭は小文字、クラス名の先頭は大文字、などの内容を指定することがよく見られます。命名規則を統一しておけば、他のメンバーが見てわかるのはもちろん、自分が名前を付ける際も迷わなくなります。書き方は、誰が見てもわかるような明確な命名規則を意識しましょう。
 

コーディングスタイル

チームでの開発において、コーディングスタイルの統一は特に大切です。インデントの仕方や、かっこの位置、コメントの位置や内容を決めておきます。コーディングスタイルがバラバラですと、不要なバグを招くことにも繋がります。 “短く分かり易く”を意識してスタイルを統一しましょう。
 

禁止事項

コーディングの禁止事項を記述します。コーディング規約に具体的に明示されていないコーディングをする場合、禁止事項を明示していれば大きな間違いを犯すリスクを軽減することが出来ます。ただ、禁止事項を多くしすぎるとメンバーのモチベーションを下げ、逆に作業効率の低下などを招く恐れがあるので、必要最低限に留めるよう注意しましょう。禁止事項の例としては下記のようなものがあります。
 

・ハンガリアン記法は使用しない
・インクルード、多重インクルード以外の目的でプリプロセッサを基本的に使用しない
・gotoは特別な理由がない限り使用しない
・グローバル変数を使用しない
・オブジェクトの内部状態を表す変数をpublicにしない
・ローカル変数を使いまわさない
・関数の引数を出力用に使用しない
・自分にしか分からないような変なコードを書かない

(引用:コーディング規約より)
 

コーディング規約のメリット・デメリット


内容を見ると、必ず必要とも思えるコーディング規約ですが、メリットだけではなくデメリットも存在します。コーディング規約のメリットとデメリットをそれぞれ解説していきます。
 

コーディング規約のメリット

保守性、生産性の向上

コーディング規約を規定していれば、プロジェクトチームに、不慣れなメンバーや新人のメンバーが居たとしても、品質が統一したソースコードを作成しやすくなります。また、コーディング規約はソースコードの品質の基準ともなるので、ソースコードの保守性の向上にも繋がります。コーディング規約があることによって、違反しているかどうかのチェックをしながらの品質管理も行いやすくなります。
 
メンバー同士のコミュニケーションもスムーズになり、プロジェクトが円滑に進むメリットも望めます。
 

品質が安定する

コーディングを外部に頼む場合、社内でコーディング規約を作成することによって、納品物にある程度の品質が約束されます。また、受注側も、プロジェクト着手前にコーディング規約をクライアントに確認しておけば、安定した成果を提出することができます。メンテナンスや修正が必要になった際もコーディング規約があれば円滑に作業が進みますので、不要なトラブルを避けることが出来ます。
 

コーディング規約のデメリット

定期的なメンテナンスが必要

IT業界の環境は日々目まぐるしく変わり、それはプログラムも同様です。コーディング規約を作成するまではいいのですが、その後、時代やプロジェクト、メンバーに応じてコーディング規約のメンテナンスを行わないと、コーディング規約はあっという間に時代遅れのものとなってしまいます。“使えないコーディング規約”とならないように、小まめなメンテナンスを心がけましょう。
 

エンジニアによってはストレスになる

コーディング規約によってコードの書き方を縛られることをストレスに感じるプログラマーももちろん居ます。そして、そのストレスが作業効率の低下を招き、バグを生む可能性もあります。コーディング規約を作る際は、ただ厳格なルールを記載するのではなく、生産性・保守性を最優先とした適度なルールに留めることも大切です。
 

言語別コーディング規約の実例まとめ


具体的にどんなコーディング規約が作成・使用されているのか、言語別に情報サイトをまとめましたので、気になる言語のコーディング規約の実例を参考にしてみてください。
 

HTML/CSSのコーディング規約

Googleが推奨しているHTML/CSSコーディングガイドラインをまとめてみました。 | NIWAKASOFT
こんなHTMLとCSSのコーディング規約で書きたい - Qiita
HTML/CSSのコーディング規約 - 【開発終了】SetucoCMS Wiki - 【開発終了】SetucoCMS - OSDN
 

JavaScriptのコーディング規約

Google JavaScript Style Guide 和訳 — Google JavaScript Style Guide 和訳
常に気をつけたい、JavaScriptへの正しい接し方
Felix's Node.js Style Guide(和訳)

 

PHPのコーディング規約

PHPのコーディング規約 PSR-0、PSR-1、PSR-2、PSR-3とは | 9ensanのLifeHack
PHP コーディング規約 - WordPress Codex 日本語版
Manual - Documentation - Zend Framework
コーディング規約|CakePHP

 

C言語のコーディング規約

プログラム言語 C の推奨されるスタイルとコーディング規範
組み込みソフトウェア開発向けコーディング作法ガイド|C言語版
CERT C コーディングスタンダード
Google C++スタイルガイド 日本語訳

 

Pythonのコーディング規約

Python コードのスタイルガイド
Google Python スタイルガイド
Pythonのスタイルガイドとそれを守るための各種Lint・解析ツール5種まとめ! - SideCI Blog

 

Rubyのコーディング規約

Rubyコーディング規約
styleguide/ruby.ja.md at master · cookpad/styleguide · GitHub(クックパッドのコーディング規約)
rails-style-guide/README-jaJA.md at master · satour/rails-style-guide · GitHub(Ruby on Rails)

 

VB.netのコーディング規約

Visual Basic Coding Conventions(Microsoft)

コーディングチェックツールを活用しよう


コーディング規約をどんなに丁寧に作っても、ミスやバグは起こるものです。コーディングが適切に書かれているかをチェックする際に使えるツールをいくつかご紹介します。
 

Markup Validation Service


W3C(World Wide Web Consortium)」が無償で提供しているチェックツールで、一度は聞いたことがある方も多いのではないでしょうか。このMarkup Validation Serviceを使うことによって、文法の正しいHTMLやCSSを作成することができます。使い方は、URLを直接入力する方法、ファイルアップロードする方法、ソースを直接記入する方法の3パターンをチェック量やファイル状況によって使い分けすることが可能です。
 
更新も頻繁で、HTML5の検証や、様々なパターンのチェック、HTML文書が(X)HTML標準に準じているか等をチェックすることができるオンラインツールです。エラー時は原因のコード箇所と解説が表示されるので、コーディングのスキルアップツールとしても活用できます。英語表記で分かりづらいと思いますので、詳しい使い方に関しては下記を参照ください。(参照:W3C Markup ValidatorでWebサイトを検証する - さくらのナレッジ
 

Dirty Markup

Dirty Markupは、HTML、CSS、JSのコード整形を、コメントも表示しながらまとめて行ってくれるツールです。使い方は簡単で、コードをコピペし、左側のメニューで設定をして「Clean」のボタンを押すだけです。コードに問題点が発見されたら、コメント付きで指摘してくれる点も、Dirty Markupの使いやすさの理由の一つです。最初は真っ暗な画面ですが、右側のエリアには直接コードを書くこともできます。
 

PHP_CodeSniffer


PHPコード規約のチェックを行うツールです。PHP_CodeSnifferはPHP5用のスクリプトで、PHPやJavaScriptのコードについて構文解析や検証を行い、コーディング規約に反している部分を発見します。独自ルールを作成し、チェックを行うことも可能です。詳しい使用方法は下記を参照ください。(参照:PHP_CodeSniffer - PHPプロ!マニュアル
 

RuboCop


RuboCopは、Rubyのコードがruby-style-guideに沿って書かれているか解析してくれるツールです。詳しい利用方法については下記を参照ください。(参照:Railsメモ(22) : RuboCopで静的コード解析を行う - もた日記
 
ご紹介してきたツール以外にも、コーディングの効率を上げるツールやプラグインは多数ありますので、「言語 コーディングチェックツール」などで検索し、自分や環境に合ったやり方を探してみましょう。
 

まとめ

メンバーや環境に応じてコーディング規約を上手く作成・運用することによって、作業の効率のアップや、コードの品質の向上を期待することが出来ます。ただし、解説してきましたように、メリット・デメリットがありますので、コーディング規約が必要かどうか、その内容はどのような内容を規定したものにすれば良いのか、といった判断が必要です。最後に紹介しましたチェックツールなども活用しながら、適当な方法を実施していきましょう。
  • このエントリーをはてなブックマークに追加
10,000件以上の案件から希望の案件をご紹介!

未公開案件も多数ありますので「まずは相談したい。」という方もお気軽に登録ください。

あなたに合ったフリーランス案件を探す
Banner free wide 037b570405fddeb419957475d18a005501589cadc55bfe73d5000335887322fd

新着のコラム記事

人気のコラム記事