Skip to content

📑 Dossier De Projet - 3/4 - Concevoir et développer une application multicouche - Gestion et organisation

Published:Suggestion

Stack technique

Le projet repose sur un ensemble de technologies modernes et éprouvées, choisies pour leur fiabilité et leur maintainabilité. Tous ces choix ont fait l’objet d’une analyse et la délibération s’est faite en respectant les lignes directrices choisies en début de projet.

Frameworks et composants principaux

Infrastructure et déploiement

Tests et qualité

Cette stack complète nous assure :

La gestion du projet

Pour ce projet, j’ai mis en place une organisation structurée qui m’a permis de livrer une solution opérationnelle dans les délais. J’ai distingué trois grandes phases : préparation, développement et finalisation. Cette structuration m’a permis de bien cadrer le projet et ses livrables.

Dans la phase de développement, j’ai fait cohabiter deux approches méthodologiques :

Cette hybridation a constitué un excellent compromis : la gestion en cascade, avec ses délais déterminés, m’a permis d’assurer le respect des échéances et la couverture des exigences essentielles. L’approche agile adoptée ensuite s’est avérée plus adaptée pour implémenter les corrections et améliorations identifiées durant la première phase.

Pour suivre ces étapes, j’ai opté pour des outils simples et efficaces :

Ces choix, guidés par un besoin de simplicité (projet individuel), se sont révélés très pertinents pour maintenir le cap tout au long du développement.

Conception de l’application

La phase de conception s’est naturellement appuyée sur les documents produits précédemment. Le cahier des charges a constitué une base solide pour définir l’architecture du système. Les points importants qui ont guidé la conception :

Cette architecture est représentée dans ce diagramme :

Diagramme de composants

Le choix d’une API REST comme point central du système apporte plusieurs avantages :

Développement des composants métier

Pour illustrer le développement des composants métier, prenons l’exemple d’un service gérant l’authentification.

public function authenticateUser(string $email, string $password): ApiResponse
{
    try {
        $response = $this->httpClient->request(
            'POST',
            $this->apiUrl.'/token',
            [
                'json' => [
                    'email' => $email,
                    'password' => $password,
                ],
            ]);

        if (200 !== $response->getStatusCode()) {
            return new ApiResponse(ok: false);
        }

        /** @var object{accessToken: string, role: string, id: int} $json */
        $json = json_decode($response->getContent(), flags: JSON_THROW_ON_ERROR);
        // ...

Ce composant illustre bien l’approche adoptée :

La qualité du code est assurée par plusieurs mécanismes :

On peut noter que la réponse négative l’api ne s’accompagne exceptionnellement d’aucun message. C’est une mesure de sécurité pour ne pas indiquer à quel niveau l’authentification a échoué.

Cette première partie illustre l’importance d’une organisation rigoureuse et d’une conception réfléchie pour la réussite du projet.

Le prochain article évoque les aspects de tests, de déploiement et de mise en production.


📑 Dossier De Projet - 2/4 - Concevoir et développer la persistance des données
📑 Dossier De Projet - 4/4 - Concevoir et développer une application multicouche - Tests et déploiement