Design Patterns

Ce chapitre présente sur le plan développement logiciel les différents Design Patterns que nous avons utilisés. Expliquer ces différents patrons n’étant pas le bur de cette documentation nous nous contenterons de lister de façon non exhaustive nos cas d’utilisation.

Singleton

Au sein de notre application Node, à chaque fois que nous utilisons module.export puis require pour exporter/importer des fichiers.

Observer

Lorsque SocketIO ou PeerJS crée un système d’émissions/abonnements d’évenements à travers des EventEmitter et les méthodes call, on et emit.

Dependency Injection

Lorsqu’à travers Mongoose nous créons une instance de notre base de donnée mongo via sa référence.

Middleware

Lorsque nous utilisons la fonction app.use() d’Express afin d’intercepter les requêtes et réponses.

Stream & buffer

Lorsque nous manipulons des flots de bits pour les partages de données audio/video notamment grâce à WebRTC.

Strategy

Pour l’implémentation de notre analyseur de langage lié à nos bots. Au runtime, le contenu textuel va déclencher tel ou tel algorithme en fonction de la Regexp validée.

Remarque

En plus des différents patrons de conception listés ci-dessus nous nous sommes efforcés de toujours respecter les bonnes pratiques de programmation afin d’avoir un code performant et surtout maintenable.

Chapitre suivant: Serveur HTTP