Node.js nojaa muutamaan suunnittelumalliin, jotka sopivat sen moduulijärjestelmään, asynkroniseen malliin ja striimaavaan I/O:hon. Yleisimmät, jotka jokaisen backend-kehittäjän tulisi tunnistaa:
Node.js nojaa muutamaan suunnittelumalliin, jotka sopivat sen moduulijärjestelmään, asynkroniseen malliin ja striimaavaan I/O:hon. Yleisimmät, jotka jokaisen backend-kehittäjän tulisi tunnistaa:
module.exports / export -kautta ja pidät sisäiset osat yksityisinä. Koodin organisoinnin perusta Nodessa.// db.js — jokainen require("./db") saa saman poolin (singleton moduuli-välimuistin kautta).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, streamit ja useimmat core-moduulit käyttävät sitä.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next), Express/Koa:n suosituksi tekemä. Loistava läpileikkaaviin huoliin (auth, logging, validointi).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"));
| Tarve | Malli |
|---|---|
| Yksi jaettu resurssi | Singleton (moduuli-välimuisti) |
Rakenna olioita, piilota new | Factory |
| Reagoi asynkronisiin eventteihin | Observer / EventEmitter |
| Läpileikkaava request-logiikka | Middleware |
| Käsittele iso data turvallisesti | Streams / pipeline |
| Testattavat, irralliset riippuvuudet | Dependency Injection |
Mallit ovat jaettua sanastoa: sanominen "config on moduuli-välimuistitettu singleton" tai "auth on middleware" välittää suunnittelun muutamalla sanalla. Noden oma core (EventEmitter, streamit, moduulijärjestelmä) on rakennettu näistä, joten niiden tunnistaminen auttaa lukemaan frameworkeja ja jäsentämään omat palvelusi. Haastattelijat käyttävät tätä kysymystä tarkistaakseen, ettet vain kytke callbackeja sattumanvaraisesti vaan tartut malliin, joka sopii — ja tunnet sen kompromissit, kuten sen että singleton tekee globaalista tilasta vaikeampaa testata.
Kirjasto IT-haastattelukysymyksiä yksityiskohtaisine vastauksineen — Juniorista Senioriin.
Lahjoita