தமிழ்

CommonJS மற்றும் ES மாடியூல்களுக்கு இடையிலான வேறுபாடுகளை நடைமுறை எடுத்துக்காட்டுகளுடன் ஆராய்ந்து, நவீன வலை மேம்பாட்டிற்கான நுண்ணறிவுகளைப் பெறுங்கள்.

மாடியூல் அமைப்புகள்: CommonJS மற்றும் ES மாடியூல்கள் - ஒரு விரிவான வழிகாட்டி

தொடர்ந்து மாறிவரும் ஜாவாஸ்கிரிப்ட் மேம்பாட்டு உலகில், நீட்டிக்கக்கூடிய மற்றும் பராமரிக்கக்கூடிய பயன்பாடுகளை உருவாக்குவதில் மாடுலாரிட்டி ஒரு மூலக்கல்லாகும். இரண்டு மாடியூல் அமைப்புகள் வரலாற்று ரீதியாக இந்தத் துறையில் ஆதிக்கம் செலுத்தி வருகின்றன: CommonJS மற்றும் ES மாடியூல்கள் (ESM). அவற்றின் வேறுபாடுகள், நன்மைகள் மற்றும் தீமைகளைப் புரிந்துகொள்வது, ரியாக்ட், வ்யூ, அல்லது ஆங்குலர் போன்ற கட்டமைப்புகளுடன் ஃப்ரண்ட்-எண்டில் பணிபுரியும் அல்லது Node.js உடன் பேக்-எண்டில் பணிபுரியும் எந்தவொரு ஜாவாஸ்கிரிப்ட் டெவலப்பருக்கும் மிகவும் முக்கியமானது.

மாடியூல் அமைப்புகள் என்றால் என்ன?

ஒரு மாடியூல் அமைப்பு, குறியீட்டை மாடியூல்கள் எனப்படும் மீண்டும் பயன்படுத்தக்கூடிய அலகுகளாக ஒழுங்கமைக்க ஒரு வழியை வழங்குகிறது. ஒவ்வொரு மாடியூலும் ஒரு குறிப்பிட்ட செயல்பாட்டைக் கொண்டுள்ளது மற்றும் பிற மாடியூல்கள் பயன்படுத்தத் தேவையான பகுதிகளை மட்டுமே வெளிப்படுத்துகிறது. இந்த அணுகுமுறை குறியீட்டை மீண்டும் பயன்படுத்துவதை ஊக்குவிக்கிறது, சிக்கலைக் குறைக்கிறது மற்றும் பராமரிப்பை மேம்படுத்துகிறது. மாடியூல்களை கட்டுமானத் தொகுதிகள் போல நினைத்துப் பாருங்கள்; ஒவ்வொரு தொகுதிக்கும் ஒரு குறிப்பிட்ட நோக்கம் உள்ளது, மேலும் பெரிய, மிகவும் சிக்கலான கட்டமைப்புகளை உருவாக்க நீங்கள் அவற்றை இணைக்கலாம்.

மாடியூல் அமைப்புகளைப் பயன்படுத்துவதன் நன்மைகள்:

CommonJS: Node.js இன் தரநிலை

சர்வர் பக்க மேம்பாட்டிற்கான பிரபலமான ஜாவாஸ்கிரிப்ட் இயக்க சூழலான Node.js-க்கான நிலையான மாடியூல் அமைப்பாக CommonJS உருவானது. Node.js முதன்முதலில் உருவாக்கப்பட்டபோது ஜாவாஸ்கிரிப்ட்டில் உள்ளமைக்கப்பட்ட மாடியூல் அமைப்பு இல்லாததை நிவர்த்தி செய்ய இது வடிவமைக்கப்பட்டது. Node.js குறியீட்டை ஒழுங்கமைப்பதற்கான அதன் வழியாக CommonJS-ஐ ஏற்றுக்கொண்டது. இந்தத் தேர்வு சர்வர் பக்கத்தில் ஜாவாஸ்கிரிப்ட் பயன்பாடுகள் எவ்வாறு உருவாக்கப்பட்டன என்பதில் ஆழமான தாக்கத்தை ஏற்படுத்தியது.

CommonJS இன் முக்கிய அம்சங்கள்:

