Deep Dive Alias & Index.js
আমরা মডুলার সিস্টেমকে ডিপ ডাইভ করে বোঝার চেষ্টা করবো।
📁 মডিউল ফাইল তৈরি
আগের ভিডিওতে আমরা file2.js
নামে একটি ফাইল তৈরি করেছিলাম, যেখানে:
- একটি
add
ফাংশন ছিল - দুটি ভেরিয়েবল ছিল:
a
এবংb
- আরেকটি ভেরিয়েবল ছিল
- এবং ফাইলটি মডুলার করা হয়েছিল
এরপর আমরা আরেকটি ফাইল তৈরি করলাম file3.js
, যেখানে:
- আবার একটি
add
ফাংশন থাকবে b
ভেরিয়েবলটিও রাখা হবে
এভাবে আমরা file3.js
-কেও মডিউল হিসেবে গঠন করলাম।
🧠 Alias ব্যবহার: নাম কনফ্লিক্ট সমাধান
file1.js
এ আমরা const
এবং destructuring
করে কাজ করেছিলাম।
ধরুন, আমরা a
ভেরিয়েবলটিকে নতুন নামে নিতে চাই, তখন alias ব্যবহার করা হয়।
উদাহরণ:
const { add: a3 } = require('./file3');
এখানে add
ফাংশনকে a3
নামে নিচ্ছি কারণ এটা file3
থেকে আসছে।
🔹 এখন যদি আমরা 2 + 3
করি, ফলাফল হবে 5
।
🧹 কোড পরিষ্কার ও alias প্রয়োজনীয়তা
- আমরা dot notation বা destructuring উভয়ভাবেই কোড পরিষ্কার রাখতে পারি।
- যখন ফাংশন বা ভেরিয়েবলগুলোর নাম একই হয়ে যায়, তখন alias ব্যবহার করতে হয় যাতে কনফ্লিক্ট না হয়।
- বিশেষ করে third-party packages বা external modules ব্যবহারের সময় alias দরকার হয়।
📦 index.js ফাইলের ভূমিকা
আমরা index.js
নামে একটি ফাইল নিচ্ছি।
কিন্তু কেন?
আমাদের মূল main.js
ফাইলে যদি একাধিক ফাংশন রিকোয়্যার করতে হয়, তাহলে প্রতিটি utility ফাইল থেকে আলাদাভাবে import করা ঝামেলার — যেমন:
const add = require('./utils/add');
const subtract = require('./utils/subtract');
এর পরিবর্তে আমরা index.js
ফাইলে সব ফাংশন একত্রে export করবো:
// utils/index.js
const add = require('./add');
const subtract = require('./subtract');
module.exports = { add, subtract };
এখন main.js
ফাইল থেকে সহজে রিকোয়্যার করা যাবে:
const { add, subtract } = require('./utils');
⚠️ index.js না থাকলে কী হয়?
যদি কোনো ফোল্ডার রিকোয়্যার করা হয় কিন্তু index.js
না থাকে:
const { add } = require('./utils');
তাহলে Node.js error দিবে কারণ সে জানে না কোন ফাইলটা এক্সপোর্ট করবে।
উদাহরণ:
index.js
→ ❌index1.js
নাম দিলে- রান করার সময় → ❌ Error
Node.js ফোল্ডার থেকে রিকোয়্যার করার সময় default ভাবে index.js
খুঁজে।
✅ Smart Modular Pattern
আমরা এখন একটা স্মার্ট কাজ করলাম:
index.js
ফাইলে সব utility function একত্রে import এবং export করলাম।- এখন এক লাইনে সব ফাংশন access করা সম্ভব হলো।
const { add, subtract, multiply } = require('./utils')
✨ সুবিধাসমূহ:
- ✅ কোড পরিষ্কার হলো
- ✅ import গুলো সুন্দরভাবে organize হলো
- ✅ এক লাইনে সব ফাংশন access করা গেল
- ✅ কোড এখন বেশি maintainable