- - - - - কমনজেএস বনাম এএমডি বনাম প্রয়োজনীয় জেএস বনাম ইএস 6 মডিউলগুলি - - - - - -

আমি মডুলার বিভাগে পদক্ষেপ নেওয়ার আগে দয়া করে আমার অনন্য তুলনা পরীক্ষা করুন, আবর্জনা সংগ্রহ বনাম স্বয়ংক্রিয় রেফারেন্স গণনা।

জাভাস্ক্রিপ্ট মডিউলগুলি স্বতন্ত্র, পুনরায় ব্যবহারযোগ্য কোডের একটি ছোট ইউনিট বোঝায়। তাদের পৃথক কার্যকারিতা রয়েছে, এগুলি যুক্ত করার অনুমতি দেয়, সিস্টেমকে ব্যাহত না করে সরিয়ে দেওয়া হয়। এটি জাভা বা পাইথনে ক্লাসগুলি কীভাবে ব্যবহৃত হয় তা অনুকরণ করে বলে মনে হচ্ছে।

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

var প্রকোপকারী মড্যুল = (ফাংশন () {
    var privateVar = "বেন থমাস";
    ফাংশন setNameFn (strName)
        প্রাইভেটওয়ার = strName;
    }
ফিরে
        setName: setNameFn,
    };
}) ();
M; aling; aling;;; od;;;;;;;;;;;; od

এই প্রোগ্রামটিতে, ব্যক্তিগত সম্পত্তি এবং পদ্ধতিগুলি এনকেপুলেটেড অবস্থায় সর্বজনীন কার্যাবলী প্রকাশিত হয়।

একাধিক মডিউলগুলি একটি ফাইলে সংজ্ঞায়িত করা যায় তবে ডাউনস্লাইডগুলি মডিউলগুলির অ্যাসিনক্রোনাস লোডিং সম্ভব নয়, প্রোগ্রামিয়ালি মডিউলগুলি আমদানি করতে পারে না।

CommonJS

কীওয়ার্ডগুলির প্রয়োজনীয়তা এবং রফতানি ব্যবহার করে মডিউল সিস্টেমের সাথে ইন্টারঅ্যাক্ট করার জন্য তারা একটি পৃথক পদ্ধতির সাথে উপস্থিত হয়েছিল। অন্য মডিউল থেকে ফাংশন আমদানি করতে ব্যবহৃত একটি ফাংশন প্রয়োজন। রফতানি এমন একটি বস্তু যেখানে এতে করা কোনও কার্য রফতানি হবে।

// ------ भुगतान.js ------
var গ্রাহকের স্টোর = প্রয়োজনীয় ('স্টোর / গ্রাহক'); // আমদানি মডিউল
// ------ স্টোর / ग्राहक.জেএস ------
এক্সপোর্ট = ফাংশন () {
    গ্রাহকগণকে রিটার্ন দিন get
}

উপরের উদাহরণে গ্রাহক স্টোরটি পেমেন্ট.জেজে আমদানি করা হয়। গ্রাহক মডিউলে রফতানি অবজেক্টে সেট করা ফাংশনটি পেমেন্ট ফাইলে লোড হয়।

এই মডিউলগুলি সার্ভার বিকাশের জন্য ডিজাইনার এবং এগুলি সিঙ্ক্রোনাস.ie।, ফাইলগুলির অভ্যন্তরে একের পর এক ফাইলগুলি লোড করা হয়।

নোডজেএস বাস্তবায়ন

এগুলি প্রচুর পরিমাণে কমনজেএস স্পেসিফিকেশন দ্বারা প্রভাবিত হয়। রফতানি অবজেক্টে বড় পার্থক্য দেখা দেয়। নোডজেএস মডিউলগুলি রফতানি করার জন্য মডিউল.এক্সপোর্টগুলি ব্যবহার করে যখন কমনজেএস কেবল রফতানি পরিবর্তনশীল ব্যবহার করে।

