Skip to content

2025

📅 SAISON B Semaine 5 Épisode 4 - Maîtrise de Sequelize

📚 Notions du jour

Aujourd’hui, nous avons approfondi notre utilisation de Sequelize, l’ORM (Object-Relational Mapping) pour Node.js, en explorant des concepts clés pour construire une application robuste. Après avoir configuré Sequelize et testé la connexion à la base de données, nous passons maintenant à la définition des modèles, la gestion des associations, et l’implémentation complète du CRUD (Create, Read, Update, Delete).

Dans cet article, nous allons couvrir :

  • La dĂ©finition des modèles avec sequelize.define() et les DataTypes.
  • La synchronisation du schĂ©ma avec sequelize.sync().
  • Les associations entre modèles (belongsTo, hasMany, belongsToMany).
  • Le chargement des donnĂ©es associĂ©es avec l’option include.
  • Le peuplement de la base de donnĂ©es (seeding).
  • Le remplacement de notre couche d’accès manuelle par les mĂ©thodes de Sequelize.

📅 SAISON B Semaine 5 Épisode 3 - Introduction aux ORM

📚 Notions du jour

Aujourd’hui, nous avons exploré un concept clé pour les applications modernes : les ORM (Object-Relational Mapping). Jusqu’à présent, nous utilisions un datamapper "manuel" pour interagir avec notre base de données. Cependant, cette approche présente des limites :

  • Code rĂ©pĂ©titif : Écrire manuellement chaque requĂŞte SQL devient fastidieux.
  • Risque d’erreurs : Les requĂŞtes SQL mal Ă©crites peuvent causer des bugs ou des failles de sĂ©curitĂ©.
  • Couplage fort : Le code est fortement liĂ© Ă  la structure de la base de donnĂ©es.
  • Maintenance difficile : Les changements dans la base de donnĂ©es nĂ©cessitent des modifications dans tout le code.

Voici les notions aborbées durant cette journée :

  • Les limites d’un Data Mapper manuel dans un projet complexe.
  • Le concept d’ORM (Object-Relational Mapping) : un traducteur Objet <=> SQL.
  • PrĂ©sentation de Sequelize comme solution ORM pour Node.js.
  • L’installation des paquets sequelize et pg.
  • La crĂ©ation et la configuration d’une instance de Sequelize.
  • Le test de la connexion Ă  la base de donnĂ©es avec sequelize.authenticate().

📅 SAISON B Semaine 5 Épisode 2 -L’Héritage et l’Architecture Objet – Factoriser le Code avec extends et super

📚 Notions du jour

Aujourd'hui nous continuons à voir les fondamentaux de la programmation orientée objet. Ce deuxième épisode est dédié à l'Héritage et Architecture Objet.

voici les notions abordées aujourd’hui :

  • L’hĂ©ritage pour factoriser le code entre les classes.
  • Le mot-clĂ© extends pour dĂ©finir une classe enfant.
  • L’opĂ©rateur super() pour appeler le constructeur parent.
  • Les membres static (mĂ©thodes et propriĂ©tĂ©s) qui appartiennent Ă  la classe elle-mĂŞme.
  • L’application de l’hĂ©ritage Ă  l’architecture des contrĂ´leurs.

📅 SAISON B Semaine 5 Épisode 1 - Découverte de la Programmation Orientée Objet (POO) en JavaScript – Classes, Encapsulation et Contrôle d’Accès

📚 Notions du jour

Aujourd'hui nous avons aborbé un paradigme important en programmation : la Programmation Orientée Objet (ou POO pour les intimes). C'est un concept que je connaissais déjà avec le langage de programmation Python que je pratiquais avant de commencer ma formation. Cette fois-ci j'ai pu voir comment cela était organisé en JavaScript en commençant par les fondamentaux.

Voici les notions aborbées durant cette journée :

  • Les limites du code procĂ©dural et l’intĂ©rĂŞt de la POO.
  • La syntaxe class pour dĂ©finir un « moule » Ă  objets.
  • Le constructor pour initialiser une nouvelle instance.
  • L’encapsulation pour protĂ©ger les donnĂ©es.
  • Les attributs privĂ©s avec le prĂ©fixe #.
  • Les getters et setters pour contrĂ´ler l’accès aux donnĂ©es.

📅 SAISON B Semaine 4 Épisode 5 - Projet en autonomie Jour 3 - Base de Données, Gestion des Erreurs et Style

📚 Introduction

Troisième jour de travail sur le projet oCoffee ! Aujourd’hui, j’ai franchi une étape majeure en créant et connectant la base de données PostgreSQL, en dynamisant entièrement les pages avec les données de la base, et en améliorant l’expérience utilisateur avec une page 404 personnalisée et un design responsive. Voici le détail de cette journée bien remplie.

Note

Le dépôt Github du projet est disponible ici.

📅 SAISON B Semaine 4 Épisode 4 - Projet en autonomie Jour 2 - Structuration MVC et Dynamisation des Pages

📚 Introduction

Deuxième jour de travail sur le projet oCoffee ! Aujourd’hui, j’ai avancé sur la structuration de l’architecture MVC et la dynamisation des pages. Mon objectif était de rendre les pages du site fonctionnelles de manière statique, puis de commencer à les dynamiser avec des données JSON. Voici le bilan de la journée.

Note

Le dépôt Github du projet est disponible ici.

📅 SAISON B Semaine 4 Épisode 3 - Projet en autonomie - oCoffee

📚 Introduction

Aujourd’hui je démarre la réalisation complète d'un projet en autonomie. Le but étant de mettre en pratique tout ce que j'ai vu jusqu'à présent dans ma formation et d'apprendre à me débrouiller par moi-même. Nous avons 3 jours pour la réalisation de ce projet.

Je dois créer le site web oCoffee, un site vitrine fictif pour une boutique de café haut de gamme.

Aujourd’hui, je me suis concentré sur l’organisation du projet, la modélisation des données et l’initialisation de l’application Express. Plongeons dans les détails !

Note

Le dépôt Github du projet est disponible ici.

📅 SAISON B Semaine 2 Épisode 3 - Les Middlewares avec Express

📚 Notions du jour

Aujourd’hui, j’ai découvert un concept central dans Express : les middlewares. Un middleware, c’est comme un ouvrier sur une chaîne de montage : il reçoit une requête, fait un travail spécifique (comme valider des données, logger une information, ou modifier la requête/réponse), puis passe le relais au middleware suivant. Express est d’ailleurs conçu comme un moteur de middlewares : tout y est middleware, des routes aux gestionnaires d’erreurs ! C'est ce qu'on appel un design pattern.
Nous utilisions déjà sans le savoir des middlewares lors de notre apprentissage d'Express.

Pourquoi c’est puissant ?

  • ModularitĂ© : Chaque middleware a une responsabilitĂ© unique.
  • RĂ©utilisabilitĂ© : Un middleware peut ĂŞtre utilisĂ© sur plusieurs routes.
  • FlexibilitĂ© : Vous pouvez ajouter, retirer ou rĂ©organiser des middlewares sans tout casser.