コーディング規約とは
エンジニアがコードを書くときに準拠すべきルールがコーディング規約です。具体的にどのようなルールが、どういった理由で設けられているのでしょうか?
変数名などルールを統一するガイド
プロジェクトによっては、複数のエンジニアで一つのプログラムを作りあげることがあります。複数人で作業しつつ、同時にコードの読みやすさを高めるためには、何らかの統一した書き方のルールが必要になります。これがコーディング規約が設定されている理由です。
コーディング規約では、『命名規則』『コーディングスタイル』『禁止事項』などを定めることで、誰が書いても同じように読みやすいコードに仕上がるよう決まりを設けています。
同じ動作をさせるためにも、コードはさまざまです。そのため、知らず知らずのうちに、エンジニアのクセが出てしまう可能性があります。そうならないよう、事前にルールを定めているのです。
コーディング規約が必要な理由
複数のエンジニアが携わっているプロジェクトで、全員がそれぞれ違う書き方でコードを書いていると、仕上がりがとても分かりにくくなってしまいます。
分かりにくいコードのシステムは、メンテナンスや新バージョンの作成をしようと思うと、担当者の手間が多く、内容を把握するだけでも時間がかかってしまいます。
そのため、できるだけ見やすいコード作成のためには規約が必要になります。
また、ルールを守ってコードを書くことは、バグの予防にもなります。バグの原因となる複雑なコードを制限できるからです。
複雑なコードは、最初は問題がなかったとしても、システムの追加や変更でバグを生む可能性もあります。
コーディング規約の優先順位
同じPHPのコーディング規約でも、さまざまな種類があります。そのため、プロジェクトに参加するときには、必ず優先順位の高い規約に準拠してコードを書きましょう。
例えば、WordPressのプラグイン開発をPHPで実施する場合、PHPではなくWordPressが設けているルールを参照するのが適当と考えられるのです。
プロジェクト独自の規約が設けられている場合も、それを最優先にしましょう。もしも複数の規約があり優先順位が分からない場合には、確認してから作業に入るとスムーズです。
優先すべき規約がはっきりしたら、自分のやり方と違う部分があったとしても、必ずルールを守りましょう。
主なPHPのコーディング規約
コーディング規約は言語ごとに定められています。PHPの規約にも種類があり、それぞれ違った特徴を持っているのです。
では、具体的にどのようなルールが設けられているのでしょうか?それぞれの特徴を解説します。
WordPress PHPコーディング規約
オープンソースのブログソフトである『WordPress』は、PHPで作成されています。そのため、PHPのコーディング規約があるのです。
コアのプログラムはもちろん、プラグインやテーマを作成するときにも、規約に準拠してコードを書きます。この規約では、例えば下記のルールが定められています。
- 行頭をそろえるのにはインデントを使う
- 制御構文や関数呼び出しをするときのかっこの内側にスペースを入れる
- 関数の引数に使うフラグ値は意味のあるものを使用する
PSR-2 Coding Style Guide
フレームワークごとに規約が違うPHPですが、その違いを超えて共通して使えるルールとして作られたのが『PSR-2 Coding Style Guide』です。さまざまな規約の中でも、最もスタンダードなルールといえます。
PSR-2に準拠したコードを書くには、まずPSR-1の規約に従うことが前提です。その上で、下記のルールが追加されています。
- 行頭にはスペースを4個使う
- 1行の文字数は120文字以下が望ましく、できれば80文字以下にする
- クラスやメソッドの波かっこの前に改行を入れる
- 制御構文開始の波かっこの前には改行を入れない
- 制御構文のかっこの内側にはスペースを入れない
参考サイト
CakePHP コーディング規約
Web開発をスピーディーにできるよう作られたフレームワークである『CakePHP』は、求められる質問に答えていく形式で必要項目を入力していくだけで、PHPのプログラムを自動生成します。
生成されたプログラムをもとに作業を進めれば、素早く開発ができるのです。
CakePHPでは、基本的にPSR-2に準拠してコードを書きます。ただし、全てが同じわけではなく、いくつか追加のルールがあることに注意しましょう。
- 1行の文字数は100文字以内を推奨し、120文字以内を必須とする
- 三項演算子のネストは使わない
- 比較は可能な限り厳格な比較を使用する
これらの特徴を踏まえた上でコードを書くと、スムーズに進められるでしょう。
チェックツールで準拠しているか確認
書いたコードが規約に正しく準拠しているか確認するには、チェックツールの利用が便利です。目視では確認しきれない部分も、正確にスピーディーにチェックできます。
PhpStormの利用
『PhpStorm』は、コードを自動でチェックするツールです。インストール後に設定することで、指定の規約に準拠しているかを調べられます。設定の手順は下記の通りです。
- Preferencesを開いて『(Project Settings内の)Inspections』を選ぶ
- PHP Code Sniffer varidationをチェック
- PHP Code Sniffer pathを『/opt/local/bin/phpcs』に設定
- Coding standardで指定したい規約を選択する
プログラムを書いている途中でも、規約違反になっている箇所を随時指摘してくれるツールのため、すぐに修正できます。
チェックツールの利用
その他にも便利なチェックツールがあります。使い勝手のよいツールを選び、チェックの手間を省きましょう。
『php-cs-fixer』は、PSRの規約に準拠しているかチェックし、調整するためのツールです。どこをどのように修正するか、一つずつ指定できるのが特徴といえます。
『PHP_CodeSniffer』は、PEAR・PHPCS・PSR-1・PSR-2・Squiz・Zendといった規約にのっとってコードが書かれているかチェックするツールです。
それぞれチェックできる規約が違うため、準拠すべき規約に合ったものを選びましょう。
まとめ
PHPのコーディング規約には、『WordPress PHPコーディング規約』『PSR-2 Coding Style Guide』『CakePHP コーディング規約』などがあります。
最優先で準拠すべき決まりはどれなのか、はっきりさせた上でコードを書き始めることが大切です。
コードに正しく準拠できているかは、チェックツールを使うと、素早く正確に確認できます。使用する規約に合ったツールを使い、チェックが効率よくできるようにしましょう。