Underscore.js এর মৌলিক সিনট্যাক্স এবং স্টাইল গাইড

Underscore.js এর বেসিক কনসেপ্ট - আন্ডারস্কোর.জেএস (underscorejs) - Web Development

283

Underscore.js কি?

Underscore.js একটি জনপ্রিয় JavaScript লাইব্রেরি যা অ্যারে, অবজেক্ট, ফাংশন এবং অন্যান্য ডেটা স্ট্রাকচারকে আরও সহজ ও কার্যকরভাবে পরিচালনা করার জন্য সাহায্য করে। এটি অত্যন্ত শক্তিশালী ফাংশনাল প্রোগ্রামিং ধারণা যেমন হাইয়ার-অর্ডার ফাংশন, কলব্যাক, এবং লজিকাল ফাংশনসমূহ প্রদান করে। Underscore.js আপনাকে ডেটার উপর অপারেশন করতে, ফিল্টারিং, ম্যাপিং, রিডিউসিং এবং অন্যান্য কমন টাস্ক খুব সহজভাবে করতে সহায়তা করে।


Underscore.js এর মৌলিক সিনট্যাক্স

Underscore.js লাইব্রেরি ব্যবহারের জন্য প্রথমে এটি ইনক্লুড করতে হয়। আপনি এটি CDN থেকে বা NPM প্যাকেজ হিসেবে ব্যবহার করতে পারেন।

১. CDN এর মাধ্যমে ইনক্লুড করা:

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.13.1/underscore-min.js"></script>

২. NPM এর মাধ্যমে ইনস্টল:

npm install underscore

৩. Underscore.js এর মৌলিক ফাংশন

Underscore.js বেশ কিছু কমন ফাংশন প্রদান করে যেগুলি অ্যারে এবং অবজেক্টের সাথে কাজ করতে সহায়তা করে। এখানে কিছু মূল ফাংশনের উদাহরণ দেওয়া হলো:

1. _.each() - লুপিং (Iteration)

_.each() অ্যারে বা অবজেক্টের প্রতিটি আইটেমে ফাংশন চালানোর জন্য ব্যবহৃত হয়।

_.each([1, 2, 3], function(num) {
    console.log(num);
});
// Output: 1, 2, 3

2. _.map() - ম্যাপিং (Mapping)

_.map() ফাংশন অ্যারের প্রতিটি আইটেমে একটি ফাংশন প্রয়োগ করে এবং একটি নতুন অ্যারে রিটার্ন করে।

var doubled = _.map([1, 2, 3], function(num) {
    return num * 2;
});
console.log(doubled);
// Output: [2, 4, 6]

3. _.filter() - ফিল্টারিং (Filtering)

_.filter() ফাংশন একটি কন্ডিশন প্রদান করে, যা অ্যারের আইটেমগুলিকে ফিল্টার করে, শুধুমাত্র যে আইটেমগুলো কন্ডিশন মেটায়, তা রিটার্ন করে।

var evenNumbers = _.filter([1, 2, 3, 4], function(num) {
    return num % 2 === 0;
});
console.log(evenNumbers);
// Output: [2, 4]

4. _.reduce() - রিডিউসিং (Reducing)

_.reduce() ফাংশন অ্যারের সমস্ত আইটেমকে একত্রিত করে একটি একক মানে রূপান্তরিত করে। এটি একটি একক ভ্যালু তৈরির জন্য ব্যবহার করা হয়।

var sum = _.reduce([1, 2, 3], function(total, num) {
    return total + num;
}, 0);
console.log(sum);
// Output: 6

5. _.find() - ফাইন্ডিং (Finding)

_.find() ফাংশন অ্যারে বা অবজেক্টের মধ্যে প্রথম মেলে এমন আইটেম রিটার্ন করে।

var firstEven = _.find([1, 2, 3, 4], function(num) {
    return num % 2 === 0;
});
console.log(firstEven);
// Output: 2

Underscore.js স্টাইল গাইড

Underscore.js এর কিছু নির্দিষ্ট স্টাইল এবং কনভেনশন অনুসরণ করলে কোড আরো পরিষ্কার এবং মেইনটেনযোগ্য হবে। নিচে কিছু সাধারণ স্টাইল গাইড দেওয়া হলো যা কোড লিখতে সহায়তা করবে:

১. ফাংশন নেমিং কনভেনশন (Function Naming Convention)

