qualité du code

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : qualité du code

par Berzemus » 02 mars 2009, 23:39

Déjà, rien que le fait que cette façon de faire empêche la coloration syntaxique du html (donc bonjour pour chercher en vitesse le guillemet qui manque), est pour moi déjà un no-brainer.

par yaug » 02 mars 2009, 22:45

Il est développeur professionnel ou bien stagiaire?
Non parce que vu le code..

Déjà... ce code nécessite une chose importante : une séparation du php, du html et si possible du javascript.
Pourquoi? parce que sur une simple page cela peut passer, mais sur une site complet et fourni, une séparation du code est absolument nécessaire pour mieux ordonner le code, mieux le maintenir.

Ensuite...
Pourquoi ne pas utiliser de système de template?
Là encore pour une page unique ce n'est pas vitale, mais pour un site complet et complexe, un système de template permettra une économie de code html et un sérieux bien pratique.

Quand au code html.
La balise <center> est a banir et n'est plus valide, tant qu'a faire comme il fait... autant mettre de simple quote " ' " pour ne pas avoir à protéger chaque double quote dans son code.

voila quelques petites réflexion rapidement.

par Victor BRITO » 02 mars 2009, 22:44

Déjà, tu peux lui dire qu'un tel code rend la maintenance du code HTML difficile, surtout s'il doit être maintenu par un intégrateur qui ne maîtrise pas PHP.

Ensuite, le fait d'insérer une chaîne de caractères entre guillemets doubles ralentit le temps d'exécution du script et diminue les performances par rapport à l'usage de guillemets simples et de concaténations (si la différence est à peine perceptible pour un tout petit script, elle peut ne pas être négligeable quand une grosse application entière est en jeu) : en effet, avec les guillemets doubles, PHP s'attend à des variables insérées qui doivent être interprétées, ce qui n'est pas le cas avec les guillemets simples. Autrement dit, il est plus avantageux d'écrire
echo 'Ceci est une chaîne comportant une variable interprétée '.$lavariable;
que
echo "Ceci est une chaîne comportant une variable interprétée $lavariable";
Avantage qui se manifeste aussi quand on doit y insérer des bouts de codes HTML, comme les attributs, qui apparaissent ou non selon le contexte :
<input type="checkbox"<?php echo ($case_cochee === true)? ' checked="checked"': '' ?> />
des échappements en moins pour la valeur de l'attribut.

Il existe également un compromis, qui consiste à utiliser la syntaxe Heredoc. Elle a l'avantage de faciliter la maintenance du code HTML (pas d'échappements) ; mais, à l'instar des chaînes encadrées par des guillemets doubles, le temps d'exécution risque d'en pâtir, les variables insérées étant interprétées. Heureusement, PHP 5.3 apportera un autre compromis, alliant facilité de maintenance et rapidité d'exécution : la syntaxe Nowdoc.

qualité du code

par pierreC » 02 mars 2009, 21:46

Bonjour,

Je travail actuellement pour une société pour qui je dois valider / vérifier / proposer des choix technique autour de développement web. Cela à commencer par définir des règles de développement afin de rendre le code plus homogène et pérenne sur les différents projets.

Et pour un développeur je tombe sur ce code là et je voudrais le convaincre par une bonne argumentation que ce n'est pas bien, mais les mots me manque et j'ai besoin de votre aide. (sachant que dans quelque jours je ferais, je pense, lire ce post au développeur en question) :

Voici le code : un seul echo et c'est bien cela qui me gène :
        echo "<center><form action=\"scripts/gestion_comptes.php\" id=\"form_modif_compt\" method=\"post\"><table id=\"tab_general\"><caption align=\"bottom\"><br /><br /></caption>"
                ."<tr><td  id=\"td_general_entete\">Identifiants</td><td  id=\"td_general_entete\">Niveau de droit</td><td  id=\"td_general_entete\">Fin de validité du compte</td></tr>"
                ."<tr><td id=\"td_creat_compt1\">"
                ."Modifier les noms et prénom<br /><input class=\"inp_creat_compt\" type=\"text\" id=\"nom_pren\" name=\"nom\" value=\"$compte_util->nom\" /><br /><br />"
                ."Nouveau mot de passe<br /><input class=\"inp_creat_compt\" type=\"text\" id=\"pass\" name=\"passwd\" /><br />Si le mot de passe ne change pas <br /> merci de laisser ce champs vide"
                ."</td><td id=\"td_creat_compt2\">"
 
                .'<script type="text/javascript">'
                        //.'alert(\'coucou\');'
                        .'$(document).ready(function(){'
                        .'$("input[@name=\'droit\']:nth('.$radio_checked.')" ).attr("checked","checked" );'
                        .'})'
                .'</script>'
 
                ."<input name=\"login\" type=\"hidden\" value=\"hidden\" />"
                ."<input name=\"date_valid\" type=\"hidden\" id=\"recap_date\" value=\"$compte_util->date_valid\" />"
                ."<input name=\"modif_util\" type=\"hidden\" />"
 
 
                ."<input type=\"radio\" name=\"droit\" value=\"1\" class=\"rad_creat_compt\" id=\"droit_1\" /> <a class=\"a_niv_droit\">Opérateur</a> <br />"
                ."<input type=\"radio\" name=\"droit\" value=\"2\" class=\"rad_creat_compt\" id=\"droit_2\" /> <a class=\"a_niv_droit\">Responsable commercial</a> <br />"
                ."<input type=\"radio\" name=\"droit\" value=\"3\" class=\"rad_creat_compt\" id=\"droit_3\" /> <a class=\"a_niv_droit\">Responsable marketing</a> <br />"
                ."<input type=\"radio\" name=\"droit\" value=\"4\" class=\"rad_creat_compt\" id=\"droit_4\" /> <a class=\"a_niv_droit\">Administrateur</a> "
                ."</td><td id=\"td_creat_compt1\">Date de fin de validité <br /><br />";
Merci