gwift-book/source/main.adoc

5.1 KiB
Raw Blame History

Minor swing with Django

Préface

The only way to go fast, is to go well
— Robert C. Martin

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é, et ne préparaient pas réellement à la maintenance et au suivi dune application.

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 menant jusquau déploiement et de sassurer du maintient correct de la base de code, en permettant à nimporte qui de reprendre ce qui aura déjà été écrit.

Ces idées ne sappliquent pas uniquement à Django et à son cadre de travail, ni même au langage Python. Ces deux sujets sont cependant de bons candidats et leur cadre de travail est bien défini, documenté 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 bonne stabilité du projet à moyen et long terme. Comme nous le verrons par la suite, et sans être parfait, Django offre une flexibilité énorme qui permet de laisser le maximum doptions ouvertes, mais également dexpérimenter facilement plusieurs pistes simultanément, jusquau moment de prendre une vraie décision. 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 aborderons les architectures typées entreprise, les services et les différentes manières de structurer son application pour faciliter sa gestion et sa maintenance.

Dans la cinquiè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!

Pour qui ?

Ce livre sadresse autant au néophyte qui souhaite se lancer dans le développement Web quà lartisan qui a besoin dun aide-mémoire et qui ne sait toujours

Pour quoi ?

Pour aller plus loin

Conventions

Lets keep in touch

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-data-model/_index.adoc[]

Unresolved directive in <stdin> - include::part-4-services-oriented-applications/_main.adoc[]

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

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

Unresolved directive in <stdin> - include::glossary.adoc[]

Index

1. Bibliographie

bibliography::[]