CommonJS தொடரியல்:

CommonJS எவ்வாறு பயன்படுத்தப்படுகிறது என்பதற்கான ஒரு எடுத்துக்காட்டு இங்கே:

மாடியூல் (math.js):

// math.js
function add(a, b) {
 return a + b;
}

function subtract(a, b) {
 return a - b;
}

module.exports = {
 add: add,
 subtract: subtract
};

பயன்பாடு (app.js):

// app.js
const math = require('./math');

console.log(math.add(5, 3)); // வெளியீடு: 8
console.log(math.subtract(10, 4)); // வெளியீடு: 6

CommonJS இன் நன்மைகள்:

CommonJS இன் தீமைகள்:

ES மாடியூல்கள் (ESM): தரப்படுத்தப்பட்ட ஜாவாஸ்கிரிப்ட் மாடியூல் அமைப்பு

ES மாடியூல்கள் (ESM) என்பது ஜாவாஸ்கிரிப்ட்டிற்கான அதிகாரப்பூர்வ தரப்படுத்தப்பட்ட மாடியூல் அமைப்பாகும், இது ECMAScript 2015 (ES6) உடன் அறிமுகப்படுத்தப்பட்டது. Node.js மற்றும் பிரவுசர் இரண்டிலும் குறியீட்டை ஒழுங்கமைக்க ஒரு நிலையான மற்றும் திறமையான வழியை வழங்குவதை அவை நோக்கமாகக் கொண்டுள்ளன. ESM ஆனது ஜாவாஸ்கிரிப்ட் மொழிக்கு நேட்டிவ் மாடியூல் ஆதரவைக் கொண்டுவருகிறது, இதனால் மாடுலாரிட்டியை கையாள வெளிப்புற நூலகங்கள் அல்லது பில்ட் கருவிகளின் தேவையை நீக்குகிறது.

ES மாடியூல்களின் முக்கிய அம்சங்கள்:

ES மாடியூல்கள் தொடரியல்:

ES மாடியூல்கள் எவ்வாறு பயன்படுத்தப்படுகின்றன என்பதற்கான ஒரு எடுத்துக்காட்டு இங்கே:

மாடியூல் (math.js):

// math.js
export function add(a, b) {
 return a + b;
}

export function subtract(a, b) {
 return a - b;
}

// அல்லது, மாற்றாக:
// function add(a, b) {
//  return a + b;
// }
// function subtract(a, b) {
//  return a - b;
// }
// export { add, subtract };

பயன்பாடு (app.js):

// app.js
import { add, subtract } from './math.js';

console.log(add(5, 3)); // வெளியீடு: 8
console.log(subtract(10, 4)); // வெளியீடு: 6

பெயரிடப்பட்ட ஏற்றுமதிகள் மற்றும் இயல்புநிலை ஏற்றுமதிகள்:

ES மாடியூல்கள் பெயரிடப்பட்ட மற்றும் இயல்புநிலை ஏற்றுமதிகள் இரண்டையும் ஆதரிக்கின்றன. பெயரிடப்பட்ட ஏற்றுமதிகள் ஒரு மாடியூலில் இருந்து குறிப்பிட்ட பெயர்களுடன் பல மதிப்புகளை ஏற்றுமதி செய்ய உங்களை அனுமதிக்கின்றன. இயல்புநிலை ஏற்றுமதிகள் ஒரு மாடியூலின் இயல்புநிலை ஏற்றுமதியாக ஒரு மதிப்பை ஏற்றுமதி செய்ய உங்களை அனுமதிக்கின்றன.

பெயரிடப்பட்ட ஏற்றுமதி எடுத்துக்காட்டு (utils.js):

// utils.js
export function formatCurrency(amount, currencyCode) {
 // நாணயக் குறியீட்டின்படி தொகையை வடிவமைக்கவும்
 // எடுத்துக்காட்டு: formatCurrency(1234.56, 'USD') '$1,234.56' எனத் திரும்பக்கூடும்
 // செயல்படுத்தல் விரும்பிய வடிவமைப்பு மற்றும் கிடைக்கும் நூலகங்களைப் பொறுத்தது
 return new Intl.NumberFormat('en-US', { style: 'currency', currency: currencyCode }).format(amount);
}

