PHP できるかな -試験問題やってみたよ

BMediaNode さんのPHPプログラマの技量を知りたい時に書いてもらうスクリプト をやってみる。ちょうど転職活動中だし。
コードは日記末尾に。

久々の PHP で忘れてる事多々。ブランクによるロスを差し引くとまず手続き型で書いて 20min, その後無理矢理クラス化して 40min、色々触って 60min が来たところでタイムアップ。ん〜、無駄な事やってる。
この手のコードは、仕事だと最初にフレームワークやライブラリを揃え量産体制を整えてから書くので実際に記述が必要なのは

  1. フォーム定義ファイル
  2. テンプレート
  3. 遷移分岐やフォーム送信後の処理をちょこちょこっと

で設計が明確なら所要時間は 20 min といった所。

仕様については少し疑問で、業務で書くなら QF::ApplyFilter で全角数字を半角数字に自動置換、ハイフン除去後の入力値の長さを検査して郵便番号の桁数にマッチしない場合はエラーメッセージ、と変えたい。

また PHP プログラマの実力テストなら限られた時間でコードを書かせるのも良いが、もっと猶予を与えて一つのテーマを書かせてみるのも面白い。
PEARフレームワークの普及により非機能要求をどれだけ低コストかつ高品質に実現出来るかが最近の PHP アプリケーションの質を分けており、ここのコードと考え方を見ればその人がハンドルを取った場合の開発パフォーマンスはある程度割り出せると思えるのがその理由。
ごく単純化した例を挙げると例えば入力値のチェック、これを行っていない、つまり機能が水準に達していないコードは論外。また分離と再利用、集約が考慮されていないコードはそのまま開発コストの上昇や品質に対するボトルネックに繋がる。
それなりにコードや他社の開発体制を見てきたが、出来るチームは開発基盤を整備し作業の自動化やライブラリを通じて全体の品質と効率を押し上げ下っ端コーダの担当を本当にコーディングが必要なパートに集中させるそのハンドリングが例外なく上手い。
戦闘員が欲しいならともかく、もう少し上で使うならチェックして損はないポイントだ。