Node.js bersandar pada segelintir design pattern yang cocok dengan sistem modul, model async, dan streaming I/O-nya. Yang paling umum dan harus dikenali setiap developer backend:
Node.js bersandar pada segelintir design pattern yang cocok dengan sistem modul, model async, dan streaming I/O-nya. Yang paling umum dan harus dikenali setiap developer backend:
module.exports / export, menjaga internal tetap privat. Fondasi organisasi kode di Node.// db.js — setiap `require("./db")` mendapat pool yang sama ini (singleton via module cache).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, streams, dan sebagian besar modul core menggunakannya.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next), dipopulerkan oleh Express/Koa. Bagus untuk concern lintas-sektoral (auth, logging, validasi).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"));
| Kebutuhan | Pattern |
|---|---|
| Satu resource bersama | Singleton (module cache) |
Membuat objek, sembunyikan new | Factory |
| Bereaksi terhadap event async | Observer / EventEmitter |
| Logika request lintas-sektoral | Middleware |
| Proses data besar dengan aman | Streams / pipeline |
| Dependensi yang testable, decoupled | Dependency Injection |
Pattern adalah kosakata bersama: mengatakan "config adalah singleton yang di-cache modul" atau "auth adalah middleware" mengomunikasikan sebuah desain dalam beberapa kata. Core Node sendiri (EventEmitter, streams, sistem modul) dibangun dari ini, jadi mengenalinya membantu Anda membaca framework dan menyusun service Anda sendiri. Pewawancara memakai pertanyaan ini untuk memeriksa bahwa Anda tidak sekadar merangkai callback secara ad hoc, tetapi meraih pattern yang cocok — dan tahu trade-off-nya, seperti singleton yang membuat state global lebih sulit di-test.
Perpustakaan pertanyaan wawancara IT dengan jawaban mendetail — dari Junior hingga Senior.
Donasi