Quelques expressions de devs

"Les premiers 90% de code comptes pour les 90% du temps de développement. Les 10% derniers compte pour les autres 90% de temps de développement.", Tom Cargill

"Beaucoup d'entre vous sont familiers avec les vertus d'un programmeur. Il y en a 3, Paresse, Impatience, Prétention.", Larry Wall

"Mesurer la progression du développement par le nombre de ligne de code, c'est comme mesurer la réalisation par son poids.", Bill Gates

"Débugguer est deux fois plus compliqué qu'écrire le code. Par conséquent, si vous écrivez le code aussi intelligement que possible, vous n'êtes, par définition, pas suffisament intelligent pour le débugguer.", Brian W. Kernighan

"Quand une nouvelle technologie se développe, si vous ne faites pas partie du rouleau compresseur, vous faites partie de la route.", Stewart Brand

"En theorie, il n'y a aucune différence entre la théorie et la pratique. En pratique, si.", Jan L. A. van de Snepscheut

"La partie la plus difficile du design, c'est de garder les caractéristiques principales en dehors.", Donald Norman

"Avant qu'un logiciel soit ré-utilisable, il doit d'abord être utilisable.", Ralph Johnson

"Si débugguer c'est le processus qui consiste à enlever les bugs, alors développer doit être le processus qui consiste à les mettres.", Edsger Dijkstra

"Les logiciels et les cathédrales sont identiques. En premier on les construits, ensutie on prie.", Anonyme

"Un logiciel n'est réellement terminé que lorsque le dernier utilisateur est mort."

"Mieux vaut former des utilisateurs et risquer de les perdre, plutôt que de ne rien faire et qu'ils restent."

"Programmer, c'est 10% de Science, 20% d'ingénieusité et 70% de réfléxion sur comment faire fonctionner la science et l'ingénieusité ensemble."

"Tous les programmeurs sont des auteurs et les pc des acteurs minable."

"Un mauvais code n'en est pas un, il est juste mal compris."

"Il est plus facile de mesurer quelque chose que de comprendre ce que l'on mesure."

"Lorsqu'un langage de développement est crée permettant au programmeurs de coder en Anglais, on se rends compte que les programmeurs ne parlent pas Anglais."

"Les tests de performances ne mentent pas, mais les menteurs font des tests de performance."