//payments.js
var গ্রাহকের স্টোর = প্রয়োজনীয় ('স্টোর / গ্রাহক'); // আমদানি মডিউল
//store/customer.js
ফাংশন গ্রাহক স্টোর () {
    গ্রাহকগণকে রিটার্ন দিন get
}
modules.export = গ্রাহকের দোকান;

এগুলি প্রকৃতিতেও সংলগ্ন। নোড_মডিউলস ডিরেক্টরিতে মডিউল নামের প্রয়োজনের চেকগুলিতে প্যারামিটারটি প্রেরণ করা হয়েছে। বিজ্ঞপ্তি নির্ভরতা সমর্থিত এবং একটি বিকাশকারী সহজেই ধারণাগুলি বুঝতে পারে। কনসগুলি মডিউল প্রতি মাত্র একটি ফাইল, কেবলমাত্র বস্তুগুলিকে মডিউল হিসাবে তৈরি করা হয় এবং ব্রাউজারগুলি এই মডিউলগুলি সরানো ছাড়া সরাসরি ব্যবহার করতে পারে না।

তবে সম্প্রতি ব্রাউজারফি, মডিউলগুলি থেকে কোড বান্ডিল করতে ব্যবহৃত, ব্রাউজারে এই পদ্ধতিটি ব্যবহার করে। ওয়েবপ্যাকটি সোর্স ট্রান্সফর্মেশনগুলির জটিল পাইপলাইনগুলি পরিচালনা করে যা কমনজেএস মডিউলগুলি অন্তর্ভুক্ত করে।

অ্যাসিনক্রোনাস মডিউল সংজ্ঞা (এএমডি)

এএমডি জন্মগ্রহণকারী হিসাবে সাধারণ জেএস ব্রাউজারগুলির জন্য উপযুক্ত ছিল না। নামটি থেকে বোঝা যায়, এটি অ্যাসিনক্রোনাস মডিউল লোডিং সমর্থন করে।

সংজ্ঞায়িত (['মডিউল 1', ', মডিউল 2'], ফাংশন (মডিউল 1, মডিউল 2) {
  console.log (module1.setName ());
});

অনুরোধ করা মডিউলগুলি লোডিং শেষ হলেই ফাংশনটি ডাকা হয়। সংজ্ঞায়িত ফাংশন নির্ভরতা মডিউলগুলির একটি অ্যারে হিসাবে প্রথম যুক্তিটি গ্রহণ করে। এই মডিউলগুলি ব্যাকগ্রাউন্ডে একটি অ-ব্লকিং পদ্ধতিতে লোড করা হয় এবং লোডিং শেষ হয়ে গেলে, কলব্যাক ফাংশনটি কার্যকর করা হয়।

এটি আরও ভাল স্টার্টআপ সময়ের জন্য ব্রাউজারগুলিতে ব্যবহার করার জন্য ডিজাইন করা হয়েছে এবং এই মডিউলগুলি বস্তু, ফাংশন, কনস্ট্রাক্টর, স্ট্রিং, জেএসএন ইত্যাদি হতে পারে Mod ভাল।

প্রয়োজনীয় জেএস এএমডি এপিআই প্রয়োগ করে। এটি সরল স্ক্রিপ্ট ট্যাগ ব্যবহার করে প্লেইন জাভাস্ক্রিপ্ট ফাইলগুলির পাশাপাশি মডিউলগুলি লোড করে। এটিতে একটি অপ্টিমাইজিং সরঞ্জাম রয়েছে যা উন্নত পারফরম্যান্সের জন্য আমাদের কোড নিযুক্ত করার সময় চালানো যেতে পারে।

<স্ক্রিপ্ট ডেটা-মেইন = "স্ক্রিপ্টস / মুখ্য" src = "স্ক্রিপ্টস / প্রয়োজনীয়.js"> 

