Problèmes rencontrés et enseignements¶
Introduction¶
La réalisation de ce projet a nécessité de nombreuses phases d'expérimentation, de correction et d'évolution.
Comme pour la plupart des projets techniques, l'architecture finale n est pas celle du début sur papier.
Le projet a évolué progressivement en fonction :
- des nouvelles connaissances acquises ;
- des technologies découvertes ;
- des contraintes techniques rencontrées ;
- des besoins apparus au fur et à mesure de l'avancement.
Cette évolution a constitué une partie importante de l'apprentissage.
Les difficultés rencontrées n'ont pas été considérées comme des échecs, mais comme des opportunités permettant de mieux comprendre les technologies utilisées et d'améliorer progressivement l'architecture.
Évolution du portail d'administration¶
Un projet qui a grandi progressivement¶
Le portail d'administration a été l'un des composants ayant le plus évolué pendant le développement du projet.
Initialement, l'application Python était relativement simple et composée de quelques fonctionnalités.
Au fur et à mesure de l'avancement, de nouvelles idées sont apparues :
- intégration avec l'API Proxmox ;
- gestion des machines virtuelles ;
- affichage des ressources ;
- gestion des adresses IP ;
- amélioration de l'interface ;
- ajout de nouvelles fonctionnalités d'administration.
Chaque nouvelle fonctionnalité entraînait souvent de nouvelles contraintes techniques.
Le projet a donc connu une évolution progressive de son architecture et de son code.
Une augmentation importante du code¶
L'un des enseignements importants du projet concerne la croissance naturelle d'une application.
Au départ, les scripts Python ne comportaient que quelques dizaines de lignes.
Avec l'ajout progressif de nouvelles fonctionnalités, le code a considérablement évolué.
À un stade avancé du projet :
app.py Près de 500 lignes
proxmox.py Près de 1 600 lignes
Cette évolution a mis en évidence l'importance de l'organisation du code.
Un programme simple peut rapidement devenir plus complexe lorsque les fonctionnalités augmentent.
Cette expérience a permis de mieux comprendre la nécessité de séparer les responsabilités entre les différents composants.