Node.js se apoya en un puñado de patrones de diseño que encajan con su sistema de módulos, su modelo asíncrono y su I/O por streaming. Los más comunes que todo desarrollador backend debería reconocer:
Node.js se apoya en un puñado de patrones de diseño que encajan con su sistema de módulos, su modelo asíncrono y su I/O por streaming. Los más comunes que todo desarrollador backend debería reconocer:
module.exports / export, manteniendo lo interno privado. La base de la organización del código en Node.// db.js — cada `require("./db")` obtiene este mismo pool (singleton vía caché de módulos).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, los streams y la mayoría de los módulos core lo usan.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next), popularizada por Express/Koa. Ideal para preocupaciones transversales (auth, logging, validación).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"));
| Necesidad | Patrón |
|---|---|
| Un recurso compartido | Singleton (caché de módulos) |
Construir objetos, ocultar new | Factory |
| Reaccionar a eventos asíncronos | Observer / EventEmitter |
| Lógica transversal de request | Middleware |
| Procesar datos grandes con seguridad | Streams / pipeline |
| Dependencias testeables y desacopladas | Dependency Injection |
Los patrones son un vocabulario compartido: decir "la config es un singleton cacheado por módulo" o "auth es middleware" comunica un diseño en pocas palabras. El propio core de Node (EventEmitter, streams, el sistema de módulos) está construido con ellos, así que reconocerlos te ayuda a leer frameworks y estructurar tus propios servicios. Los entrevistadores usan esta pregunta para comprobar que no solo cableas callbacks ad hoc, sino que recurres al patrón que encaja — y conoces sus concesiones, como que un singleton hace más difícil testear el estado global.
Una biblioteca de preguntas de entrevista de IT con respuestas detalladas — de Junior a Senior.
Donar