প্রয়োজনীয় জেএস-এ ফাইল অন্তর্ভুক্ত করার জন্য এটি কেবলমাত্র কোডের প্রয়োজন। ডেটা-মূল বৈশিষ্ট্যটি সূচনাটি সংজ্ঞায়িত করে এবং এটি স্ক্রিপ্ট এবং নির্ভরতা সন্ধান করে।

আপনি সম্ভবত লক্ষ্য করেছেন, উপরের কোনও মডিউল জাভাস্ক্রিপ্টের স্থানীয় নয়। আমরা মডিউল প্যাটার্ন, কমনজেএস এবং এএমডি ব্যবহার করে একটি মডিউল সিস্টেম অনুকরণ করার চেষ্টা করেছি। ভাগ্যক্রমে, ECMAScript 6 বিল্ট-ইন মডিউলগুলি চালু করেছে যা এটি পরবর্তী এবং চূড়ান্ত বিভাগে নিয়ে যায়।

ECMAScript 6 মডিউল (নেটিভ জাভাস্ক্রিপ্ট)

ECMAScript 6 a.k.a., ES6 a.ka., ES2015 অপারেটিং সিস্টেমের সিঙ্ক্রোনাস এবং অ্যাসিনক্রোনাস উভয় মোডের সাথে সামঞ্জস্যপূর্ণ মডিউলগুলি আমদানি ও রফতানির জন্য সম্ভাবনা সরবরাহ করে।

// ------ lib.js ------
এক্সপোর্ট কনস্টয়ার স্কয়ার্ট = ম্যাথ.এসকিআরটি;
এক্সপোর্ট ফাংশন বর্গক্ষেত্র (x) {
    এক্স x এক্স;
}
এক্সপোর্ট ফাংশন ডায়াগ (x, y) {
    রিটার্ন স্কয়ার্ট (বর্গ (x) + বর্গ (y));
}
// ------ main.js ------
'lib' থেকে {বর্গক্ষেত্র, ডায়াগ import আমদানি করুন;
console.log (বর্গ (11)); // 121
কনসোল.লগ (ডায়াগ (4, 3)); // 5

নাম স্থানে মডিউল আনতে আমদানি বিবৃতি ব্যবহৃত হয়। এটি গতিশীল নয়, ফাইলের কোথাও ব্যবহার করা যাবে না। এটি প্রয়োজনীয়তা এবং সংজ্ঞায়নের সাথে বিপরীত। ম রফতানি বিবৃতি উপাদানগুলিকে জনসাধারণ করে তোলে। স্থিতিশীল আচরণটি কোড চালিয়ে না দিয়ে ফাইল বান্ডিল করার সময় স্থিতিশীল বিশ্লেষকরা নির্ভরতার গাছ তৈরি করে। এটি আধুনিক জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক যেমন রিঅ্যাকটিজেএস, এমবারজেএস ইত্যাদির সাহায্যে ব্যবহৃত হয়, ত্রুটিটি হ'ল এটি ব্রাউজারগুলিতে পুরোপুরি প্রয়োগ করা হয় না এবং অসমর্থিত ব্রাউজারগুলিতে রেন্ডেল করার জন্য এটি বাবেলের মতো ট্রান্সপ্লেরার প্রয়োজন।

আপনি যদি কোনও নতুন মডিউল বা প্রকল্প শুরু করার দিকে তাকিয়ে থাকেন তবে ES2015 হ'ল সঠিক উপায় এবং কমনজেএস / নোড সার্ভারের পছন্দ হিসাবে রয়ে গেছে।

পড়ার জন্য ধন্যবাদ.
আপনি যদি এই নিবন্ধটি উপভোগ করেছেন তবে এই তালি বোতামটি দ্বিধায় দ্বিধায় পড়ুন others এটির অনুসন্ধানে অন্যকে সহায়তা করুন।
আমাকে https://medium.com/@मोনেশ এ অনুসরণ করুন