Node.js opiera się na kilku wzorcach projektowych, które pasują do jego systemu modułów, modelu asynchronicznego i strumieniowego I/O. Najpopularniejsze, które każdy programista backendu powinien rozpoznawać:
Node.js opiera się na kilku wzorcach projektowych, które pasują do jego systemu modułów, modelu asynchronicznego i strumieniowego I/O. Najpopularniejsze, które każdy programista backendu powinien rozpoznawać:
module.exports / export, utrzymując wnętrze prywatnym. Podstawa organizacji kodu w Node.// db.js — każde `require("./db")` otrzymuje tę samą pulę (singleton przez cache modułu).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, strumienie i większość modułów rdzeniowych go używa.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next), spopularyzowany przez Express/Koa. Świetny do zagadnień przekrojowych (auth, logowanie, walidacja).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"));
| Potrzeba | Wzorzec |
|---|---|
| Jeden współdzielony zasób | Singleton (cache modułu) |
Buduj obiekty, ukryj new | Fabryka |
| Reaguj na zdarzenia async | Obserwator / EventEmitter |
| Przekrojowa logika żądań | Middleware |
| Bezpiecznie przetwarzaj duże dane | Strumienie / pipeline |
| Testowalne, rozłączone zależności | Wstrzykiwanie zależności |
Wzorce to wspólny język: powiedzenie „konfiguracja to buforowany w module singleton" lub „auth to middleware" przekazuje projekt w kilku słowach. Sam rdzeń Node (EventEmitter, strumienie, system modułów) jest z nich zbudowany, więc ich rozpoznawanie pomaga czytać frameworki i strukturyzować własne usługi. Rekruterzy używają tego pytania, aby sprawdzić, czy nie zlepiasz callbacków ad hoc, lecz sięgasz po pasujący wzorzec — i znasz jego kompromisy, jak singleton utrudniający testowanie stanu globalnego.
Biblioteka pytań rekrutacyjnych IT ze szczegółowymi odpowiedziami — od Juniora do Seniora.
Wesprzyj