Il y a un bon nombre d'années, j'ai commencé le développement web en Python avec web2py, après avoir d'abord travaillé avec WordPress, puis Joomla, et avoir choisi cette plateforme à la place de Django…
Ce qui m'a décidé:
- La fonctinonalité de *scaffolding* (échafaudage) : Juste créer ses modèles, et générer une interface CRUD complète en une seule ligne.
- Administration et éditeur de code du site entièrement en ligne.
- Une excellente et complète documentation.
J'étais très, très satisfait… et j'ai commencé à construire mon site web/CMS, à créer quelques sites pour des amis & clients, ainsi qu'une longue liste de plugins (une autre excellente fonctionnalité de la plateforme) pour diverses utilisations. Le plus durable a été un plugin d'interface d'automatisation pour Joomla. Ce plugin faisait partie du système qui a permis au site d'actualités, dont j'étais directeur technique et chef de projet, de réduire les heures de travail manuel répétitif de plus de 6 heures par jour à moins de 30 minutes…
Mais j'avais misé sur le cheval qui ne gagnerait pas
D'un côté web2py était un projet étudiant. Une petite communauté s'est formée autour, mais il n'a jamais acquis la popularité d'un projet grand public, ou même de niche international. De l'autre les défauts du développeur impulsif que j'étais en dehors de mes projets professionnels ont commencé à apparaître dans ma manière d'utiliser la plateforme…
Et donc, je me suis éloigné, petit à petit, jusqu'à abandonner complètement la plateforme, pour me concentrer sur WordPress ou Joomla pour mes développements de sites web, en essayant d'autres plateformes Python, aussi… mais pas encore Django.
Django, enfin, mais de la mauvaise manière…
Il y a un an et demi, un projet qui nécessitait une plateforme complète et robuste de développement full stack m'a été confié. J'ai enfin commencé avec Django, le choix évident.
… Mais avec les habitudes de code acquises au fil des ans (avec web2py, aussi). En forçant le modèle MVC au lieu de l'approche MVT de Django, sans approfondir suffisamment la logique de la plateforme ou en l'ignorant pour revenir à ce que je connaissais et maîtrisais, au lieu d'adopter ce qui fonctionnerait simplement et élégamment, si je prenais le temps de m'adapter, de suivre les lignes directrices et les bonnes pratiques…
Le premier module livré était fonctionnel, mais le code était bien, bien, bien plus complexe qu'il ne devait l'être…
Le premier module livré était fonctionnel, oui, mais le code était - sans exagérer - 10, 20 fois plus complexe qu'il n'aurait dû l'être...…
D'autres facteurs ont également joué un rôle, m'empêchant de me concentrer correctement sur une approche méthodique, mais au final, ce sont la qualité et les résultats qui comptent, et non les excuses et justifications…
Leçons apprises
Après cette première livraison, j'ai posé un regard critique sur mon code et ai abordé le module suivant avec beaucoup plus de lenteur et de méthode. J'ai pris le temps d'apprendre aussi complètement que possible la plateforme pour chaque fonctionnalité, processus, outil et modèle nécessaires. Résultat : un rythme de travail beaucoup plus rapide au final, avec un code clair, concis, bien documenté et facile à lire, à comprendre et à gérer.
Empêcher d'autres (développeurs) de tomber dans ce piège commun
Dans le cadre des formations avancées en informatique que je propose, j'ai conçu un cours pratique complet de développement Full Stack Python avec Django et Django Unicorn...
Avec un ensemble de cartes, de schémas et de diagrammes pour guider les apprenants vers une maîtrise aussi complète que possible des différents aspects de la plateforme.
Un schéma général d'apprentissage du développement basé sur une plateforme
Plus généralement, les structures, processus et diagrammes proposés sont adaptables pour toutes les plateformes de développement/programmation.
Donc:
Comment faire en sorte que vous les développeurs adoptiez cette méthodologie ou une méthodologie similaire pour simplifier votre travail, tout en acquérant une connaissance approfondie qui vous permettra de prospérer à l'ère de l'intelligence artificielle ?
Les détails de la méthodologie dans l'article suivant...
Suivant: Développement Web Python Full Stack Django + Unicorn
Rejoignez-nous sur Whatsapp pour une réponse rapide : MANSA - Python | … ou remplissez le contact form