Node.js چند design patterns پر ٹیک لگاتا ہے جو اس کے module system، async model اور streaming I/O کے ساتھ فٹ بیٹھتے ہیں۔ سب سے عام وہ جنہیں ہر backend developer کو پہچاننا چاہیے:
Node.js چند design patterns پر ٹیک لگاتا ہے جو اس کے module system، async model اور streaming I/O کے ساتھ فٹ بیٹھتے ہیں۔ سب سے عام وہ جنہیں ہر backend developer کو پہچاننا چاہیے:
module.exports / export کے ذریعے ایک public API ظاہر کرتے ہیں، اندرونی حصوں کو private رکھتے ہوئے۔ Node میں code کی تنظیم کی بنیاد۔// db.js — ہر `require("./db")` یہی pool حاصل کرتا ہے (module cache کے ذریعے singleton)۔
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter، streams اور زیادہ تر core modules اسے استعمال کرتے ہیں۔const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next) وصول کرتا ہے، Express/Koa کے ذریعے مقبول ہوئی۔ کراس کٹنگ concerns (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"));
| ضرورت | Pattern |
|---|---|
| ایک مشترکہ resource | Singleton (module cache) |
Objects بنائیں، new چھپائیں | Factory |
| Async events پر ردِعمل | Observer / EventEmitter |
| کراس کٹنگ request logic | Middleware |
| بڑے data کو محفوظ طریقے سے process کریں | Streams / pipeline |
| Testable، decoupled dependencies | Dependency Injection |
Patterns ایک مشترکہ لغت ہیں: یہ کہنا کہ "config ایک module-cache شدہ singleton ہے" یا "auth ایک middleware ہے" ایک ڈیزائن کو چند الفاظ میں پہنچا دیتا ہے۔ Node کا اپنا core (EventEmitter، streams، module system) انہی سے بنا ہے، اس لیے انہیں پہچاننا آپ کو frameworks پڑھنے اور اپنی services کی ساخت بنانے میں مدد دیتا ہے۔ انٹرویو لینے والے یہ سوال یہ جانچنے کے لیے استعمال کرتے ہیں کہ آپ صرف callbacks کو بے ترتیب نہیں جوڑتے، بلکہ اس pattern تک پہنچتے ہیں جو فٹ بیٹھتا ہے — اور اس کے trade-offs جانتے ہیں، جیسے singleton کا global state کو ٹیسٹ کرنا مشکل بنا دینا۔
تفصیلی جوابات کے ساتھ IT انٹرویو سوالات کی ایک لائبریری — جونیئر سے سینئر تک۔
عطیہ دیں