Node.js, module system'ine, async modeline ve streaming I/O'suna uyan bir avuç tasarım desenine yaslanır. Her backend geliştiricisinin tanıması gereken en yaygın olanları:
module.exports / export aracılığıyla public bir API açığa çıkarırsınız. Node'da kod organizasyonunun temeli.// db.js — her `require("./db")` bu aynı pool'u alır (module cache üzerinden singleton).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, streams ve çoğu core module bunu kullanır.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next) alan bir functions pipeline'ı, Express/Koa tarafından popülerleştirildi. Kesişen kaygılar (auth, logging, validation) için harika.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"));
| İhtiyaç | Desen |
|---|---|
| Tek bir paylaşımlı kaynak | Singleton (module cache) |
Obje kur, new'i gizle | Factory |
| Async event'lere tepki ver | Observer / EventEmitter |
| Kesişen request mantığı | Middleware |
| Büyük veriyi güvenle işle | Streams / pipeline |
| Test edilebilir, decoupled bağımlılıklar | Dependency Injection |
Desenler ortak bir kelime dağarcığıdır: "config, module-cache'li bir singleton" ya da "auth bir middleware" demek, bir tasarımı birkaç kelimeyle iletir. Node'un kendi core'u (EventEmitter, streams, module system) bunlardan inşa edilmiştir, bu yüzden onları tanımak framework'leri okumana ve kendi service'lerini yapılandırmana yardımcı olur. Görüşmeciler bu soruyu, callback'leri gelişigüzel bağlamadığını, aksine uyan deseni seçtiğini — ve bir singleton'ın global state'i test etmeyi zorlaştırması gibi ödünleşimlerini bildiğini — kontrol etmek için kullanır.
Junior'dan Senior'a detaylı cevaplarla bir BT mülakat soruları kütüphanesi.
Bağış Yap