Node.js lener seg på en håndfull design patterns som passer til modulsystemet, async-modellen og streaming-I/O. De vanligste som enhver backend-utvikler bør kjenne igjen:
Node.js lener seg på en håndfull design patterns som passer til modulsystemet, async-modellen og streaming-I/O. De vanligste som enhver backend-utvikler bør kjenne igjen:
module.exports / export, mens du holder det interne privat. Grunnlaget for kodeorganisering i Node.// db.js — hver `require("./db")` får denne samme poolen (singleton via module cache).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, streams og de fleste core-moduler bruker det.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next), gjort populær av Express/Koa. Utmerket for tverrgående hensyn (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"));
| Behov | Pattern |
|---|---|
| Én delt ressurs | Singleton (module cache) |
Bygg objekter, skjul new | Factory |
| Reager på async events | Observer / EventEmitter |
| Tverrgående request-logikk | Middleware |
| Behandle store data trygt | Streams / pipeline |
| Testbare, frakoblede dependencies | Dependency Injection |
Patterns er et felles vokabular: å si "config-en er en module-cachet singleton" eller "auth er middleware" formidler et design med noen få ord. Nodes egen kjerne (EventEmitter, streams, modulsystemet) er bygget av disse, så å gjenkjenne dem hjelper deg å lese frameworks og strukturere dine egne tjenester. Intervjuere bruker dette spørsmålet for å sjekke at du ikke bare kobler sammen callbacks ad hoc, men griper etter pattern-et som passer — og kjenner avveiningene, som at en singleton gjør global state vanskeligere å teste.
Et bibliotek av IT-intervjuspørsmål med detaljerte svar — fra Junior til Senior.
Doner