0 %
Bases de données
0 %
Java / Spring Boot
0 %
JavaScript / TypeScript
0 %
Modélisation de données (UML)
Ma définition

La programmation WEB et les bases de données représentent le socle fondamental du développement web classique, avec l’interactivité côté client (avec JavaScript et Typescript), la logique métier côté serveur (avec PHP et Java) et la manipulation de bases de données avec SQL. Cela implique non seulement savoir écrire une requête fonctionnelle mais également de savoir structurer et concevoir son code de façon clair, en prenant en compte les facteurs de performance et de sécurité.

Ce sont pour moi des compétences transversales car cela ne dépend pas d’un langage unique : elle se juge à la qualité du raisonnement de conception, indépendamment de la syntaxe employée.

 
Mes éléments de preuve

Lors de la refonte du système interne de gestion client Dolibarr durant mon stage chez Andil en 2020, j’ai dû m’appuyer massivement sur ces même socle. L’ancien version était difficile à prendre en main et à maintenir. J’ai donc dû restructuré la base de données via des requêtes SQL optimisées afin d’accélérer l’affichage des fiches clients, tout en sécurisant le code PHP back-end. Cela m’a notamment appris à lire et comprendre un schéma relationnel préexistant avant d’y intervenir, plutôt qu’à concevoir une base sur une feuille blanche.

Aussi, dans le cadre de mon projet de contrôle d’accès RFID réalisé lors du BTS SNIR, nous avons procédé au développement d’une plateforme qui gère la connexion des étudiants ainsi que la gestion des horaires via une interface PDO (PHP Data Objects). Cela a notamment permis l’acquisition d’une meilleure visibilité sur les horaires d’accès aux salles de nos utilisateurs. Là encore, un exercice de programmation serveur où chaque requête SQL avait une conséquence physique immédiate. 

Enfin, sur le conception de la plateforme PMT (Project Management Tool) réalisé dans le cadre de mon Mastère avec l’ISCOD, j’ai réalisé un développement en backend Java/Spring Boot en couches strictes (models JPA, repositories Spring Data, services, contrôleurs REST), avec un usage systématique de DTO (Data Transfer Object) pour découpler la persistance de la logique métier, sur un système relationnel modélisé en amont via un diagramme de classes UML. Cette architecture en couches a facilité l’écriture de tests unitaires isolés (@WebMvcTest) et de tests d’intégration (@SpringBootTest), la base de données H2 pouvant être substituée sans impact sur la logique métier grâce au découplage introduit par les DTO.

Résultat : Sur les trois projets menés à des phases différentes de mon apprentissage dans ce métier d’ingénieur du logiciel, une progression continue de la rigueur de conception. De la simple requête fonctionnelle sur Dolibarr et sur le projet de porte d’accès RFID à une architecture en couches testée et documentée sur le projet PMT de l’ISCOD, avec un gain direct en maintenabilité de projet et en phase de test du code produit.

 
Mon autocritique

À l’heure actuelle, je possède un niveau de maîtrise solide sur cette compétence. C’est une priorité absolue dans ma quête pour valider mon profil d’expert, car les solutions SaaS (Software as a Service) dominent le marché. Mon acquisition des concepts de scripting sur ServiceNow a par ailleurs été rapide grâce à ces bases solides en logique serveur et en manipulation de données relationnelles. 

Cependant, je dois reconnaître qu’il y a encore un cap à franchir sur l’optimisation fine des requêtes à grande échelle : En effet, mes projets actuels, menés sur des volumes de données modestes ne m’ont pas encore confronté à de véritables problématiques de performance sur des tables volumineuses, ce qui peut représenter un frein dans mon expérience actuelle.

Suite à mon expérience personnelle, mon conseil est de ne jamais négliger la lecture de la documentation officielle (Product Documentation) avant de se lancer dans du développement spécifique. Aussi, n’hésitez pas à prendre du temps pour pratiquer sur votre instance personnelle (Personal Developer Instance).

 
Mon évolution

Avec un bagage solide en la matière, mon objectif désormais est de consolider les concepts avancés du développement backend (patterns de conception, optimisation de requêtes complexes, gestion de la montée en charge) dans le cadre de mon Mastère à l’ISCOD, ainsi que sur mes environnements de test personnels au sein de mon projet de veille technologique, où je peux expérimenter sans contrainte de production.

Retour en haut