export function formatDate(date, locale) {
 // லோகேலுக்கு ஏற்ப தேதியை வடிவமைக்கவும்
 // எடுத்துக்காட்டு: formatDate(new Date(), 'fr-CA') '2024-01-01' எனத் திரும்பக்கூடும்
 return new Intl.DateTimeFormat(locale).format(date);
}
// app.js
import { formatCurrency, formatDate } from './utils.js';

const price = formatCurrency(19.99, 'EUR'); // ஐரோப்பா
const today = formatDate(new Date(), 'ja-JP'); // ஜப்பான்

console.log(price); // வெளியீடு: €19.99
console.log(today); // வெளியீடு: (தேதியைப் பொறுத்து மாறுபடும்)

இயல்புநிலை ஏற்றுமதி எடுத்துக்காட்டு (api.js):

// api.js
const api = {
 fetchData: async (url) => {
 const response = await fetch(url);
 return response.json();
 }
};

export default api;
// app.js
import api from './api.js';

api.fetchData('https://example.com/data')
 .then(data => console.log(data));

ES மாடியூல்களின் நன்மைகள்:

ES மாடியூல்களின் தீமைகள்:

CommonJS மற்றும் ES மாடியூல்கள்: ஒரு விரிவான ஒப்பீடு

CommonJS மற்றும் ES மாடியூல்களுக்கு இடையிலான முக்கிய வேறுபாடுகளை சுருக்கமாகக் காட்டும் ஒரு அட்டவணை இங்கே:

அம்சம் CommonJS ES மாடியூல்கள்
இறக்குமதி தொடரியல் require() import
ஏற்றுமதி தொடரியல் module.exports export
ஏற்றுதல் ஒத்திசைவானது ஒத்திசைவற்றது (பிரவுசர்களில்), ஒத்திசைவானது/ஒத்திசைவற்றது Node.js இல்
நிலையான பகுப்பாய்வு இல்லை ஆம்
நேட்டிவ் பிரவுசர் ஆதரவு இல்லை ஆம்
முதன்மை பயன்பாட்டு வழக்கு Node.js (வரலாற்று ரீதியாக) பிரவுசர்கள் மற்றும் Node.js (நவீன)

நடைமுறை எடுத்துக்காட்டுகள் மற்றும் பயன்பாட்டு வழக்குகள்

எடுத்துக்காட்டு 1: மீண்டும் பயன்படுத்தக்கூடிய பயன்பாட்டு மாடியூலை உருவாக்குதல் (சர்வதேசமயமாக்கல்)

பல மொழிகளை ஆதரிக்க வேண்டிய ஒரு வலை பயன்பாட்டை நீங்கள் உருவாக்குகிறீர்கள் என்று வைத்துக்கொள்வோம். சர்வதேசமயமாக்கலை (i18n) கையாள மீண்டும் பயன்படுத்தக்கூடிய பயன்பாட்டு மாடியூலை நீங்கள் உருவாக்கலாம்.

ES மாடியூல்கள் (i18n.js):

// i18n.js
const translations = {
 'en': {
 'greeting': 'Hello, world!'
 },
 'fr': {
 'greeting': 'Bonjour, le monde !'
 },
 'es': {
 'greeting': '¡Hola, mundo!'
 }
};

export function getTranslation(key, language) {
 return translations[language][key] || key;
}
// app.js
import { getTranslation } from './i18n.js';

const language = 'fr'; // எடுத்துக்காட்டு: பயனர் பிரெஞ்சு மொழியைத் தேர்ந்தெடுத்தார்
const greeting = getTranslation('greeting', language);
console.log(greeting); // வெளியீடு: Bonjour, le monde !

எடுத்துக்காட்டு 2: ஒரு மாடுலர் API கிளையண்டை உருவாக்குதல் (REST API)

ஒரு REST API உடன் தொடர்பு கொள்ளும்போது, API தர்க்கத்தை இணைக்க ஒரு மாடுலர் API கிளையண்டை நீங்கள் உருவாக்கலாம்.

ES மாடியூல்கள் (apiClient.js):

// apiClient.js
const API_BASE_URL = 'https://api.example.com';

