SitePoint の面接官になったときに必ず尋ねる質問は、「PHP コードの長所と短所は何だと思いますか?」です。なぜなら、この質問は、単に PHP 関数の習熟度をテストするのではなく、候補者がどのようなプログラマーであるかについての一般的なアイデアを与えることができるからです (Zend の PHP 認定資格はこの点でうまく機能しており、Yahoo の PHP プログラマー面接の質問も次のようなものに当てはまります)このカテゴリ)など)。重要なのは、この質問により、候補者が怠惰なプログラマーから乱雑なコードを引き継いで再利用した経験があるかどうか、またはチームの他のメンバーがこの種の作業を手伝った経験があるかどうかがわかります。
確かに、私自身もこの質問に対して満足のいく答えを持っていませんが、私が聞きたい答えはわかっています:
優れた PHP コードは構造化されている必要があります。コードの大きなセクションは関数またはメソッドに分割する必要がありますが、目立たないコードの小さなセクションは、将来その目的が明確になるようにコメントする必要があります。そして、HTML、CSS、JavaScriptなどのフロントエンドコードは、プログラムから可能な限り分離する必要があります。 PHP のオブジェクト指向プログラミング機能は、プログラマーがコードを秩序だった方法で編成するのに役立ちます。
優れた PHP コードは標準化されるべきです。変数名や関数名の命名規則を設定する場合でも、データベース操作やエラー処理などの再利用可能なプロセスを標準化する場合でも、コードのインデント方法を指定するなどの単純な場合でも、これらの標準化によってコードの可読性が大幅に向上します。
優れた PHP コードは適応性がある必要があります。 PHP にはマジック クオートや短いタグなどの多くの機能があり、これらの機能をオンまたはオフにすると、プログラムの実行に影響します。したがって、優れたプログラマは、プログラムが環境に適応できるように、コードに適切なステートメントを含める必要があります。
優れた PHP コードは安全である必要があります。 PHP は固定フレームワークを持たない効率的で柔軟な言語ですが、セキュリティの問題はプログラマーに委ねられています。クロスサイト スクリプティング (XSS)、クロスサイト リクエスト フォージェリ (CSRF)、コード インジェクションの脆弱性、文字エンコード ループの脆弱性など、潜在的なセキュリティの脆弱性を深く理解することは、今日のプロのプログラマーにとって非常に重要です。
候補者がこれらの質問に答えれば、彼を採用すべきかどうかが明確にわかります。もちろん、プログラマーが問題をうまく説明できない場合もあり、私たちはプログラマーに PHP テストを依頼します。テストの問題の多くは、表面的には非常に単純に見えるかもしれませんが、注意深く見れば問題を見つけることができるため、受験者に自分の考えを表現する機会を与えます。
次の小さな「貧弱な」PHP コードは、簡略化されたテスト問題です。この種の質問は、「このコードをどのように最適化する必要がありますか?」と尋ねているようなものです。