mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-22 22:23:23 +00:00
102 lines
3.7 KiB
Markdown
102 lines
3.7 KiB
Markdown
|
## Objectifs
|
|||
|
|
|||
|
Le but de ce projet est de fournir à
|
|||
|
l'Association des Étudiants de l'UTBM
|
|||
|
une plate-forme pratique et centralisée de ses services.
|
|||
|
Le Sith de l'AE tient à jour le registre des cotisations
|
|||
|
à l'association, prend en charge la trésorerie,
|
|||
|
les ventes de produits et services,
|
|||
|
la diffusion d’événements,
|
|||
|
la gestion de la laverie et bien plus encore.
|
|||
|
|
|||
|
C'est un projet bénévole qui tire ses origines des années 2000.
|
|||
|
Il s'agit de la troisième version du site de l'AE.
|
|||
|
Son développement a commencé en 2015.
|
|||
|
C'est une réécriture complète en rupture totale
|
|||
|
des deux versions qui l'ont précédée.
|
|||
|
|
|||
|
## Pourquoi réécrire le site
|
|||
|
|
|||
|
L'ancienne version du site, sobrement baptisée
|
|||
|
[ae2](https://github.com/ae-utbm/sith2),
|
|||
|
présentait un nombre impressionnant de fonctionnalités.
|
|||
|
Il avait été écrit en PHP et se basait
|
|||
|
sur son propre framework maison.
|
|||
|
|
|||
|
Malheureusement, son entretien était plus ou
|
|||
|
moins hasardeux et son framework reposait
|
|||
|
sur des principes assez différents de ce qui se fait
|
|||
|
aujourd'hui, rendant la maintenance difficile.
|
|||
|
De plus, la version de PHP qu'il utilisait
|
|||
|
était plus que dépréciée et à l'heure de l'arrivée de PHP 7
|
|||
|
et de sa non-rétrocompatibilité il était vital de faire
|
|||
|
quelque chose.
|
|||
|
Il a donc été décidé de le réécrire.
|
|||
|
|
|||
|
## La philosophie initiale
|
|||
|
|
|||
|
Pour éviter les erreurs du passé,
|
|||
|
ce projet met l'accent sur la maintenabilité.
|
|||
|
Le choix des technologies ne s'est donc pas
|
|||
|
fait uniquement sur le fait qu'elle soit récentes,
|
|||
|
mais également sur leur robustesse,
|
|||
|
leur fiabilité et leur potentiel à être maintenu
|
|||
|
loin dans le futur.
|
|||
|
|
|||
|
La maintenabilité passe également par le
|
|||
|
choix minutieux des dépendances qui doivent,
|
|||
|
elles aussi, passer l'épreuve du temps
|
|||
|
pour éviter qu'elles ne mettent le projet en danger.
|
|||
|
|
|||
|
Cela passe également par la minimisation
|
|||
|
des frameworks employés de manière à réduire un maximum
|
|||
|
les connaissances nécessaires pour contribuer
|
|||
|
au projet et donc simplifier la prise en main.
|
|||
|
La simplicité est à privilégier si elle est possible.
|
|||
|
|
|||
|
Le projet doit être simple à installer et à déployer.
|
|||
|
|
|||
|
Le projet étant à destination d'étudiants,
|
|||
|
il est préférable de minimiser les ressources
|
|||
|
utilisées par l'utilisateur final.
|
|||
|
Il faut qu'il soit au maximum économe en bande
|
|||
|
passante et calcul côté client.
|
|||
|
|
|||
|
Le projet est un logiciel libre et est sous licence GPL.
|
|||
|
Aucune dépendance propriétaire n'est acceptée.
|
|||
|
|
|||
|
## La philosophie, 10 ans plus tard
|
|||
|
|
|||
|
Malgré la bonne volonté et le travail colossal
|
|||
|
fourni par les developpeurs de la version actuelle
|
|||
|
du projet, force est de constater que nombre d'erreurs
|
|||
|
ont malheureusement été commises :
|
|||
|
usage complexe et excessif de certains mécanismes OO,
|
|||
|
réécriture maison de fonctionnalités de Django,
|
|||
|
système de gestion des permissions rigide et coûteux
|
|||
|
en requête à la base de données...
|
|||
|
|
|||
|
Mais malgré tout ça, le site tourne.
|
|||
|
En effet, force est de constater que le pari initial
|
|||
|
de choisir un framework stable et durable a payé.
|
|||
|
Aujourd'hui encore, Django est activement maintenu,
|
|||
|
ses mises à jour sont régulières sans pour autant
|
|||
|
nécessiter beaucoup de changements lors des changements
|
|||
|
de version majeure.
|
|||
|
|
|||
|
Quant aux erreurs qui ont été commises,
|
|||
|
que celui qui n'a jamais reconsidéré a posteriori
|
|||
|
que ce qui lui semblait une bonne architecture
|
|||
|
était en fait un ensemble brinquebalant,
|
|||
|
leur jette la première pierre.
|
|||
|
|
|||
|
La solidité des fondations ayant été prouvée
|
|||
|
par l'épreuve du temps,
|
|||
|
le travail restant à accomplir n'est
|
|||
|
pas de réécrire encore une fois le site
|
|||
|
en utilisant encore d'autres technologies,
|
|||
|
mais plutôt de raboter les surcouches du site,
|
|||
|
pour refixer le plus solidement possiblement
|
|||
|
le projet sur ces fondations.
|
|||
|
|