コーディング規約がちょっとした悩みの種

Read More

今後の自分に課すこととなるであろう、FuelPHPコーディング規約がちょっとした悩みの種になっている。




現場でFuelPHPを使い続けてきて結構長くなってきた。


まあフレームワークそのものの良し悪しはおいといて、
FuelPHPのコーディング規約にのっとった書き方に自分も合わせようかどうか迷っている。


今はまだ現場の人数がそれほど多くないので、
コードを自由に書いていても問題にはなっていない。

ただ、複数の人がプログラムしていくと書き方が多種多様となり、
かつ新たな機能の追加などもあるので時間の経過とともに可読性はガンガン落ちていく。

定期的にリファクタリングを行うものの、
それが全然おいついていないというのが現状だ。


そんな中、せめて見た目だけでも統一感を出したいなーと思って、
if文やforeachなどの括弧の使い方などをFuelPHPのコーディング規約に則ったものにしようかと思案中。


でも腰が重い


重い理由はなんなのかというと、正直微妙なんだよねーFuelPHPのコーディング規約が。

例を書くとよくわかる。
先日のmkdir()の記事のソースを流用してみる。


■自分の書き方で書いたコードの例
$chk=true;
if($chk) {
    if(!is_dir($dir_path)) {
        $chk = @mkdir($dir_path, 0777, true);
    }// end if
}// end if
※通常ブログ内ではページの都合上タブ幅を2文字に変換しているが今回はリアルな環境を再現するためタブ幅を4にしている。

自分はC言語→VB→PHPの順で学んできたのだが、
こうして改めて自分が書いたコードを見てみると、
経験してきた言語々々の書き方の影響を受けていることがよくわかる。

同じものをFuelPHPのコーディング規約に則って書くとこうなる。


■FuelPHPコーディング規約を適用したコードの例
$chk = true;
if ($chk === true)
{
    if ( ! is_dir($dir_path))
    {
        $chk = @mkdir($dir_path, 0777, true);
    }
}

・FuelPHPのコーディング規約のページ
http://fuelphp.jp/docs/1.7/general/coding_standards.html


自分のコードと比べると半角スペースや改行が多い分ふわっとした印象を受ける。


だが、実際にFuelPHPのコーディング規約に則ってゴリゴリとプログラムしていくと実感するのだが全体的に間延びする。
特にif・else文が入れ子になった場合はより縦に伸びるので逆に読みにくいとさえ思う。



まあそんな感じで、個人的には自分のコードの方が断然読みやすいわけだが、それは書いた本人なので当たり前。

複数の人が書き込み、読む必要があるコードならばFuelPHPのコード規約を順守する形にした方がきっと問題が少ない。
うん、頭ではわかってるんだよ…うん。


じゃあ何ですぐやらんの?ていうと、
仕事とは関係ないプライベートに書いたコードにまで影響が出るってことが嫌なんだよ。

仕事はこう書いて、プライベートなコードはこう書く、みたいな使い分けは自分にはできない。
そして使い分けができないのなら昔のコードとの差異が気になる。
そうすると全部書き直さないといかんじゃない?

あーやだやだ。



まーでも必要性ってのも頭では十分理解してるつもりなので、
ブログ内でもそのうちFuelPHPライクなコードを披露するようになるでしょう。
たぶんね。







--
1人、あるいは少人数の内は決め事なんか有って無いようなもんでもよい。
だが組織ばってくるとそうもいかなくなる。
人数が増えれば増えるほどルールの数も多く必要になってくる。

これはシステムを組む現場だろうが趣味のお茶会だろうがオンラインゲームの中であろうが共通することだと思う。

自由が阻害されたようでなんだか嫌な気分にもなるが、回り回って考えてみるとやはりルールはあった方が良い。


大きい組織を運営している人はほんと尊敬するよ。
ま、ルールはどこまでいってもあくまで病気でいう「予防」みたいなもんなので、結局のところ病気にかかったとき「治療」をどうするか、の部分が大事なのだと思う。

組織がうまく回っていくかどうかはこの「治療」の部分がうまく機能しているかどうかにかかっている、と現時点の自分はそう思う。







Comments(2)

1  みやび  2014/12/20 (土) 00:45 ID:bonNbsA15
PHP コード整形でぐぐれば「PHP コードの整形はプログラマがやるべき事じゃない」という記事がヒットします。
人によって教える事が違うコードより、
何かに沿ったコードを自動的に吐き出してくれるツールに頼るのが最適解だろうと思ってます。

新人教える時も
これはPSR1-2に準拠してるからこの通りに書け
分からんならぐぐったりソースコード読めで終わりますし。


2  シラサヤ  2014/12/22 (月) 11:23 ID:FE4sJ5r15
> PHP コード整形でぐぐれば「PHP コードの整形はプログラマがやるべき事じゃない」という記事がヒットします。
> 人によって教える事が違うコードより、
>何かに沿ったコードを自動的に吐き出してくれるツールに頼るのが最適解だろうと思ってます。
一応、現場でそういう話は出たんだよ。

ただね、「何かに沿ったコードを自動的に吐き出すツール」というのは自分が嫌なんだよね。
エクセルの自動変換しかり、Eclipseの自動変換しかり、PHPもまたしかり。
だからそれは拒否した。
それやるくらいならコード規約に自分が合わせる。
コード規約に則っているかチェックするツールの導入ならアリだと思う。


> 新人教える時も
> これはPSR1-2に準拠してるからこの通りに書け
> 分からんならぐぐったりソースコード読めで終わりますし。
PHPのコーディング規約に使えるPSRってのがあるんだね。
メモメモ。

とはいえ、結局は現場現場のルールに合わせることになるんだけど。