O Node.js se apoia em um punhado de padrões de projeto que se encaixam em seu sistema de módulos, modelo assíncrono e I/O de streaming. Os mais comuns que todo desenvolvedor backend deve reconhecer:
O Node.js se apoia em um punhado de padrões de projeto que se encaixam em seu sistema de módulos, modelo assíncrono e I/O de streaming. Os mais comuns que todo desenvolvedor backend deve reconhecer:
module.exports / export, mantendo o interno privado. A base da organização de código no Node.// db.js — todo `require("./db")` recebe esse mesmo pool (singleton via cache de módulo).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, streams e a maioria dos módulos centrais o usam.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next), popularizado por Express/Koa. Ótimo para preocupações transversais (auth, logging, validação).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"));
| Necessidade | Padrão |
|---|---|
| Um recurso compartilhado | Singleton (cache de módulo) |
Construir objetos, ocultar new | Factory |
| Reagir a eventos async | Observer / EventEmitter |
| Lógica de requisição transversal | Middleware |
| Processar grandes dados com segurança | Streams / pipeline |
| Dependências testáveis e desacopladas | Injeção de dependência |
Padrões são um vocabulário compartilhado: dizer "a config é um singleton cacheado por módulo" ou "auth é middleware" comunica um design em poucas palavras. O próprio núcleo do Node (EventEmitter, streams, o sistema de módulos) é construído a partir deles, então reconhecê-los ajuda a ler frameworks e estruturar seus próprios serviços. Os entrevistadores usam esta pergunta para verificar se você não apenas liga callbacks ad hoc, mas busca o padrão que se encaixa — e conhece suas contrapartidas, como um singleton tornando o estado global mais difícil de testar.
Uma biblioteca de perguntas de entrevista de TI com respostas detalhadas — de Júnior a Sênior.
Doar