Bonjour,
Je salue ta démarche de sensibiliser tes élèves à la qualité du code. Du temps ou j'étais étudiant, je regrettais de n'avoir aucun cours là dessus et de voir qu'on avait la même note pour les TD/TP qu'on fasse un code impossible a maintenir ou au contraire bien clair et séparé.
En plus des remarques de Stealth35 qui, comme à son habitude, sont tout à fait justes, j'ajouterai les points suivants.
Pour le débogage et profilage des scripts PHP, je te recommande d'utiliser la dernière version de WAMP Server qui intègre nativement PHP 5.3, XDebug et WebGrind (pour le profiling), il propose par ailleurs un petit outil en C# permettant de s'interfacer avec le débogueur (je ne l'utilise pas, Eclipse fait beaucoup mieux), on peut aussi se servir du duo FireBug + FirePHP pour FireFox ou encore d'Aptana (mais je l'aime pas trop celui-là).
Pour le débogage et profilage des scripts JavaScript, on a pas fait mieux que les outils intégrés de Chrome ou FireFox + FireBug. Pour le logging en JS, rien ne vaut
window.console && console.log(...)
Quand à l'approche OOP de PHP, c'est je pense une bonne chose à condition que les élèves aient en parallèle des cours sur le paradigme objet. Quelques spécificités de l'OOP en PHP seront à mettre au menu dans ce cas.
Sinon, le découpage MVC peut tout à fait être obtenu avec une approche procédurale et des fonctions, l'essentiel selon moi est que les élèves comprennent l'importance d'un code maintenable, peu importe la mise en oeuvre. MVC est souvent cité en exemple mais d'autres formes de découpage existent, pour ma part, je trouve le modèle n-tiers (3-tiers la plupart du temps) beaucoup plus flexible et simple à comprendre au premier abord que MVC, mais c'est mon avis. Je trouve lamentable que de tels concepts ne soient abordés qu'en License et non dans les cursus BAC +2.
Après pour le débug en php un var_dump + exit (comme mentionné plus haut) permet déjà pas mal de choses.
D'après moi c'est une mauvaise chose car cela va habituer les élèves à polluer leurs scripts de notifications de débug.
Il est largement plus profitable (à tous points de vue) de les habituer à utiliser un (ou plusieurs) log(s), par exemple:
1 2 3 4 5 6 7 8 9 10 11
| <?php
ini_set('error_log', 'C:/wamp/logs/myapp.log');
ini_set('display_errors', 1);
error_reporting(-1);
error_log("Une entrée de log");
// enregistre [22-May-2012 11:55:17 UTC] Une entrée de log
1/0;
// enregistre [22-May-2012 12:17:47 UTC] PHP Warning: Division by zero in C:\wamp\www\log.php on line 10 |
On peut bien évidement utiliser des mécanismes de journalisation plus évolués, tu en a un exemple ici: http://bdelespierre.github.com/php-a...assax_log.html
Enfin, je ne soulignerai jamais trop l'importance de l'apprentissage du protocole HTTP dans un cursus Web: comprendre au moins les bases des échanges client-serveur, les headers et leurs rôles, comment Apache gère les requêtes et le connections, que sont les cookies etc. Cet aspect est tout à fait indispensable car il sert de soubassement à une bonne appréhension de PHP.
Je terminerai avec quelques aspects qui selon moi sont des must know:
- gestion des erreurs et conrôle des niveaux de reporting (au niveau du script, du .htaccess et de la configuration serveur)
- comprendre la syntaxe alternative pour la création des vues (inutiles d'utiliser des moteurs de template: PHP est un moteur de template)
- oublier mysql_* et préférer mysqli_* ou PDO afin de disposer des requêtes préparées et des transactions
- comprendre et maîtriser les filtres pour la validation des données en entrée et en sortie
- comprendre l'utilité et le rôle des méthodes magiques en OOP
- être au fait des différences entre les versions du runtime (surtout entre 5.2 et 5.3, les plus utilisées en production), rien ne vaut le changelog
- savoir mettre en place rapidement un serveur web sous Linux
- comprendre le rôle et l'utilité des directives d'un .htaccess (notamment pour l'URL rewriting)
- [optionel] faire faire quelques scripts CLI à tes étudiants sera sans doute un plus pour leur faire comprendre que PHP est avant tout un interprêteur
- savoir où trouver des informations utiles (la documentation PHP, les tutoriels, savoir où poser ses questions, savoir où ne pas regarder - notamment les fermes à script où tout est pourri jusqu'a la moelle)
- D'une manière générale, développer l'esprit critique des étudiants, qu'ils soient à même de s'interroger sur la pertinence, l'utilité et la qualité d'un script trouvé sur le net (inutile de se voiler la face, il le feront de toute façon)
- et surtout être capable de remettre en question son propre code, qualité indispensable d'un bon programmeur
Partager