optimisation code, loader de function() ? - 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 : optimisation code, loader de function() ? (/showthread.php?tid=4853) Pages :
1
2
|
optimisation code, loader de function() ? - php_addict - 31-05-2010 bonjour je bosse comme un ouf sur mon script de resolution d'action (construire, cassage de figure, recrutement, etc...) j'ai une boucle qui tourne sur un tableau: exemple bête: $action ['id_action']['type_d'action'] $action [1]['a'] --> construire $action [2]['b'] --> on se tape dessus $action [3]['a'] --> construire $action [4]['c'] --> recrutement Code : foreach($action as $key=>$value) je comptais mettre mes functions specifiques(construire() on_tape() recrut() etc ... dans des fichiers externes puis les inclure (include ou require) pourquoi? car mon script de resolution d'action fait deja plus de 1000 lignes de code (je sais c'est peu) donc avant de faire tourner ma boucle il faut au prealable savoir quelles functions vont être incluses j'en viens à ma question: comment faire autrement que: Code : foreach($action as $key=>$value) PUIS Code : foreach($action as $key=>$value) donc comment éviter 2 boucles: l'une pour determiner quels fichiers externes ont besoins d'être inclus et l'autre pour resoudre les actions... désolé si cela n'est pas très clair:$ RE: optimisation code, loader de function() ? - Sephi-Chan - 31-05-2010 Tu peux aussi inclure tous tes fichiers, c'est pas ça qui va ralentir l'exécution. Je discutais de ça avec Anthor cet après-midi : il m'indiquait que chaque page rendue par un site tournant avec Zend Framework incluait plus de 200 fichiers !? Sephi-Chan RE: optimisation code, loader de function() ? - Anthor - 31-05-2010 Sinon y'a l'autoload, mais forcement ça implique de la POO et d'être à jour sur PHP, mais dans ce cas, la question ne se poserait même pas ! RE: optimisation code, loader de function() ? - Kihmé - 31-05-2010 je te conseillerais de passer à la POO, ton code en serait peut être moins complexe et des includes moins prise de tête, ou pas... RE: optimisation code, loader de function() ? - php_addict - 31-05-2010 (31-05-2010, 04:34 PM)Sephi-Chan a écrit : Je discutais de ça avec Anthor cet après-midi : il m'indiquait que chaque page rendue par un site tournant avec Zend Framework incluait plus de 200 fichiers !? ah ok, j'ai de la marge :-)))) donc pas besoin de me prendre le choux alors... merci pour vos reponses rapides :-) RE: optimisation code, loader de function() ? - Shudrum - 31-05-2010 C'est vrai que la POO réglerait tous tes problèmes. Derrière ca, je suis entièrement d'accord avec Sephi, j'ai bossé sur un gros intra. pour Total, or, à la fin j'ai remarqué qu'on incluait plus d'une centaine de fichier, et franchement, la perte était négligeable. C'est l'exécution du script qui prend du temps, pas la lecture. RE: optimisation code, loader de function() ? - Anthor - 31-05-2010 Je rajouterais que 1000 lignes, c'est vraiment rien du tout ! Et si vraiment vous voulez optimiser, on ne fais pas comme ça. On installe APC. ^^ RE: optimisation code, loader de function() ? - Argorate - 31-05-2010 En parlant d'optimisation :p 3 if diffèrent qui se suivent sur la même variable... pas logique => switch/elseif/else? (oui oui je sais c'est des optimisations qui ne font rien gagner tout ça... Mais c'est surtout pour la logique de la chose là) Sinon si 1000 lignes c'est pas "beaucoup", c'est combien "beaucoup"? RE: optimisation code, loader de function() ? - christouphe - 31-05-2010 Personnellement je considère comme "beaucoup de ligne":
RE: optimisation code, loader de function() ? - Sephi-Chan - 31-05-2010 Une méthode de 500 lignes, c'est 10 fois trop à mon sens. Quand tu arrives au bout, tu ne sais plus ce qui s'est fait au début. Le maximum que je m'autorise, c'est 50 lignes, et c'est vraiment réservé aux méthodes les plus longues, typiquement actions des contrôleurs. Mon crédo, c'est que le rôle d'une méthode doit pouvoir être résumé en 2 lignes. Et tout ça dépend en plus beaucoup du langage utilisé (en Java ou en Dotnet, on aura tendance à avoir plus de ligne qu'en Ruby, Python ou même en PHP) ! Voici par exemple la méthode has_enough_resources_to_repair? de ma classe User.
Et la méthode repair de la classe Building.
Déjà que cette dizaine de ligne n'est pas forcément agréable à lire, imagine si tu dois scroller ! Je pense que quand on fait de l'objet, il ne faut pas hésiter à faire plein de petits méthodes. Cf. la classe Building de Spherium. Ça ne coûte rien et ça clarifie le code en plus d'éviter les duplications inutiles. Sephi-Chan |