Objectif : compte rendu de l’activité ATELIER 1
Le contexte, l’existant, les langages et technologies utilisées.
Contexte de l’atelier
L’atelier s’inscrit dans le cadre du BTS SIO – option SLAM, au travers de l’atelier de professionnalisation.
Il est réalisé pour le compte de l’ESN InfoTech Services 86, mandatée par le réseau de médiathèques MediaTek86, dans le cadre d’un contrat de développement logiciel.
L’objectif global de l’atelier est de participer à la conception, à l’évolution et à la maintenance d’une application de gestion documentaire et de formations,
en respectant un cahier des charges précis, des contraintes techniques et une organisation professionnelle proche d’un contexte réel d’entreprise (rôles MOA/ MOE, livrables, suivi de l’atelier, qualité de code).
Le développement s’effectue de manière incrémentale, au travers de missions successives, avec un suivi par Kanban et une production de bilans professionnels à chaque étape.
Existant
Avant le démarrage des missions, une application existante est fournie par le client.
Cette application constitue une base fonctionnelle qu’il convient :
d’analyser et de comprendre, de tester dans un environnement local, de faire évoluer progressivement.
L’existant repose sur une architecture web avec séparation des responsabilités (logique métier, accès aux données, présentation).
Il comprend notamment :
une base de données relationnelle existante ;
une structure applicative organisée selon une architecture MVC ;
des fonctionnalités de consultation et de gestion de données ;
un dépôt distant permettant le suivi de versions.
L’atelier ne consiste donc pas à repartir de zéro, mais à maintenir, enrichir et sécuriser une application existante, en respectant les choix techniques initiaux et les bonnes pratiques de développement.
Technologies et outils utilisés
L’atelier s’appuie sur un ensemble de technologies professionnelles :
Framework Symfony (PHP)
Utilisé pour structurer l’application selon le modèle MVC, faciliter la maintenance du code, gérer la sécurité, les formulaires et l’accès aux données.
Doctrine ORM
Permet la persistance des objets métiers et la communication avec la base de données via un mapping objet-relationnel.
Base de données MySQL
Stockage des données applicatives (documents, utilisateurs,
commandes, historiques).
Composer
Gestionnaire de dépendances PHP permettant l’installation et la mise à jour des bibliothèques nécessaires.
Git / GitHub
Outils de gestion de versions assurant le suivi du code, l’historique des modifications et le travail structuré par commits.
NetBeans
Environnement de développement intégré (IDE) utilisé pour le codage, le débogage, les tests et l’analyse de la qualité du code.
SonarLint / SonarQube
Outils d’analyse de la qualité du code permettant de détecter les
erreurs, les failles potentielles et les mauvaises pratiques.
WampServer
Environnement serveur local (Apache, PHP, MySQL) utilisé pour le développement et les tests.
Synthèse
Cet atelier met en œuvre un environnement technique complet et réaliste, combinant développement web, programmation orientée objet, gestion de bases de données, qualité logicielle et méthodologie professionnelle.
Il permet de développer des compétences à la fois techniques,
méthodologiques et organisationnelles, directement transférables dans un contexte professionnel.
Bilan final
Bilan final et impressions
Cet atelier avait pour objectif principal de corriger, maintenir et faire
évoluer une application web développée avec le framework Symfony,
exploitant une base de données relationnelle MySQL, et mettant à disposition
des vidéos d’auto-formation en ligne proposées par MediaTek86. Cette
application s’inscrit dans un contexte professionnel réel, avec un existant
fourni, un cahier des charges à respecter et une organisation de travail inspirée
du monde de l’entreprise.
Au terme des différentes missions, l’objectif global peut être considéré comme
atteint. L’application a pu être correctement prise en main, analysée et
comprise, tant sur le plan fonctionnel que technique. Les anomalies présentes
dans l’existant ont été identifiées puis corrigées, ce qui a permis de stabiliser
le fonctionnement général de l’application. Les évolutions demandées ont été
intégrées progressivement, tout en respectant l’architecture MVC imposée par
Symfony et les bonnes pratiques de développement web.
Les fonctionnalités existantes ont été maintenues et améliorées, notamment
en ce qui concerne l’exploitation de la base de données MySQL, la gestion des
données, la navigation dans l’application et la sécurisation de certains accès.
L’atelier a également demandée de renforcer la qualité du code grâce à
l’utilisation d’outils d’analyse tels que SonarLint et SonarQube, contribuant
ainsi à une meilleure lisibilité, maintenabilité et fiabilité de l’application.
Il a été rajouté une page spécifique sur les CGU, consultable directement sur le site déployé.
Plusieurs difficultés ont toutefois été rencontrées au cours de l’atelier. La
première a concerné la compréhension de l’existant, notamment l’architecture
globale de l’application et l’interaction entre les différentes couches
(contrôleurs, entités, vues et base de données). Cette phase a nécessité un
temps d’adaptation important, ainsi que de nombreux tests et analyses de
code. Des problèmes de configuration de l’environnement de développement
ont également été rencontrés, en particulier lors de la mise en place de
Symfony, de Composer et du serveur local, nécessitant des ajustements
techniques.
Des difficultés ont aussi émergé lors de l’évolution de certaines fonctionnalités,
notamment pour garantir l’intégrité des données en base, respecter les
contraintes métier et éviter toute régression sur les fonctionnalités existantes.
La prise en compte des règles de qualité de code et des alertes générées par
les outils d’analyse a parfois impliqué de revoir des portions de code déjà
fonctionnelles afin de les rendre conformes aux standards attendus.
Malgré ces obstacles, l’atelier m’a permis de développer des compétences en
maintenance applicative, en évolution d’un système existant et en travail
méthodique. L’utilisation d’un suivi de l’atelier par Kanban, associée à des
commits réguliers sur GitHub, a favorisé une organisation intéressante et
motivante du travail. Cet atelier constitue ainsi une expérience représentative
d’un contexte réel de développement, mêlant contraintes techniques,
exigences fonctionnelles et qualité logicielle.
En finalité cet atelier a contribué au renforcement de mes compétences
techniques en développement Symfony/MySQL, mais également des
compétences méthodologiques indispensables à l’exercice du métier de
développeur.
Un grand merci !
