Django un point zéro
L'ensemble de la Djangophonie a fait écho de la sortie, le 3 septembre dernier, de la version 1.0 du framework web Django.
Pour ma part, concernant une application développée dans le cadre professionnel, j'ai eu l'occasion de migrer d'un 0.96 à un 1.0. En suivant la documentation qui est d'une absolue perfection, on obtient en quelques minutes une version améliorée d'un modèle simple, pour lequel les tests passent et le fonctionnement général du site est identique. S'il fallait noter un framework sur la qualité de sa documentation, Django obtiendrait sans doute un 10/10.
La partie qui a le plus changé est sans doute le mécanisme de l'API de la base de données, ainsi que la branche "newforms-admin" qui refond totalement la manière de générer l'interface de gestion automatique. La création d'un fichier "admin.py" est d'ailleurs extrêmement facilité par ce snippet qui crée le fichier en scannant le fichier "models.py".
Pour ma part, je regrette quand même la disparition des validateurs, qui permettaient d'obtenir un début de contrôle de données très simplement. Au prix de quelques contorsions, c'est encore possible, mais je préférais définir simplement en deux lignes un validateur personnalisé (genre "un nombre entier qui doit se trouver entre 0 et 100 pour un pourcentage"). Less code is more.
En revanche, la partie "test" est absolument bluffante. Non seulement on peut facilement tester les modèles et leurs méthodes, c'est à dire le fonctionnement "sous le capot" de ton application, mais on peut également tester les vues, et mêmes les vues nécessitant une authentification, pour s'assurer que les pages renvoyées sont correctes. Habituellement, cette partie donnait lieu à des tests manuels (genre, pour une boutique, je me connecte, je crée un panier ou encore je remplis un formulaire d'inscription avec des données bidon, ou invalides, ou correctes...). Là, tout peut être résumé à des tests unitaires complets, lancés aussi régulièrement que possibles.
Franchement, cela ouvre des milliers de possibilités, dont celle de coder un site web sans jamais lancer le moindre navigateur. Si, si, on peut.
La migration de JHLP en Django 1.0 me chatouille ; il faudra que je réfléchisse à la question... Mais à mon avis, si je devais commencer une appli en Django ou migrer une application simple en 1.0, je foncerais sans hésiter.
Pour information, chez mon hébergeur Alwaysdata, Django 1.0 est déjà disponible. Qui parlait de réactivité, déjà ?
6 Sept. 2008 - 00:20, par NiCoS
Argh :-/
Me reste encore le tuning à faire et profiter des nouveautés de newforms-admin pour rendre MvMo un tantinet plus fonctionnel...
7 Sept. 2008 - 12:24, par tenshu
Et ça semble être que du bonheur.
Je note juste qu'en comparaison de Symfony il est moins facile de modifier le modèle en cours de route.
Et que le bouquin ne fait pas mention d'une façon de synchroniser le modèle depuis une base existante (ce que nous faisons avec Symfony).
De même l'I18n ne semble pas possible depuis une base de données dans Django.
Mais j'imagine que chaque framework à ses propres forces et faiblesses.
8 Sept. 2008 - 11:47, par No'
En revanche, depuis l'ajout de la possibilité de faire hériter des modèles (héritage de classes), on peut développer très rapidement un module permettant la traduction de contenus. ça pourrait faire l'objet d'un tutoriel simple, tiens...
17 Sept. 2008 - 10:37, par NiCoS
Suis plus tout à fait sur de vouloir quitter mon kimsufi à leur profit du coup...