Lisibilité ou performances ? - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Lisibilité ou performances ? (/showthread.php?tid=4055) Pages :
1
2
|
Lisibilité ou performances ? - Sephi-Chan - 10-06-2009 (10-06-2009, 05:35 PM)Argorate a écrit : -Sinon ouvrir et fermer php vous fait perdre du temps d'exec (même si c'est peu), pourquoi ne pas utiliser echo '...' sans jamais refermer/rouvrir PHP? Parce que ça fait perdre en lisibilité. En utilisant PHP comme moteur de template, on conserve de la lisibilité quand on intègres du PHP dans du HTML.
Imagine ce que ce code donnerait sans fermeture/ouverture des balises… Notez que l'on peut, avec PHPHaml, améliorer encore plus la lisibilité du code (et produire une sortie HTML parfaite en terme de syntaxe et d'indentation). Code : %html Sephi-Chan RE: Horaires - MdE - 10-06-2009 [HS] C'est vrai que je me suis posé cette question en terme de rapidité d'exécution s'il fallait mieux fermé et rouvrir les balises Php ou s'il fallait mieux mettre un echo. Notamment quand l'echo contient des variables. Après, en terme de lisibilité, c'est vrai qu'un echo de 5 lignes c'est pas génial.[/HS] RE: Horaires - Sephi-Chan - 10-06-2009 La lisibilité et la maintenabilité du code doit l'emporter sur les performances. Grappiller quelques millisecondes grâce à la syntaxe du code n'est jamais une bonne idée quand ça diminue la lisibilité. Cela est d'autant plus vrai dans un tel cas où la différence en terme de performances est presque nulle alors que la différence en terme de lisibilité est énorme. Mieux vaut éviter les echo à rallonge. Les guillemets simples sont plus rapides, mais moins lisibles.
Prenons maintenant l'exemple d'une vraie application avec un bout de code qui générera le code HTML suivant :
Avec des guillemets simples et des balises HTML affichées par echo :
Avec des guillemets doubles et des balises HTML affichées par echo :
Façon moteur de template :
Il faut faire son choix. Quand je développais en PHP, j'utilisais la dernière solution, qui se révèle bien plus clair sur une grande page et plus facile à maintenir pour un intégrateur HTML qui aurait vite tout cassé avec les deux premières notations. Depuis quelques mois, je suis passé à Ruby on Rails et Haml, et voilà ce que ça donne :
Sephi-Chan RE: Lisibilité ou performances ? - MdE - 10-06-2009 Mais la lisibilité n'est elle pas une question d'habitude ? En tout cas, quand on est le seul à voir son code. Si une personne est habituée à voir des echo' '; sachant en plus que de cette manière, il peut mettre des html classique à l'intérieur (echo '<a href="">aaa</a>'. Bon après c'est vrai que les logiciels qui normalement colorent les balises etc...; de cette façon, la coloration ne se fait pas mais je ne suis pas habitué car je fais tout sous block-note (je suis maso ^^). Enfin tout ça pour dire que c'est surtout une question d'habitude et qu'il n'y a pas LA façon de bien faire. RE: Lisibilité ou performances ? - Sephi-Chan - 10-06-2009 Comme tu le dis, tu es seul à lire ton code. Mais même ainsi, tu te rends bien compte qu'il y a des notations imbuvables (généralement quand le code est truffé de ' \' '). Mais dès que tu vas commencer à montrer un peu de code : si tu écris un cours, si tu aides un ami, etc. Tu vas vite te rendre compte que les gens ont du mal à te lire. Effectivement, il n'y a pas la manière parfaite de faire, mais il y en a de meilleures que d'autres. Il faut s'adapter. Sephi-Chan RE: Lisibilité ou performances ? - MdE - 10-06-2009 Oui, et c'est vrai que personnellement, c'est au cas par cas, des fois je préfère ne pas faire plusieurs <? ?>, des fois c'est l'inverse. Par contre, il est vrai qu'avec la méthode des echo, j'ai souvent des erreurs T_STRING dues à l'oubli d'un \. Mais jusqu'à présent, cela ne m'a pas si embêté que cela. RE: Lisibilité ou performances ? - Arius Vistoon - 10-06-2009 pour ma par, j'essaye tant que possible de ne rien ouvrir du tout. je m'explique. Quand je code mon php, il n'y que du php dans mon code. Quand je code du xhtml, il n'y que du xhtml dans mon code...euh mais comment tu fais pour rendre dynamique le truk me dira t-on (pour certain) ? je passe par une couche de transformation xsl. comme ca, j'ai ma couche modele/métier (la ou se trouve le sql), ma couche service, ma couche vue, ma couche controleur et ma couche présentation Ce qui fait que tous mes développement sont lisibles (chacun sa place) et facilement évolutif par quiconque (même celui qui n'est pas le "codeur/dsigner" de base) RE: Lisibilité ou performances ? - Sephi-Chan - 10-06-2009 Quel est l'intérêt de cette pratique ? J'ai essayé à une période et ça m'a vite gonflé, ça rajoutait une couche de travail qui au final, ne servait pas à grand chose. Le seul usage que j'y avais trouvé, c'était pour la mise au point d'un service Web : comme les pages rendaient du XML, on pouvait accéder aux données. Avec Rails, le problème ne se pose plus. :p Sephi-Chan RE: Lisibilité ou performances ? - Arius Vistoon - 10-06-2009 l'intérêt est multiple. si je dis à un codeur xslt fait moi tel écran, il n'a pas besoin de connaître php, java, ruby ou autre, il code en ce qu'il sait faire..xslt idem pour le php ou le xml (et encore idem pour les couche spécifique qui peuvent très bien être dans différents langages). la seule chose qui compte c'est l'entrée et la sortie, le reste c'est la tambouille du spécialiste de ce domaine. si demain, j'ajoute une fonctionnalité les répercussions sont localisé et.. contrôlé. C'est encore plus vrai si 'est pour un web services (comme tu l'a cité) Je vais citer des exemples succincts. 1) Il m'est arrivé de devoir décider de changer le systeme de droit (nous souhaitons avoir une gestion de droit en 4 dimension..la roll royce) des gestion de droits) que j'avais fait pour une application. Nous y avons réfléchit 3 mois (à 3 personnes). et grâce a ce système, on l'a implémenté en 2 semaines (avec 6 personnes). 2) le support client décide (comme chaque souvent), d'ajouter une nll fonctionnalité. Avec ce systèmes, on le fait bien plus rapidement car tout est compartimenté. Il a besoin de changer l'aspect graphique ok, pas besoin de connaître php/java/ruby.. Il a besoin d'ajouter un nouveau champs, pas besoin de connaitre la couche modèle, ce qu'il demande se trouve déjà dans ce que ramène la couche service, il suffit juste de l'afficher... 3) Microsoft (mon ex-employeur depuis peu) m'avait demandé de modifier la couche contrôleur de mon logiciel qu'il jugeait trop "permissif" (hum...) en matière de sécurité web. La maison mère avait estimé le boulot a 6 mois, le directeur technique de la filiale l'avait estimé à 3 mois...je l'ai réalisé en 1 mois. sans cette séparation, ca n'aurait pas était possible en si peu de temps Autre avantage, les différentes couches sont la suite logique de l'analyse uml faite au préalable (surtout la couche model). Du coup, d'un coup d'oeil, on sait exactement quoi implémenter et comment (et la plupart du temps sans réfléchir..;sisi vous avait bien lu..sans réfléchir). C'est ainsi qu'un stagiaire c'est vus attribuer le fait d'écrire des setter/gette (etc..) en batterie... Bref, des exemples j'en ai pleins. Maintenant, tout est relatif. Surtout quand des personnes mettent la pression pour coder (car enjeu monétaire, stratégique etc... sur du cour terme ou tout simplement le codeur débutant) pensent qu'il est plus intéressant de coder que de penser à ce que l'on va codé RE: Lisibilité ou performances ? - Allwise - 10-06-2009 +1 Sephi. Même si OK, chacun ses habitudes, faut pas déconner, foutre du html dans un echo, c'est vraiment moche... Entre cette solution et les autres, plus lisibles, y a pas photo. Le gain de temps de la solution barbare est trop insignifiant pour être un argument. Sinon le XSLT, c'est vrai que ça a un côté pratique. Mais comme tout, faut avoir le temps de s'y mettre et pour l'instant dans mon petit parcours professionnel, je n'ai vu personne l'utiliser. |