gwift-book/source/main.adoc

4.1 KiB
Raw Blame History

Minor swing with Django

Nous nallons pas vous mentir: il existe enormément de tutoriaux très bien réalisés sur "Comment réaliser une application Django" et autres "Déployer votre code en 2 minutes". Nous nous disions juste que ces tutoriaux restaient relativement haut-niveaux et se limitaient à un contexte donné.

Lidée du texte ci-dessous est de jeter les bases dun bon développement, en survolant lensemble des outils permettant de suivre des lignes directrices reconnues, de maintenir une bonne qualité de code au travers des différentes étapes (du développement au déploiement) et de sassurer du maintient correct de la base de code, en permettant à nimporte qui de reprendre le développement.

Ces idées ne sappliquent pas uniquement à Django et à son cadre de travail, ni même au langage Python. Juste que ces deux sujets sont de bons candidats et que le cadre de travail est bien défini et suffisamment flexible.

  • Faible couplage et forte cohésion, pour que chaque composant dispose de son indépendance.

  • Moins de code, plus de fonctionnalités.

  • Dont repeat yourself: on ne se répète pas !

  • Rapidité du développement (après une petite courbe dapprentissage un peu ardue au début ;-))

Mis côte à côte, lapplication de ces principes permet une meilleure stabilité du projet à moyen et long terme. Tout pour plaire à nimporte quel directeur IT.

Dans la première partie, nous verrons comment partir dun environnement sain, comment le configurer correctement, comment installer Django de manière isolée et comment démarrer un nouveau projet. Nous verrons rapidement comment gérer les dépendances, les versions et comment appliquer et suivre un score de qualité de notre code. Nous verrons aussi que la configuration proposée par défaut par le framework nest pas idéale dans la majorité des cas.

Pour cela, nous présenterons différents outils, la rédaction de tests unitaires et dintégration pour limiter les régressions, les règles de nomenclature et de contrôle du contenu, comment partir dun squelette plus complet, ainsi que les bonnes étapes à suivre pour arriver à un déploiement rapide et fonctionnel avec peu defforts.

A la fin de cette partie, vous disposerez dun code propre et dun projet fonctionnel (mais encore inutile, parce quencore vide).

Dans la deuxième partie, nous détaillerons précisément les étapes de déploiement, avec la description et la configuration de linfrastructure, des exemples concrets de mise à disposition sur deux distributions principales (Debian et CentOS), sur une *Plateform as a Service*, ainsi que lutilisation de Docker et Docker-Compose.

Nous aborderons également la supervision et la mise à jour dune application existante, en respectant les bonnes pratiques dadministration système.

Dans la troisième partie, nous aborderons les grands principes de modélisation, en suivant les lignes de conduites du cadre de travail. Nous aborderons les concepts clés qui permettent à une application de rester maintenable, les formulaires, leurs validations, comment gérer les données en entrée, les migrations de données et ladministration.

Dans la quatrième partie, nous mettrons ces concepts en pratique en présentant le développement de deux "vraies" applications: définition des tables, gestion des utilisateurs, …​ et mise à disposition!

Et tout ça à un seul et même endroit.[1] Oui. :-)

Bonne lecture.

Unresolved directive in <stdin> - include::part-1-workspace/_main.adoc[]

Unresolved directive in <stdin> - include::part-2-deployment/_main.adoc[]

Unresolved directive in <stdin> - include::part-3-django-concepts/_index.adoc[]

Unresolved directive in <stdin> - include::part-4-go-live/_index.adoc[]

Unresolved directive in <stdin> - include::part-9-resources/_index.adoc[]


1. Avec un peu dXKCD dedans