PHPプログラミング診断室

第0回開業のごあいさつ(診断するPHPコードも大募集!)

PHPは実用的な言語

こんにちは。新原と申します。本連載では、PHPプログラミング診断室ということで、世のPHPコードが健全になるべく、診断していきたいと思います。よろしくお願いします。

PHPを開発したRasmus Lerdorf氏は、PHPは歯ブラシのようなものだとPHPを表しています。歯ブラシは毎日使うもので、それは仕事であり、シンプルな道具である、と。筆者はこの発言を知ったときにPHPを端的に表した良い表現だと感じました。そう、PHPはシンプルな道具ゆえに誰もが簡単に使い始めることができます。HTMLの中に埋め込んで、動的にHTMLを生成するのはとても簡単です。また、コードも柔軟に書くことができ、ユニークな書き方をしてもそれなりに動いてくれます。

PHPは、これまでとても多くのユーザを獲得してきました。特に特徴的なのが、プログラミングを行う人(プログラマですね)だけではなく、デザイナやコーダなど本来はプログラミングが仕事ではない人でもPHPを使っている人が多くいるという点です。平易な記法や柔軟な型変換、豊富な関数群などツールとしてよくできているので、プログラミングということを意識せずにPHPを利用している人もいます。HTMLに埋め込まれたPHPを触っていくうちに、プログラムを身につけて、Webシステムの開発をするようになったという人もいるでしょう。

ただ、PHPを使ってWebシステムを作る、プログラミングを行うといった領域に入ると、ただHTMLを動的に生成するのとは異なる知識が求められてきます。プログラムにはプログラムの定石があります。さらにPHPにはPHP独自の定石があります。すでにほかの言語でプログラミングを学んだ人なら当然のように知っていることでも、それを知る機会がないまま、PHPを使い続けている場合があります。

「とりあえず動けばいいんじゃない?」

わかります。もちろん、正しく動くことは大切なことです。どんなに美しいコードを書いていても、動かないのであれば意味がありません。ただ、動いているからといって、こうした定石を知らずに、読みにくいコード、意図がわからないコード、変更しにくいコードを書き続けるのは、いつかそのコードに手を入れないといけなくなった場合に大きな負債を残すことになります。定石に従った読みやすいコードであれば、他人が理解しやすいだけでなく、自分自身もコードが理解しやすくなります。つまり、変更しやすく、また誤りにも気づきやすいコードとなります。

「なんとなく自己流で書いているけど、これで正しいのかな」

自己流でもPHPでシステムらしいものが作れるようになったころに遭遇する悩みです。エラーが出て教えてくれるなら、そこを直せばよいのですが、いちおう正しく動いていると、どこをどう直せばよいのかがわからなくなります。できれば、正しい書き方を知りたいという方は多いのではないでしょうか(特に勉強熱心な方なら⁠⁠。

本連載の内容について

本連載では、PHPコードにフォーカスを当てて、どのようにコードを書くのが良いのかということを紹介していきます。

各回では、まず題材となるPHPコードを紹介します。このコードは、どこかのWebサイトで稼働している(していた)ものや、オープンソースで公開されているものを取り上げる予定です。実際に利用されているコードを題材とすることで、より現場で直面する悩みや迷いを解決できるような内容にしていきたいと考えています。

次に、このコードについて問題となりそうな個所、定石からは外れた個所など、修正すべき点を挙げます。そして最後に、指摘した点を修正したコードを修正例として提示します。修正コードは、PHP 5.4以降での動作を想定しています。

なお、本連載での修正コードはできるだけ元のコードを残して、直すべき点だけを変えるようにします。実際の現場では、すべてを書き直すことは難しく、部分的な修正を行うほうが多いためです。ただ、どこまでの修正が必要かはコードによるので、時には大手術となる場合もあります。その際はその旨を明記するようにします。

本連載を通じて、PHPはこう書くんだということをつかんで、自信を持ってPHPコードを書ける人が増えるとうれしいですね。

Cプログラミング診断室

本連載のタイトルを見て、ピンと来た人は長年プログラミムをされている方ですね。実は以前、Cプログラミング診断室という有名な書籍がありました。

藤原博文さんが書かれたこの本は、C言語のソースコードを題材にして、そのコードの良くない点を指摘し、そして修正コードを掲載するという構成になっていました。

私は、学生の頃、この本に出会いました。当時、ちょうどCでプログラミングをしていたので、教科書的ではなく、実際の開発で使われているコードを、歯に衣着せぬ痛快な切り口で批評されていた本書は、勉強になり、また読み物としてもおもしろかったのを記憶しています。

本連載は、まさにこの本からアイデアの着想を頂いており、タイトルもずばり「PHPプログラミング診断室」としました。

「Cプログラミング診断室」の醍醐味でもある「現場でのコード、現場での修正」を題材に、日々のPHP開発の参考になるような連載としていきたいですね。

コードの募集について

さっそくなのですが、みなさんにお願いです。

本連載では、上記のとおり、題材となるPHPコードが必要となります。現在、コードを集めているのですが、みなさんからもPHPコードの提供を募集しています。連載の中で、コードの問題点について指摘を行い、修正コードを紹介します。この連載では、問題点の指摘は行いますが、批判することが目的ではありませんのでご安心ください。

投稿いただく際は次の点にご留意ください。

  • すべての投稿が採用されるわけではありません
  • 投稿の際、公開できない個所については、改変や削除をお願いします
  • 投稿していただいたコードの概要(どういったサイト、サービス、状況で動作していたか)をお願いします(具体的な名称やURLなどはなくてもよいです)
  • 掲載にあたり、コードの一部を変更する場合がありますので、ご了承ください

採用された方には謝礼として、QUOカード3,000円を進呈させていただきます。

自分が書いた(関わった)コードを人に見てもらうというのはとても勇気のいることですが、私も精一杯診断させていただきますので、ぜひご協力をお願いします!

おすすめ記事

記事・ニュース一覧