10-08-2011, 08:14 AM
À mon sens, bien programmer une application Web, c'est avoir un résultat fonctionnel avec un code facile à lire et à maintenir, assez efficace et qui ne souffrira pas trop de l'augmentation du nombre de joueurs (scalabilité).
Pour atteindre un tel résultat, on peut utiliser des recettes qui marchent bien : les design pattern. Parmi eux, il y a effectivement MVC, qui permet de séparer les couches de l'application pour mieux les contrôler. Le principe étant bien sûr de séparer pour mieux régner, mais pas trop sinon on ne s'y retrouve plus.
Dans cette optique, l'utilisation d'un framework n'est pas optionnelle : on ne peut pas faire ça sans (voici une liste non exhaustive des raisons qui le rendent indispensable : Pourquoi utiliser un framework ?). Idéalement, on utilisera un framework open source car les frameworks maisons sont moins fiables (car moins éprouvés) et — dans la vaste majorité des cas — de moins bonne qualité.
Note qu'on peut aussi faire de la daube avec un framework, mais c'est plus difficile.
Concernant le choix, ça dépend de toi. Voici les principaux pour PHP et mon avis sur chacun :
Ensuite, bien programmer, c'est écrire des tests. Au minimum des tests unitaires qui testent individuellement chaque méthode pour s'assurer qu'elles font bien leur travail.
Les tests d'intégration sont également très important : est-ce les features de l'application fonctionnent ? Pour ça, on a des outils comme Cucumber. Créer du code fiable qui ne régresse pas et qui n'introduit pas de bug dans l'existant, c'est bon pour la qualité (car mine de rien, écrire du code facile à tester unitairement n'est pas toujours facile et oblige à bien réfléchir) et ça rassure lors des déploiement et des développement de nouvelles fonctionnalités profondes.
Pour atteindre un tel résultat, on peut utiliser des recettes qui marchent bien : les design pattern. Parmi eux, il y a effectivement MVC, qui permet de séparer les couches de l'application pour mieux les contrôler. Le principe étant bien sûr de séparer pour mieux régner, mais pas trop sinon on ne s'y retrouve plus.
Dans cette optique, l'utilisation d'un framework n'est pas optionnelle : on ne peut pas faire ça sans (voici une liste non exhaustive des raisons qui le rendent indispensable : Pourquoi utiliser un framework ?). Idéalement, on utilisera un framework open source car les frameworks maisons sont moins fiables (car moins éprouvés) et — dans la vaste majorité des cas — de moins bonne qualité.
Note qu'on peut aussi faire de la daube avec un framework, mais c'est plus difficile.
Concernant le choix, ça dépend de toi. Voici les principaux pour PHP et mon avis sur chacun :
- Symfony (en version 2) : c'est le gros framework full stack mais qui reste assez facile à prendre en main. Il est assez conventionnel dans son approche. C'est celui que je conseille si on reste sur PHP ;
- Zend Framework : c'est également un gros morceau très complet mais à la courbe d'apprentissage très raide et qui ne ressemble à rien d'autre. Même s'il fournit d'excellent outils, il y a pas mal de choses pénibles à faire soi-même et souvent des tas de manières de le faire, donc on ne sait pas vraiment comment faire les choses. Je le déconseille à moins d'avoir une très bonne expérience des frameworks et beaucoup de temps à investir dans son apprentissage ;
- CakePHP : Un bon framework mais quitte à l'apprendre, autant changer de langage et se tourner vers son père spirituelle, infiniment plus efficace : Ruby on Rails. Et je dis ça très sérieusement : avec un certain bagage technique, apprendre un langage est plutôt facile. Si ça mène vers la crème des frameworks Web, ça vaut le coup de songer à franchir le pas. C'est ce que j'ai fais et je ne le regrette pas, mais il faut dire que le développement Web est ma passion.
- Code Igniter : Plus modeste que les autres, il reste efficace et propose le minimum. C'est pas mal quand on est vraiment débutant ou qu'on prépare un petit site.
Ensuite, bien programmer, c'est écrire des tests. Au minimum des tests unitaires qui testent individuellement chaque méthode pour s'assurer qu'elles font bien leur travail.
Les tests d'intégration sont également très important : est-ce les features de l'application fonctionnent ? Pour ça, on a des outils comme Cucumber. Créer du code fiable qui ne régresse pas et qui n'introduit pas de bug dans l'existant, c'est bon pour la qualité (car mine de rien, écrire du code facile à tester unitairement n'est pas toujours facile et oblige à bien réfléchir) et ça rassure lors des déploiement et des développement de nouvelles fonctionnalités profondes.