Feed on
Posts
Comments

(株)社会式株 PHPコーディング規約がすばらしい。

  • アジャイルするための勉強時間がとられているようでは全然アジャイルじゃねぇ。
  • こんなことがしたいと思ったことはすでに誰かが考えている、それをコピーするんじゃなくてスティールするのがベストな方法。
  • 他人のコードを利用するためなら設計も変更する。

このようなハックベースの設計思想をもっている私としては上記リンクのコーディング規約はよくぞまとめてくれましたという感じ。

ツール(PEAR,Smartyなど)を使いこなせば生産性をちょっぴりあげることが出来る。 ちょっと考えて欲しいのは、ツールの使い方を学ぶ必要があるのは、関わるプログラマ全員だという事だ。 1日で習得できる人もいれば、数週間かけてじっくり学ぶ人もいる。 習得に時間を掛けるぐらいならPHPを使う理由なんてないんだから、ツールを使う時点で負けだ。 そんな時間があるなら、もっと他に学んで欲しい事は山のようにある。RoR、構造化HTML、CSS、JavaScript、AJAX、Linux、ネットワーク、セキュリティなどなどなど

ツール使いたいから使ってるみたいなのはコード読む側にとっては本当迷惑。それを勉強しないといけなくなる。ツールの使い方を覚えるためのコードを書くなんてのは愚の骨頂。こんなことしたいけどそれを実現するためにはこのツールが便利だから使うとか勉強するとかなら解るけど。

プロジェクトを引継ぐ時に一番やっかいなのが、自作のライブラリだ。 従って、ライブラリは基本的に作成しない。 自作ライブラリは、あまり優秀でないプログラマにプロジェクトを引継ぐ時に足かせになる。

自作ライブラリというマスを掻きたいならドキュメントもいっしょに書け。理解するほうにとってはホント迷惑。

君がプログラマだったら、共通部分を別ファイルにしておいて、インクルードしたいと思うだろう。でもあまり複雑なファイルの依存関係はやめよう。ファイルが依存するのは2階層まで。例えばa.phpがb.phpをインクルードし、b.phpがc.phpをインクルードした場合、2階層だ。c.phpがさらにd.phpをインクルードすると3階層になる。これはちょっとやりすぎだ。 例えば次のようにしてもいいだろう。 users.phpで、common.phpとuser_lib.phpとheader.phpとfooter.phpをインクルード。 common.phpでは、config.phpとerror_handler.phpとlib.phpをインクルード。

DRYのためにファイルやコードを入れ子にするのはホントやめてくれ。それを理解するのにもよむのにも時間がかかる。ファイルだったら1階層まで。関数だったら2階層までにしてくれ。

あまり優秀でないプログラマが即理解可能にすること。

顧客重視の設計思想がコードまで落とし込まれる頃には職人の世界になって他人を寄せ付けなくなる。コードになってもKeep It Simple Stupidですよ。

Leave a Reply