Node.js se oslanja na nekoliko design patterna koji odgovaraju njegovom sustavu modula, async modelu i streaming I/O-u. Najčešći koje bi svaki backend razvijatelj trebao prepoznati:
Node.js se oslanja na nekoliko design patterna koji odgovaraju njegovom sustavu modula, async modelu i streaming I/O-u. Najčešći koje bi svaki backend razvijatelj trebao prepoznati:
module.exports / export, držeći interne dijelove privatnima. Temelj organizacije koda u Node-u.// db.js — svaki require("./db") dobiva isti ovaj pool (singleton preko keša modula).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, streamovi i većina core modula ga koriste.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next), popularizirali Express/Koa. Odlično za poprečne brige (auth, logging, validacija).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"));
| Potreba | Pattern |
|---|---|
| Jedan dijeljeni resurs | Singleton (keš modula) |
Gradi objekte, sakrij new | Factory |
| Reagiraj na async evente | Observer / EventEmitter |
| Poprečna logika zahtjeva | Middleware |
| Sigurno obradi velike podatke | Streams / pipeline |
| Testabilne, razdvojene ovisnosti | Dependency Injection |
Patterni su zajednički rječnik: reći "config je singleton keširan po modulu" ili "auth je middleware" prenosi dizajn u nekoliko riječi. Sam Node-ov core (EventEmitter, streamovi, sustav modula) izgrađen je od njih, pa ti njihovo prepoznavanje pomaže čitati frameworke i strukturirati vlastite servise. Ispitivači koriste ovo pitanje da provjere da ne spajaš callbackove naslijepo, nego posežeš za patternom koji odgovara — i znaš njegove kompromise, poput toga da singleton čini globalno stanje težim za testiranje.
Knjižnica IT pitanja za razgovore za posao s detaljnim odgovorima — od Juniora do Seniora.
Doniraj