Node.js hutegemea design patterns chache zinazolingana na mfumo wake wa module, modeli ya async, na I/O ya streaming. Zile zinazojulikana zaidi ambazo kila developer wa backend anapaswa kuzitambua:
module.exports / export, ukiweka sehemu za ndani kuwa private. Msingi wa upangaji wa code katika Node.// db.js — kila `require("./db")` hupata pool ile ile hii (singleton kupitia module cache).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, streams, na module nyingi za core huitumia.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next), iliyoenezwa na Express/Koa. Nzuri kwa mambo yanayovuka (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"));
| Hitaji | Pattern |
|---|---|
| Rasilimali moja iliyoshirikiwa | Singleton (module cache) |
Jenga objects, ficha new | Factory |
| Itikia events za async | Observer / EventEmitter |
| Mantiki ya request inayovuka | Middleware |
| Chakata data kubwa kwa usalama | Streams / pipeline |
| Dependencies zinazopimika, zilizotenganishwa | Dependency Injection |
Patterns ni msamiati wa pamoja: kusema "config ni singleton iliyo-cache kwa module" au "auth ni middleware" huwasilisha muundo kwa maneno machache. Core yenyewe ya Node (EventEmitter, streams, mfumo wa module) imejengwa kutoka kwa hizi, kwa hivyo kuzitambua kunakusaidia kusoma frameworks na kupanga services zako mwenyewe. Wahojiwa hutumia swali hili kuangalia kama huunganishi tu callbacks kiholela, bali unafikia pattern inayolingana — na unajua maelewano yake, kama singleton kufanya hali ya global kuwa ngumu kupima.
Maktaba ya maswali ya mahojiano ya IT yenye majibu ya kina — kutoka Junior hadi Senior.
Changia