A Node.js néhány olyan design patternre támaszkodik, amely illik a modulrendszeréhez, aszinkron modelljéhez és streaming I/O-jához. A leggyakoribbak, amelyeket minden backend fejlesztőnek fel kell ismernie:
A Node.js néhány olyan design patternre támaszkodik, amely illik a modulrendszeréhez, aszinkron modelljéhez és streaming I/O-jához. A leggyakoribbak, amelyeket minden backend fejlesztőnek fel kell ismernie:
module.exports / export révén teszed elérhetővé, a belső részeket priváttá téve. A kódszervezés alapja a Node-ban.// db.js — minden `require("./db")` ugyanezt a poolt kapja (singleton a module cache révén).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, a streamek és a legtöbb core modul ezt használja.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next)-et kap, az Express/Koa tette népszerűvé. Kiváló a keresztmetszeti feladatokhoz (auth, logging, validáció).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"));
| Igény | Pattern |
|---|---|
| Egy megosztott erőforrás | Singleton (module cache) |
Objektumok építése, a new elrejtése | Factory |
| Reagálás aszinkron eventekre | Observer / EventEmitter |
| Keresztmetszeti request-logika | Middleware |
| Nagy adat biztonságos feldolgozása | Streams / pipeline |
| Tesztelhető, szétcsatolt függőségek | Dependency Injection |
A patternek közös szókincs: azt mondani, hogy "a config egy module-cache-elt singleton" vagy "az auth middleware", néhány szóban közöl egy tervet. Maga a Node core-ja (EventEmitter, streamek, a modulrendszer) ezekből épül, így felismerésük segít a keretrendszerek olvasásában és a saját szolgáltatásaid strukturálásában. Az interjúztatók ezzel a kérdéssel ellenőrzik, hogy nem csak ad hoc kötöd össze a callbackeket, hanem az illeszkedő patternhez nyúlsz — és ismered a kompromisszumait, például hogy egy singleton nehezebben tesztelhetővé teszi a globális állapotot.
IT interjúkérdések gyűjteménye részletes válaszokkal — Juniortól Seniorig.
Adományozás