|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2009 Messages : 5 ![]() |
Bonjour à tous.
Je travaille actuellement sur un projet perso. Je suis en train de coder ça sous une structure MVC sans POO. Le soucis c'est que le projet va avoir beaucoup de visites quand il sera lancé, donc il faudrait vraiment que la structure tienne le coup. Je me demandais si programmer en POO ou en procédurale pouvait changer quelquechose au niveau de la vitesse d'éxécution ou de l'optimisation du code ? Avec quoi peut-on obtenir le meilleur rendu : moins de requêtes, structure stable etc ... ? De plus, est-il utile que je fasse une structure moi même, cela m'apprend certes à avoir plus de maîtrise mais ne serait-ce pas plus rapide et plus sécurisé sous un Framework comme Zend ? J'ai peur qu'en utilisant Zend, j'utilise un bazooka pour tuer une mouche, en effet, je fais moi même ma structure, je code seulement les fonctions dont le projet a besoin, c'est donc plus léger et plus optimisé, je me demandais si en utilisant Zend, je vais certes perdre du temps à prendre la structure en main, mais est-ce un réel gain de temps une fois que l'outil est maîtrisé, et encore plus important, est un réal gain d'optimisation des requêtes et de l'exécution des pages (taille etc ...) ? Merci à tous d'éclairer ma lanterne ! |
|
|
00
|
|
|
#2 | |||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Hello
Citation:
Citation:
Citation:
Citation:
Citation:
Il faut aussi noter que pour développer sereinement et efficacement sur un framework il faut bien le connaitre. Sans formation payante adéquate, cela peut prendre plusieurs mois (j'ai eu des retours d'expérience faisant état d'un an d'apprentissage avant de maitriser Symphony par exemple). Mais cela dépends de tes ambitions et de ta capacité d'apprentissage. Tu trouvera sur internet énormément de comparatifs sur les frameworks PHP (c'est un genre de guerre sainte interne à PHP.) Je citerai les 3 plus grands du moment: - Zend Framework, qui se laisse volontairement utiliser comme une vulgaire librairie pour des projets ultra-spécifiques par exemple. - Symphony - Cake PHP (sa version 3 en release depuis 2009 pour PHP 5.3 s'appelle Lithium) Personnellement, j'utilise depuis peu Lithium: il est léger, rapide, sûr et surtout c'est un vrai bijou dans sa conception. Malheureusement les tutoriels et les livres dessus sont très rares contrairement à ses compères Zend et Symphony. On notera pour le cas particulier du Zend Framework qu'il est développé et maintenu par Zend Company, la société qui publie et maintient PHP depuis php3. Ils fournissent en outre un package composé de - Zend Framework - Zend Studio - Zend Server Zend Server est une plateforme pour PHP optimisée pour le Zend Framework, ça coûte des billes mais le gain de performance est à la hauteur. Zend Studio est un Eclipse + PDT qui ajoute de nombreuses fonctionnalités pour développer efficacement. Il est payant mais tu peux retrouver ces fonctionnalités en combinant: Eclipse + PDT + MyLyn + Subversive + Aptana2 + Web Development tools + RSE + Database Development Tools Dans tous les cas, que tu utilise un framework ou non, je te recommande Eclipse PDT pour tes développements PHP. Je l'utilise dans le milieu industriel depuis plus d'un an maintenant et ça me fait gagner un temps fou. De plus Eclipse PDT reconnait la syntaxe et l'API de PHP et te préviens des erreurs eventuelles dans ton code. Pour un gain de performance significatif, sache que PHP 5 est environ 2x plus rapide que PHP 4 et que PHP 5.3 est 3x plus rapide que PHP 5.1 (je cherche actuellement ma source). Sache que de tous les framework que j'ai cité, seul Lithium utilise à fond toutes les fonctionnalités de PHP 5.3 (c'est pour ça que je l'utilise). Enfin, je ne saurais que trop te recommander d'utiliser un débugger: - xdebug (gratuit, générique) - Zend Debugger (je sais plus, je l'utilise pas) Tu peux profiler les performances de ton application en faisant produire des fichier de profiling par xdebug et les parser avec WinCacheGrind. J'espère que d'autres développeurs pourront ajouter leur grain de sel à la discussion pour que tu puisse te forger une opinion.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|||||
|
00
|
|
|
#3 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
Citation:
http://downloads.zend.com/studio-eclipse/updates/8_0/
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#4 | |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Citation:
Pour te répondre très clairement : NON ! Entre un site fait en procédural et un site full framework il y'a au moins un facteur 10 en perte de performance pour le framework. En mettant en place les indispensable système de cache et optimiseur divers on diminue largement de moitié ce problème mais le procédural restera toujours plus rapide. Voir cet article pour avoir une idée de la différence entre framework et procedural Tout simplement car (je prend l'exemple des bdd) mysql_query(...) fait appelle directement à une fonction du langage alors que $zenddb->query(...) passe par plusieurs couche d'abstraction php avant d'atteindre une fonction du langage. Donc concrètement un framework pourra te faire gagner en productivité et sécurité (sous réserve de savoir l'utiliser correctement) mais n'est en aucun cas un solution pour les performances. Perso je suis pas partisans des énorme framework à tout faire , certes très pratique mais diablement gourmand et souvent problématique quand on débute. Peut être que l'idéal est de trouver le juste millieu entre le buldozer type Symphony/ZF et le procédural. |
|
|
00
|
|
|
#5 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Je voudrais ajouter qu'avec le tournant qu'a pris Javascript depuis la méthodologie Ajax, il y a un énorme gain de performances possible pour les application internet. Facebook l'a compris; pratiquement tout est fait chez le client avec Javascript.
On peut par exemple: - Faire générer des PDF/CSV ou autres chez le client - Faire générer des graphiques/images chez le client - Ne remplacer qu'une partie du contenu d'une page pour ne pas régénérer / renvoyer tout le flux chez le client à chaque fois - Remplacer la plupart des effets sexy habituellement en flash par du JS pour un gain de performances, d'ergonomie, de référencement et surtout de bande passante - Délocaliser les traitements lourds (tri d'un grand tableau, recherche complexe etc.) chez le client - Utiliser des fonctionnalités PHP (presque) naturellement dans JS (avec XOAD par exemple) - et bien plus... Ne limiter les échanges client / serveur qu'au strict nécessaire avec Ajax est un moteur de performances à la fois pour l'utilisateur qui voit l'ergonomie du site améliorée et pour le serveur qui doit faire moins de travail. Pour reprendre ce que disait grunk: Citation:
A ce compte là on pourrait aussi dire "Le PHTML c'est encore ce qu'il y a de plus rapide". Mais il faut pas perdre de vue que ce qu'on gagne en performance avec du procédural, on le perds en flexibilité et en temps de maintenance. Le framework, c'est aussi du confort pour le programmeur, et correctement optimisé (système de cache, Ajax etc.) les perfs sont acceptables en regard d'une archi procédurale. Mais le procédural ne pourra jamais répondre "oui" à la question: "si je change de sgbd, ça prends 5 minutes ?". (je dis ça parce que je viens de tester avec Lithium justement, passer de MySQL à MongoDB s'est fait en changeant uniquement le fichier de configuration
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Les framework type Lithium / CodeIgniter peuvent être le juste millieu dont je parlais dans mon post précédent
Apprentissage réduit par rapport au "gros" framework (quoi que lithium est pauvre en doc me semble t'il) mais les fonctionnalités intéressantes sont là |
|
00
|
|
|
#7 | |||||||
|
Invité de passage
![]() Inscription : janvier 2009 Messages : 5 ![]() |
Bonsoir !
Merci à tous pour vos réponses ! J'ai pas mal de questions maintenant ! Citation:
Citation:
Citation:
Mon application sera un site de rencontre, avec des modules généraux : messagerie, chat, consultation de profils, vidéos ... Donc, en résumé, le projet est censé, je dis bien censé avoir beaucoup d'utilisateurs à l'avenir, plusieurs centaines par jour en tout cas. Faisons l'hypothèse suivante : - 10 000 visites / Jour - Chaque visiteur regarde en moyenne 20 pages - Si j'ai 5 requêtes par page, ça nous fait donc un total de : 1 000 000 de requêtes par jour. De plus, j'utilise JQuery, donc pas mal d'inclusion de JS par-ci, par là ! Citation:
Citation:
Citation:
Ensuite Citation:
Mais le soucis du procédural, c'est qu'il faut coder correctement et utiliser les bonnes fonctions sinon c'est pas terrible niveau performance ? L'intêret ici du MVC, c'est par exemple de gérer les designs etc, c'est plus pratique je trouve, mais niveau performance ça change quelquechose ? Concernant mon projet, je ne sais pas si le framework est justement adapté ! Sauf si il est léger etc ? |
|||||||
|
|
00
|
|
|
#8 | ||||||||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Il y explique son choix de framework et pourquoi il a rapidement abandonné Joomla. Citation:
Code :
http://www.tvidesign.co.uk/blog/impr...excellent-tips. Citation:
C'est des querelles de clocher tout ça... ça me fait penser aux discussions de trolls "HTML est-il un langage" Citation:
Citation:
Regarde par là ça te donnera une idée de ce dont je parle: http://en.wikipedia.org/wiki/Multitier_architecture Citation:
Citation:
- Zend Framework - CakePHP - Symphony - Lithium - Ruby On Rails - JavaEE - etc. bref tout le monde Citation:
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||||||||||
|
00
|
|
|
#9 | |||||
|
Invité de passage
![]() Inscription : janvier 2009 Messages : 5 ![]() |
Citation:
Citation:
Mais à vrai dire, les prétentions du sites sont d'avoir au moins 30 000 visites par jour (ce qui est loin d'arriver pour le moment, mais c'est un objectif à atteindre). Donc si on se base sur l'hypothèse que j'avais fais : - 20 pages visitées par membres - 5 requêtes par pages - Ca nous fait un total de 3 000 000 requêtes, donc mine de rien, pour éviter des soucis au serveur, il faut quand même une structure qui soit capable de tenir le choc ! Citation:
Citation:
Citation:
- C'est pas mal recherché (Surtout pour Zend) sur le marché de l'emploi quand j'y serai - C'est une structure de plus - Elle est censé être sécurisée et assez maniable etc ... - Si je fais un site en procédural et que les performances sur serveur sont en chute libre, il faudra que je change tout, ça voudra donc dire que le projet est bâti sur des murs en pudding, c'est donc pas l'idéal car j'aurai beau changer les fondations ça sera trop tard ! Donc je voulais vraiment être sûr de me lancer avec des fondations plus ou moins solides, quitte à passer du temps à apprendre ! D'ou le début de structure MVC que j'avais commencé à faire, mais ce ne sera jamais autant sécurisé que le reste ! De plus, est-ce que ça fait très "pro" d'utiliser un Framework pour un futur site commercial ? |
|||||
|
|
00
|
|
|
#10 | |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Citation:
Et c'est en général le genre de chose sur lesquel on évite de communiquer. Si c'est de notoriété publique que le site X utilise le framework Y en version 1.0.1 , le jour ou un bug est connu dans cette version , tu peux être à peut près sur d'avoir le droit aux attaques de tous les pirates en herbe qui se croient malins. |
|
|
00
|
|
|
#11 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Un MVC, c'est simple à réaliser. J'ai fait une structure avec routing, gestion des layouts et internationalisation en 8h c'est dire...
Un framework ça propose beaucoup plus, mais ça à l'inconvénient de te 'masquer' cette complexité. Exemple: je suis une bille en Javascript mais je suis un ninja avec jQuery Si tu te sens l'âme d'un guerrier, et que tu veux y passer tes longues soirées d'hiver, tu pourra arriver à mettre les mains dans le moteur de ton framework, qui sait tu pourrait même y contribuer. L'essentiel c'est surtout d'apprendre à s'en servir comme un outil avec lequel travailler efficacement et simplement. Conserve aussi à l'esprit qu'un framework prends définitivement tout son sens avec le travail d'équipe: un framework pour les gouverner tous! ça formatte toute l'équipe dans le même moule pour que tous travaillent de concert (j'en ai fait l'expérience et c'est vrai que sans une structure commune, ça devient rapidement le foutoir dans le projet...) En d'autres termes à toi de jouer maintenant, on peut continuer le thread longtemps avec les Pro-Zend, les Pro-Symphony et les Anti-Framework mais c'est ton appli et ton choix maintenant.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
Copyright © 2000-2012 - www.developpez.com