Underscore.js এ ফাংশন নামগুলি ছোট হাতের অক্ষরে এবং সরল রাখা হয়। ফাংশন নামের ক্ষেত্রে সাধারণত verb-noun কনভেনশন অনুসরণ করা হয়। উদাহরণস্বরূপ:

  • _.each()
  • _.map()
  • _.filter()

২. নামকরণের স্টাইল (Naming Style)

  • অ্যারে এবং অবজেক্টের জন্য বর্ণনামূলক নাম: ভেরিয়েবল এবং ফাংশন নাম এমনভাবে বেছে নিন যাতে তা পরিষ্কারভাবে বোঝায় সে কী কাজ করবে। যেমন, numbers, totalPrice, findActiveUsers ইত্যাদি।

৩. ফাংশন আর্গুমেন্টের মধ্যে স্পষ্টতা (Clarity in Function Arguments)

ফাংশনের মধ্যে কী আর্গুমেন্ট পাস করা হচ্ছে তা পরিষ্কার রাখুন। প্রতিটি আর্গুমেন্টের নাম এমন হওয়া উচিত যাতে ব্যবহারকারীরা তা সহজে বুঝতে পারে।

// Bad
_.map(arr, fn);

// Good
_.map(array, callback);

৪. ফাংশন চেইনিং (Function Chaining)

Underscore.js ফাংশনগুলি সাধারণত চেইনিংয়ের মাধ্যমে একে অপরের সাথে কাজ করতে পারে। চেইনিং ব্যবহারের সময়, কোডের গঠন পরিষ্কার এবং মডুলার রাখা উচিত।

var result = _.chain([1, 2, 3, 4])
              .filter(function(num) { return num % 2 === 0; })
              .map(function(num) { return num * 2; })
              .value();
console.log(result);
// Output: [4, 8]

৫. এলিফ এবং ডিফাউল্ট ব্যবহার (Use of else and default)

এলিফ ব্যবহার করার সময়, কোডটি যদি বেশ জটিল হয় তবে একটি default ফাংশন ব্যবহার করতে পারেন।

_.each([1, 2, 3], function(num) {
    if (num === 2) {
        console.log("Found 2");
    } else {
        console.log("Not 2");
    }
});

এছাড়া, যেখানে প্রয়োজন সেখানে default ব্যবহার করুন যাতে কোডের মান পূর্ণ থাকে।

৬. ডকুমেন্টেশন এবং কমেন্টস (Documentation and Comments)

Underscore.js কোডে সাধারণত খুব কম মন্তব্য ব্যবহার করা হয়, তবে বড় এবং জটিল কোডের ক্ষেত্রে মন্তব্য ব্যবহার করতে পারেন যাতে কোডের উদ্দেশ্য পরিষ্কার হয়।

// Filter even numbers from an array
var evenNumbers = _.filter([1, 2, 3, 4], function(num) {
    return num % 2 === 0;
});

Underscore.js এর ব্যবহারিক উদাহরণ

এখানে Underscore.js এর একটি ছোট উদাহরণ দেওয়া হলো যা কিছু মৌলিক ফাংশন ব্যবহার করে:

// Array of objects
var users = [
  { 'name': 'John', 'age': 28 },
  { 'name': 'Jane', 'age': 34 },
  { 'name': 'Doe', 'age': 45 }
];

// 1. Filtering users older than 30
var olderThan30 = _.filter(users, function(user) {
    return user.age > 30;
});
console.log(olderThan30);

// 2. Mapping user names to an array
var userNames = _.map(users, function(user) {
    return user.name;
});
console.log(userNames);

// 3. Finding a specific user by name
var user = _.find(users, function(user) {
    return user.name === 'Jane';
});
console.log(user);

সারাংশ

Underscore.js একটি শক্তিশালী লাইব্রেরি যা JavaScript-এ সাধারণ ডেটা অপারেশনগুলো যেমন ম্যাপিং, ফিল্টারিং, এবং রিডিউসিং সহজভাবে করতে সহায়তা করে। এর সিম্পল সিনট্যাক্স এবং সুবিধাজনক ফাংশনগুলির সাহায্যে ডেভেলপাররা কোড দ্রুত এবং সহজভাবে লিখতে পারে। স্টাইল গাইড এবং নামকরণের কনভেনশন অনুসরণ করে Underscore.js কোড লেখা আরও পরিষ্কার এবং রক্ষণাবেক্ষণযোগ্য হয়।

Content added By
Promotion

Are you sure to start over?

Loading...