Je viens de finir la lecture de Practical Django Projects, écrit par James Bennett, qui occupe le poste de "Django Release Manager" et qui a publié sur son blog de nombreux billets sur Django et les bonnes pratiques à avoir/appliquer. Autant le dire tout de suite, le livre est de la même qualité que ses billets : accessibles, pédagogiques et pertinents.
Le livre se décompose en cinq grandes sections :
- Présentation de Django
- Réalisation d'un CMS simple (permettant de poser les bases)
- Réalisation d'un weblog (permettant de découvrir les concepts de "template tags", manager, l'utilisation de librairies tiers, les vues génériques, etc)
- Réalisation d'un dépôt de code (qui complète les points abordés précédemment et permet d'aborder le gestionnaire de formulaires).
- Synthèse sur les bonnes pratiques à suivre pour du code flexible, adaptable, réutilisable, distribuable et surtout documenté !
Autant je n'ai pas appris grand chose avec les deux premières sections, autant j'ai adoré la troisième et cinquième. Pour la quatrième section, mon niveau en python & django font que pas mal de choses me sont passées pour le moment au dessus de la tête et que cela ne répond pas à mes besoins immédiats (contrairement à la troisième section).
Même si l'arrivée de la nouvelle interface d'administration et le fait que le code sur les "Signals" ait été réécrit font que quelques infimes parties du livre se trouvent aujourd'hui un peu obsolètes, le livre a le grand mérite de tout bien expliquer, de poser les bases et d'accompagner le lecteur dans une montée en puissance au niveau de sa maîtrise de Django.
Le seul reproche que je peux formuler concerne la quatrième section où l'accent n'est mis que sur les nouveautés. Du coup, on appréhende moins la construction de l'application en tant que telle. A ce jour le code source utilisé dans le livre (section de gauche) n'étant pas encore dispo sur le site d'Apress, cela n'aide pas non plus pour prendre le train en route...
Pour tout ce qui est bonnes pratiques, elles sont présentes partout dans le livre. Point besoin d'attendre la 5ème section pour en bénéficier. L'auteur prend même au début le plaisir à montrer la "mauvaise façon" (ie sans prendre en compte les besoins d'extensibilité/flexibilité/...) puis montre ensuite la "bonne façon" de faire. Des conseils qui sont en général assez simple à suivre et donne de solides avantages au code généré (lisibilité, simplicité, réutilisabilité, etc).
(Mal)heureusement, je n'avais pas de PC sous la main pour coder en parallèle. Je n'ai donc pas pu capitaliser / jouer avec ce qui a été abordé. (J'aurais en outre pu en profiter pour coder la base de mon projet Atome...)
Pour conclure, si quelqu'un souhaite se mettre aujourd'hui à Django, je ne saurais trop lui recommander de lire en premier lieu "The definitive guide to Django : web development done right" puis ce livre ensuite. Avec ça et ensuite la documentation en ligne, il est prêt pour mener à bien des projets (perso/pro).