Un bon code PHP doit être structuré ; un bon code PHP doit être standardisé ; un bon code PHP doit être adaptatif ; un bon code PHP doit être sûr...
Je poserai certainement cette question lorsque je serai intervieweur chez SitePoint. sont les avantages et les inconvénients du code PHP ? Parce que cette question peut me donner une idée générale du type de programmeur qu'est le candidat, plutôt que de simplement tester sa maîtrise des fonctions PHP (la certification PHP de Zend est bonne pour cela, et les questions d'entretien de programmeur PHP de Yahoo le sont également).
Surtout, cette question me permet de savoir si le candidat a déjà récupéré un morceau de code désordonné d'un programmeur paresseux pour le réutiliser, ou si il a aidé d'autres membres de l'équipe avec ce genre de chose.
Certes, je n'ai pas moi-même de réponse satisfaisante à cette question, mais je connais les réponses que je veux entendre :
un bon code PHP doit être structuré. Les grandes sections de code doivent être divisées en fonctions ou méthodes, tandis que les petites sections de code qui ne sont pas accrocheuses doivent être commentées afin que leur objectif soit clair plus tard. Et le code frontal tel que HTML, CSS, Javascript, etc. doit être séparé autant que possible du programme. Les fonctionnalités de programmation orientée objet de PHP peuvent aider les programmeurs à organiser leur code de manière ordonnée.
Un bon code PHP doit être standardisé. Qu'il s'agisse de définir des règles de dénomination pour les noms de variables et de fonctions, de standardiser des processus réutilisables tels que les opérations de base de données et la gestion des erreurs, ou simplement de spécifier comment le code doit être indenté, ces standardisations peuvent rendre le code plus lisible.
Un bon code PHP doit être adaptatif. PHP possède de nombreuses fonctionnalités telles que les guillemets magiques et les balises courtes. L'activation et la désactivation de ces fonctionnalités affecteront le fonctionnement du programme. Par conséquent, un bon programmeur doit ajouter des instructions appropriées à son code afin que le programme puisse s'adapter en fonction de l'environnement.
Un bon code PHP doit être sûr. Bien que PHP soit un langage efficace et flexible sans cadre fixe, il laisse les problèmes de sécurité aux programmeurs. Une compréhension approfondie des vulnérabilités de sécurité potentielles, telles que les scripts intersites (XSS), la falsification de requêtes intersites (CSRF), les vulnérabilités d'injection de code, les vulnérabilités de boucle de codage de caractères, etc., est cruciale pour les programmeurs professionnels d'aujourd'hui.
Lorsqu'un candidat répond à ces questions, je sais clairement si je dois l'embaucher. Bien sûr, parfois les programmeurs ne parviennent pas à bien articuler le problème et nous leur demandons de faire des tests PHP. De nombreuses questions du test peuvent sembler très simples à première vue, mais elles donnent également aux candidats l'occasion de s'exprimer, car si vous regardez attentivement, vous pouvez repérer les problèmes.
Le petit morceau de code PHP « médiocre » suivant est une question de test simplifiée. Cette question revient à demander : comment optimiser ce code ?
<?
echo("<p>Résultats de recherche pour la requête : " .
$_GET['requête'] .</p>");
?>
Le principal problème de ce code est qu'il affiche les données soumises par l'utilisateur directement sur la page web, créant ainsi une vulnérabilité XSS. Il existe en réalité de nombreuses façons de combler ce vide. Alors, quel code voulons-nous ?
<?
echo("<p>Résultats de recherche pour la requête : " .
htmlspecialchars($_GET['query']) ".</p>");
?>
C'est l'exigence minimale. La vulnérabilité XSS a été comblée avec la fonction htmlspecialchars, bloquant ainsi les caractères illégaux.
<?php
si (isset($_GET['query']))
{
echo '<p>Résultats de recherche pour la requête : ',
htmlspecialchars($_GET['query'], ENT_QUOTES), '.</p>';
}
?>
Les personnes capables d'écrire un tel code devraient être celles que je souhaite embaucher.
<? a été remplacé par <?php, qui est plus cohérent avec les spécifications XML.
Avant de générer la valeur de $_GET['query'], déterminez d'abord si elle est vide.
Les parenthèses supplémentaires dans la commande echo ont été supprimées.
Les chaînes sont qualifiées par des guillemets simples, ce qui fait gagner du temps à PHP dans la recherche de variables remplaçables dans la chaîne.
Utilisez des virgules au lieu de points pour gagner du temps d'écho.
Transmettez l'indicateur ENT_QUOTES à la fonction htmlspecialchars pour vous assurer que les guillemets simples sont également échappés. Même si ce n’est pas la chose la plus importante, c’est aussi une bonne habitude.
Malheureusement, très peu de programmeurs peuvent donner une réponse aussi satisfaisante. Il nous a fallu 3 mois pour recruter des programmeurs qui nous satisfaisaient.
Alors, comment répondriez-vous à la question posée au début de cet article ? Selon vous, quels sont les avantages et les inconvénients du code PHP ? Selon vous, quelles autres qualités un programmeur PHP devrait-il avoir ?
Cet article provient de : http://www.yeeyan.com/articles/view/38585/18736
Lien original : http://www.sitepoint.com/blogs/2007/05/25/good-and-bad-php-code/