Node.js se opírá o hrstku návrhových vzorů, které sedí k jeho modulovému systému, asynchronnímu modelu a streamovanému I/O. Ty nejběžnější, které by měl znát každý backendový vývojář:
Node.js se opírá o hrstku návrhových vzorů, které sedí k jeho modulovému systému, asynchronnímu modelu a streamovanému I/O. Ty nejběžnější, které by měl znát každý backendový vývojář:
module.exports / export a vnitřnosti necháte privátní. Základ organizace kódu v Node.// db.js — každý `require("./db")` dostane tentýž pool (singleton přes keš modulů).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, streamy i většina základních modulů.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next), zpopularizovaná Express/Koa. Skvělá pro průřezové záležitosti (auth, logování, validace).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"));
| Potřeba | Vzor |
|---|---|
| Jeden sdílený zdroj | Singleton (keš modulů) |
Tvořit objekty, skrýt new | Factory |
| Reagovat na asynchronní události | Observer / EventEmitter |
| Průřezová logika požadavku | Middleware |
| Bezpečně zpracovat velká data | Streams / pipeline |
| Testovatelné, rozvázané závislosti | Dependency Injection |
Vzory jsou sdílený slovník: říci „konfigurace je singleton kešovaný na úrovni modulu" nebo „auth je middleware" sdělí návrh několika slovy. Samotné jádro Node (EventEmitter, streamy, modulový systém) je z těchto vzorů postavené, takže jejich rozpoznání vám pomůže číst frameworky a strukturovat vlastní služby. Tazatelé touto otázkou ověřují, že jen ad hoc nespojujete callbacky, ale saháte po vzoru, který sedí — a znáte jeho kompromisy, třeba že singleton ztěžuje testování globálního stavu.
Knihovna IT otázek k pohovoru s podrobnými odpověďmi — od Junior po Senior.
Přispět