async function get(endpoint) {
 const response = await fetch(`${API_BASE_URL}${endpoint}`);
 if (!response.ok) {
 throw new Error(`HTTP error! status: ${response.status}`);
 }
 return response.json();
}

async function post(endpoint, data) {
 const response = await fetch(`${API_BASE_URL}${endpoint}`, {
 method: 'POST',
 headers: {
 'Content-Type': 'application/json'
 },
 body: JSON.stringify(data)
 });
 if (!response.ok) {
 throw new Error(`HTTP error! status: ${response.status}`);
 }
 return response.json();
}

export { get, post };
// app.js
import { get, post } from './apiClient.js';

get('/users')
 .then(users => console.log(users))
 .catch(error => console.error('பயனர்களைப் பெறுவதில் பிழை:', error));

post('/users', { name: 'John Doe', email: 'john.doe@example.com' })
 .then(newUser => console.log('புதிய பயனர் உருவாக்கப்பட்டார்:', newUser))
 .catch(error => console.error('பயனரை உருவாக்குவதில் பிழை:', error));

CommonJS இலிருந்து ES மாடியூல்களுக்கு இடம்பெயர்தல்

CommonJS இலிருந்து ES மாடியூல்களுக்கு இடம்பெயர்வது ஒரு சிக்கலான செயல்முறையாக இருக்கலாம், குறிப்பாக பெரிய குறியீடு தளங்களில். கருத்தில் கொள்ள வேண்டிய சில உத்திகள் இங்கே:

Node.js மற்றும் ES மாடியூல்கள்:

Node.js ES மாடியூல்களை முழுமையாக ஆதரிக்கும் வகையில் பரிணமித்துள்ளது. Node.js இல் ES மாடியூல்களைப் பயன்படுத்தலாம்:

சரியான மாடியூல் அமைப்பைத் தேர்ந்தெடுப்பது

CommonJS மற்றும் ES மாடியூல்களுக்கு இடையிலான தேர்வு உங்கள் குறிப்பிட்ட தேவைகள் மற்றும் நீங்கள் உருவாக்கும் சூழலைப் பொறுத்தது:

முடிவுரை

CommonJS மற்றும் ES மாடியூல்களுக்கு இடையிலான வேறுபாடுகளைப் புரிந்துகொள்வது எந்தவொரு ஜாவாஸ்கிரிப்ட் டெவலப்பருக்கும் அவசியம். CommonJS வரலாற்று ரீதியாக Node.js-க்கான தரநிலையாக இருந்தபோதிலும், ES மாடியூல்கள் அவற்றின் தரப்படுத்தப்பட்ட தன்மை, செயல்திறன் நன்மைகள் மற்றும் நிலையான பகுப்பாய்விற்கான ஆதரவு காரணமாக பிரவுசர்கள் மற்றும் Node.js இரண்டிற்கும் விருப்பமான தேர்வாக மாறி வருகின்றன. உங்கள் திட்டத்தின் தேவைகளையும் நீங்கள் உருவாக்கும் சூழலையும் கவனமாகக் கருத்தில் கொள்வதன் மூலம், உங்கள் தேவைகளுக்கு மிகவும் பொருத்தமான மாடியூல் அமைப்பை நீங்கள் தேர்வு செய்யலாம் மற்றும் அளவிடக்கூடிய, பராமரிக்கக்கூடிய மற்றும் திறமையான ஜாவாஸ்கிரிப்ட் பயன்பாடுகளை உருவாக்கலாம்.

ஜாவாஸ்கிரிப்ட் சுற்றுச்சூழல் தொடர்ந்து உருவாகி வருவதால், சமீபத்திய மாடியூல் அமைப்பு போக்குகள் மற்றும் சிறந்த நடைமுறைகள் குறித்து அறிந்திருப்பது வெற்றிக்கு முக்கியமானது. CommonJS மற்றும் ES மாடியூல்கள் இரண்டையும் பரிசோதித்துக்கொண்டே இருங்கள், மேலும் மாடுலர் மற்றும் பராமரிக்கக்கூடிய ஜாவாஸ்கிரிப்ட் குறியீட்டை உருவாக்க உதவும் பல்வேறு கருவிகள் மற்றும் நுட்பங்களை ஆராயுங்கள்.