45 lines
2.6 KiB
Plaintext
45 lines
2.6 KiB
Plaintext
= Environnement et méthodes de travail
|
||
|
||
"Make it work, make it right, make it fast"
|
||
-- Kent Beck
|
||
|
||
En fonction de vos connaissances et compétences, la création d’une nouvelle application est relativement facile à mettre en place.
|
||
Le code qui permet de faire tourner cette application peut ne pas être élégant, il fonctionnera.
|
||
Les problèmes arriveront lorsqu'une nouvelle demande sera introduite, lorsqu'un bug sera découvert et devra être corrigé
|
||
ou lorsqu'une dépendance cessera de fonctionner ou d'être disponible.
|
||
Or, une application qui n’évolue pas, meurt.
|
||
Tout application est donc destinée, soit à être modifiée, corrigée et suivie, soit à déperrir et à être délaissée
|
||
par ses utilisateurs.
|
||
Et c’est juste cette maintenance qui est difficile.
|
||
|
||
L’application des principes présentés et agrégés ci-dessous permet surtout de préparer correctement tout ce qui pourra arriver,
|
||
sans aller jusqu’au « *YAGNI* » qui consiste à surcharger tout développement avec des fonctionnalités non demandées,
|
||
juste « au cas ou ». Pour paraphraser une partie de l’introduction:
|
||
|
||
Getting software right is hard: it takes knowledge and skills that most young programmers don’t take the time to develop.
|
||
It requires a level of discipline and dedication that most programmers never dreamed they’d need.
|
||
Mostly, it takes a passion for the craft and the desire to be a professional.
|
||
-- Robert C. Martin, Clean Architecture
|
||
|
||
Avant de démarrer le développement, il est nécessaire de passer un peu de temps sur la configuration de l'environnement.
|
||
|
||
Les morceaux de code que vous trouverez ci-dessous seront développés pour Python3.9+ et Django 3.2+.
|
||
Ils nécessiteront peut-être quelques adaptations pour fonctionner sur une version antérieure.
|
||
|
||
Dans cette partie, nous allons parler de *méthodes de travail*, avec comme objectif d'éviter que l'application ne tourne que sur notre machine et que chaque déploiement ne soit une plaie à gérer.
|
||
Chaque mise à jour doit être réalisable de la manière la plus simple possible:
|
||
|
||
. démarrer un script,
|
||
. prévoir un rollback si cela plante
|
||
. se préparer une tisane en regardant nos flux RSS (si cette technologie existe encore...).
|
||
|
||
NOTE: La plupart des commandes qui seront présentées dans ce livre le seront depuis un shell sous GNU/Linux.
|
||
Certaines d'entre elles pourraient devoir être adaptées si vous utilisez un autre système d'exploitation (macOS)
|
||
ou n'importe quelle autre grosse bouse commerciale.
|
||
|
||
include::maintainable-applications/_index.adoc[]
|
||
|
||
include::environment/_index.adoc[]
|
||
|
||
include::django/_index.adoc[]
|