Comment résoudre un problème de programmation
Bonjour à tous,
A travers ce billet, je vais essayer de vous présenter mes méthodes pour aborder un problème de programmation. Etant développeur à plein temps, je suis confronté en permanence à ce type de problématique. En général, lorsqu’on programme, on va toujours vite et on ne fait pas toujours attention au détail… et c’est souvent la cause de l’erreur.
Un premier conseil peut être de prendre le temps de programmer correctement, et d’avoir le soucis du détail, l’indentation par exemple, l’utilisation d’accolades… un code correctement écrit cause toujours moins d’erreurs.
Par exemple, entre ceci :
if ($myVariable == true) {
echo "test";
}
et cela :
if ($myVariable == true)
echo "test";
Le premier est clair, le deuxième peut prêter à confusion, surtout si vous reprenez le code quelques mois plus tard. Il ne faut jamais négliger la syntaxe.
Ensuite un problème de programmation va se présenter en général sous ces différentes formes :
- Une page blanche
- Une erreur explicite
- Une erreur de syntaxe
- Une librairie manquante
Voyons ces problèmes dans l’ordre et essayons de trouver un moyen de les éviter :
Une page blanche :
De mon expérience, quand plus rien ne marche le problème n’est pas forcement le plus grave. Dans une application web, il y a toujours deux parties : le serveur et le client. Lorsqu’une page blanche apparait il faut que vous commenciez par faire les vérifications suivantes :
- Vérifier que le serveur web est démarré
- Vérifier que le virtual host est correctement configuré. Pour cela, vous pouvez vous rendre dans le dossier racine de votre virtual host et vérifier que vous passez bien dedans en mettant un die(‘test’) au tout début du fichier index.php par exemple.
- Ensuite, il faut aller voir les logs de votre serveur. Si jamais une erreur est survenue, une trace existera dans ce fichier. Sous debian, il sera situé dans /var/log/apache2/error.log , une commande est utile pour voir les 100 dernières lignes par exemple :
tail -n 100 /var/log/apache2/error.log
- Quand vous travaillez en mode développement, il est essentiel de configurer correctement votre environnement pour afficher toutes les erreurs, vous pouvez trouver des pistes ici.
- Si rien n’y fait, l’erreur peut venir de votre cache de framework, pensez à tout bien vider
- Il peut y avoir un problème de configuration, comme des mauvais accès à la base de donnée par exemple. Relisez tout
- En dernier recours, vérifier les majuscules/minuscules, la plupart du temps, lorsqu’on travaille sur son ordinateur, celui-ci ne fait pas la différence mais ce n’est pas le ças des serveurs web qui sont case sensitive.
- Priez !
- PhpStorm
- RubyMine
- WebStorm
- PyCharm
- Le case sensitive : Faîtes attention à vos majuscules/minuscules, dans 90% du cas, cela marchera en local mais pas sur un système linux comme celui que vous aurez en production
- Un problème de versionning : Git et SVN sont des outils géniaux mais ils sont aussi sources de problème lors d’un déploiement en production, prenez bien le temps de vérifier le ficher sur le serveur en utilisant un petit “vi monFichier.rb” et soyez sur que vos modifications apparaissent.
- Le Cache : Assurez vous d’avoir supprimer tout le cache de votre navigateur + serveur + framework. Dans la plupart des cas, un reboot d’apache
- Les données de base de donnée : Souvent, certaines configurations sont stockées en base de donnée. Elles peuvent être changés en local mais vous avez oublié de les changer en production. La meilleure solution pour contrer ça, c’est de se faire des script SQL de migration pour chaque nouvelle version.
- Virtual Host : Une erreur d’inattention s’est peut être glissée dans la configuration de votre virtual host et celui-ci pointe vers le mauvais dossier.
Une librairie manquante :
Assez souvent, il manque des librairies qui sont indispensable pour l’utilisation du CMS, du framework… Le mieux pour ce type de problème, c’est une recherche google, la plupart du temps les autres internautes ont déjà rencontrés ce problème et ils ont fait un post de blog ou bien une réponse sur stackoverflow. Pour MACOSX, vous pouvez utiliser le gestionnaire de paquet homebrew, qui est facile d’installation et qui permet de rajouter des librairies qui compilent sous MACOSX
Pour conclure, il ne faut pas hésiter à demander de l’aide et à farfouiller sur le web. Essayez de rester méthodique et de vous trouver un protocole de débug qui vous convient. La configuration de votre environnement de programmation pour faire du pas à pas est aussi un gros atout pour gagner en efficacité.
Leave a Comment