Node.js s'appuie sur une poignée de design patterns qui conviennent à son système de modules, son modèle async et son I/O en streaming. Les plus courants que tout développeur backend devrait reconnaître :
Node.js s'appuie sur une poignée de design patterns qui conviennent à son système de modules, son modèle async et son I/O en streaming. Les plus courants que tout développeur backend devrait reconnaître :
module.exports / export, en gardant les internes privés. Le fondement de l'organisation du code dans Node.// db.js — chaque require("./db") obtient ce même pool (singleton via le cache de modules).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, les streams et la plupart des modules core l'utilisent.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next), popularisé par Express/Koa. Idéal pour les préoccupations transversales (auth, logging, validation).app.use((req, res, next) => { req.startedAt = Date.now(); next(); });
const { pipeline } = require("node:stream/promises");
await pipeline(fs.createReadStream("in"), gzip(), fs.createWriteStream("out.gz"));
| Besoin | Pattern |
|---|---|
| Une ressource partagée | Singleton (cache de modules) |
Construire des objets, cacher new | Factory |
| Réagir à des events async | Observer / EventEmitter |
| Logique de requête transversale | Middleware |
| Traiter de grosses données en sécurité | Streams / pipeline |
| Dépendances testables et découplées | Dependency Injection |
Les patterns sont un vocabulaire partagé : dire « la config est un singleton mis en cache par module » ou « l'auth est un middleware » communique un design en quelques mots. Le core de Node lui-même (EventEmitter, streams, système de modules) est construit à partir de ceux-ci, donc les reconnaître aide à lire les frameworks et à structurer vos propres services. Les recruteurs utilisent cette question pour vérifier que vous ne câblez pas juste des callbacks au hasard, mais que vous choisissez le pattern qui convient — et que vous connaissez ses compromis, comme un singleton qui rend l'état global plus difficile à tester.
Une bibliothèque de questions d'entretien IT avec des réponses détaillées — du Junior au Senior.
Faire un don