63 lines
3.5 KiB
Plaintext
63 lines
3.5 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 uneé tape relativement
|
||
facile à mettre en place.
|
||
Le code qui permet de faire tourner cette application peut ne pas être élégant, voire buggé jusqu'à la moëlle,
|
||
il pourra fonctionner et faire "preuve de concept".
|
||
|
||
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:
|
||
|
||
[quote]
|
||
----
|
||
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
|
||
----
|
||
|
||
Le développement d'un logiciel nécessite une rigueur d'exécution et des connaissances précises dans des
|
||
domaines extrêmement variés.
|
||
Il nécessite également des intentions, des (bonnes) décisions et énormément d'attention.
|
||
Indépendamment de l'architecture que vous aurez choisie, des technologies que vous aurez patiemment évaluées et mises en place,
|
||
une architecture et une solution peuvent être cassées en un instant, en même temps que tout ce que vous aurez construit,
|
||
dès que vous en aurez détourné le regard.
|
||
|
||
Un des objectifs ici est de placer les barrières et les gardes-fous (ou plutôt, les "*garde-vous*"), afin
|
||
de péréniser au maximum les acquis, stabiliser les bases de tous les environnements (du développement à la production)
|
||
qui pourraient accueillir notre application et fiabiliser les étapes de communication.
|
||
|
||
[quote]
|
||
----
|
||
A software system that is hard to develop is not likely to have a long and healthy lifetime
|
||
-- Robert C. Martin, Clean Architecture, Chapitre 15, What is architecture ?, page 137
|
||
----
|
||
|
||
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 (et si cela a planté, préparer un post-mortem de l'incident pour qu'il ne se produise plus)
|
||
. 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[]
|