La version originale se trouve ici. Et oui... je sais ... mon anglais tend à être amélioré ! (:

Filed under  //  Development   Humour   adage   code   expression   logiciel   programme   quote   user   utilisateur  
Posted by Cyril Nicodème 

Optimisation PHP

On parle très souvent de l'optimisation de code PHP, mais dans le concret, on se rend très vite compte que tous les conseils ne sont pas appliqués. Après la publication d'un article en anglais, sur 12 astuces d'optimisations PHP, je vais ici traduire ces astuces et indiquer les autres qui me semblent indispensables.

  1. Préférez les méthodes statiques. La rapidité d'exécution du code PHP est multiplié par 4 !
  2. Évitez autant que vous pouvez l'utilisation des méthodes magiques (__get, __set, etc)
  3. Require_once est plus lourd que require (logique puisqu'il va vérifier que le fichier n'à pas déjà été chargé !)
  4. Préférez l'utilisation des chemins absolus, qui évitent au moteur PHP de résoudre le chemin par le biais du système (utilisez $_SERVER ['DOCUMENT_ROOT'])
  5. Pour avoir le temps en secondes, préférez $_SERVER['REQUEST_TIME'] à time (). En effet, time () demande un temps de calcul à PHP alors que $_SERVER['REQUEST_TIME'] est déjà calculé !
  6. Evitez au maximum l'utilisation des expressions régulières (utilisation des fonctions strncasecmp, strpbrk et stripos)
  7. str_replace est plus rapide que preg_replace, mais strtr est 4 fois plus rapide que str_replace ... !!
  8. Preferez le passage de paramètre à des fonctions en String plutôt que Array, ce qui évitera un temps de traitement supplémentaire pour le parcours du tableau !
  9. L'utilisation du @ pour ne pas afficher les erreurs ralentit considérablement le traitement.
  10. $row['id'] est 7 fois plus rapide que $row[id] !!!
  11. Les messages d'erreurs ralentissent votre code ! Normal puisqu'ils sont (peuvent) être écrit dans le fichier de log, affichés, etc
  12. Essayez au maximum de sortir les fonctions telles que count, sizeof, ... des boucles. Car ces fonctions sont appelées à chaque itérations, ce qui alourdit considérablement le traitement !
  13. Préférez l'usage des simples quotes plutôt que des doubles quotes. Les doubles quotes sont parsées, tandis que les simples quotes non ! (le $ est affiché et n'est pas traité en tant que variable !)
  14. Évitez au maximum la redondance de code, en utilisant des classes ou des fonctions. Cela permet aussi une maintenance et une pérennité de votre code, puisqu'il suffira ensuite de modifier qu'à un seul endroit, au lieu de parcourir tous vos fichiers !
  15. Préférez l'utilisation des fonctions preg_* au lieu de ereg_* qui sont maintenant dépréciée !
  16. Préférez l'utilisation de
    if (!isset ($myvar{5}))
            echo $myvar.' is too short';
    au lieu de
    if (strlen ($myvar)
    Isset n'est pas une fonction mais une structure du langage, qui est donc beaucoup plus rapide !
  17. Préferez l'usage de ++$i plutot que $i++, qui est plus rapide (s'applique uniquement à PHP !)
  18. echo est plus rapide que print tout simplement car print retourne un état de succès tandis que echo ne fait qu'afficher.
  19. Tout ce qui n'est pas du PHP doit être en dehors des ?><?php ! Eviter les longs echo '<html>....'; qui seront plus long à parser que des ?><html>... !!!
  20. Préférez l'utilisation de la librairie ctype (activée par défaut depuis PHP 4.2.0) plutôt que des expressions régulières pour valider des entrées utilisateurs simple (tel que des nombres, des chaines, etc). Jetez un oeil à la librairie ctype sur php.net
  21. true est plus rapide que TRUE (sisi c'est vrai ! :p). Pourquoi ? parce que dans la structure de langage de PHP, la valeur booléenne est true. Si vous mettez TRUE, PHP va déjà vérifier si ce n'est pas une constante. C'est donc une perte de temps.
  22. 1 est plus rapide que true (et inversement 0 est plus rapide que false). Et comme PHP n'est pas typé ...
  23. Préferez if (42 == $value) plutot que ($value == 42). Ce ne sera pas plus rapide, mais vous obtiendrez une erreur si vous omettez un égal ! (42 = $value vous retournera une erreur. $value = 42 ne fera qu'assiger 42 à la variable $value, et vous comprendrez pas pourquoi votre code ne fonctionne pas :p)
  24. Il est préférable d'utiliser :
    $myArray = array ('banane' => 0, 'pomme' => 1, 'orange' => 2); 
    if (isset ($myArray[$fruits])) {
            echo $fruits.' exist';
    }
    plutot que
    $myArray = array ('banane', 'pomme', 'orange');
    if (array_exists ($myArray, $fruits)) {
            echo $fruits.' exists';
    }
  25. De plus gros blocs de code php augmentent la rapidité du script plutôt que des <?php .. ?> à chaque lignes
  26. Si vous utilisez echo, la concaténation est plus rapide avec des virgules qu'avec des points !!
    echo 'Bonjour Mr',$sName,', vous avez ',$iMsg,' message(s)'
  27. Utiliser au maximum unset, afin de libérer le plus de mémoire possible
  28. Essayer au maximum de génerer des pages html statiques une fois le contenu mis à jour, afin d'éviter un traitement à chaque affichage !

Toutes ces méthodes vous permettront d'avoir un code performant, ce qui aura pour conséquence d'améliorer la rapidité de rendu de vos pages en cas de forte consultation.

Filed under  //  Development   Php   cache   conseil   eviter   optimisation   préférable   quote   rapidity   rendu  
Posted by Cyril Nicodème