gwift-book/source/part-1-workspace/_main.adoc

3.5 KiB
Raw Blame History

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 dune 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 lorsquune nouvelle demande sera introduite, lorsquun bug sera découvert et devra être corrigé ou lorsquune 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 cest juste cette maintenance qui est difficile.

Lapplication des principes présentés et agrégés ci-dessous permet surtout de préparer correctement tout ce qui pourra arriver, sans aller jusquau « YAGNI » qui consiste à surcharger tout développement avec des fonctionnalités non demandées, juste « au cas ou ». Pour paraphraser une partie de lintroduction:

Getting software right is hard: it takes knowledge and skills that most young programmers dont take the time to develop. It requires a level of discipline and dedication that most programmers never dreamed theyd need. Mostly, it takes a passion for the craft and the desire to be a professional.Robert C. Martin, Clean Architecture

Le développement dun logiciel nécessite une rigueur dexé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 dattention. Indépendamment de larchitecture 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.

Avant de démarrer le développement, il est nécessaire de passer un peu de temps sur la configuration de lenvironnement.

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 lapplication 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:

  1. démarrer un script,

  2. prévoir un rollback si cela plante

  3. 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 dentre elles pourraient devoir être adaptées si vous utilisez un autre système dexploitation (macOS) ou nimporte quelle autre grosse bouse commerciale.

Unresolved directive in <stdin> - include::maintainable-applications/_index.adoc[]

Unresolved directive in <stdin> - include::environment/_index.adoc[]

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