Node.js mbështetet në një grusht modelesh projektimi që i përshtaten sistemit të tij të moduleve, modelit async dhe I/O-së me streaming. Më të zakonshmet që çdo zhvillues backend duhet t'i njohë:
Node.js mbështetet në një grusht modelesh projektimi që i përshtaten sistemit të tij të moduleve, modelit async dhe I/O-së me streaming. Më të zakonshmet që çdo zhvillues backend duhet t'i njohë:
module.exports / export, duke i mbajtur pjesët e brendshme private. Themeli i organizimit të kodit në Node.// db.js — çdo `require("./db")` merr të njëjtin pool (singleton nëpërmjet cache-it të modulit).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, stream-et dhe shumica e moduleve bazë e përdorin.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next), i popullarizuar nga Express/Koa. I shkëlqyer për çështje ndërprerëse (auth, logging, validim).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"));
| Nevoja | Modeli |
|---|---|
| Një burim i përbashkët | Singleton (cache-i i modulit) |
Ndërto objekte, fshih new | Factory |
| Reago ndaj ngjarjeve async | Observer / EventEmitter |
| Logjikë ndërprerëse kërkese | Middleware |
| Përpuno të dhëna të mëdha në siguri | Stream-e / pipeline |
| Varësi të testueshme, të shkëputura | Injektimi i varësive |
Modelet janë një fjalor i përbashkët: të thuash "config-u është një singleton i ruajtur në cache sipas modulit" ose "auth-i është middleware" e komunikon një dizajn me pak fjalë. Vetë bazamenti i Node (EventEmitter, stream-et, sistemi i moduleve) është ndërtuar prej tyre, kështu që njohja e tyre të ndihmon të lexosh framework-e dhe të strukturosh shërbimet e tua. Intervistuesit e përdorin këtë pyetje për të kontrolluar që ti nuk lidh vetëm callback-e në mënyrë të çrregullt, por posht te modeli që përshtatet — dhe njeh kompromiset e tij, si një singleton që e bën gjendjen globale më të vështirë për t'u testuar.
Një bibliotekë pyetjesh intervistash IT me përgjigje të detajuara — nga Junior te Senior.
Dhuro