اذهب إلى المحتوى

السؤال

نشر (معدل)

سلام عليكم

اريد ان اعرف بعض النقاط التالية وهى :

1- ما هو module ?

2- وظيفة ال module والفائدة من استخدامه

وايضا اريد  شرح للاكواد التى توضح مثال لاستخدام الموديول 

وشكرا

app.js 

// CommonJS, every file is module (by default)
// Modules - Encapsulated Code (only share minimum)
// CommonJS, every file is module (by default)
// Modules - Encapsulated Code (only share minimum)
const names = require('./4-names')
const sayHi = require('./5-utils')
sayHi('susan')
sayHi('john')
sayHi('peter')

4-names.js

  
// local
const secret = 'SUPER SECRET'
// share
const john = 'john'
const peter = 'peter'

module.exports = { john, peter }

5-utils.js

const sayHi = (name) => {
    console.log(`Hello there ${name}`)
  }
  module.exports = sayHi
 

 

تم التعديل في بواسطة Wael Aljamal
توضيح السؤال

Recommended Posts

  • 0
نشر

الوحدة(module) هي كمية من الشفرة البرمجية تخدم غرضاً ما محدداً ويمكن إعادة إستخدامها, وعادةً يتم إستخدام الوحدات لتقسيم البرنامج إلى أجزاء صغيرة من الوحدات بالإضافة لإنشاء أجزاء من الشفرة البرمجية القابلة لإعادة الإستخدام

بالنسبة للأمثلة التي وضعتها:

فبدلاً من وضع البرنامج كله في ملف واحد كبير مما يصعب من وجود الأخطاء وفهم الشفرة البرمجية بشكل أصعب كما في الشكل التالي

const secret = 'SUPER SECRET'
// share
const john = 'john'
const peter = 'peter'
const sayHi = (name) => {
    console.log(`Hello there ${name}`)
  }
 sayHi('susan')
sayHi('john')
sayHi('peter')

قمنا بتقسيم البرنامج إلي ثﻻث ملفات, ملف names الذي يحمل البيانات التي نحتاجها في البرنامج حتى يعمل بشكل صحيح(الأسماء) , وملف utils الذي يحتوي على الدوال التي تمثل الوظائف للبرنامج , وملف appالذي يقوم بعمل إستيراد للملفين السابقين ويستدعي وظائفهم حتى يعمل البرنامج.

  • 0
نشر

من أهم مبادئ البرمجة، عمل أجزاء صغيرة من الشيفرة البرمجية مسؤولة عن عمل شيئ واحد محدد، لكي نقلل من اعتماد أجزاء الشيفرات على بعضهم وهذا - في حال وجود خطأ - يمكننا من عول المشكلة "الشيفرة التي من الممكن سبب خطأ" وإصلاحها بسهولة بدون العبث مع باقي أجزاء الشيفرة.

يمكنك فهم Module على أنها دالة برمجية تعيد لنا غرض وحيد Object يحوي تفاصيل برمجة جزء من المشروع، ويمكن اعتبار كل ملف JS على أنه وحدة منفصلة، كما يمكن في كل وحدة استخدام أسماء المتغيرات بشكل مباشر دون الاكترث من وجودها في مكان آخر من الملف إن كان كبيراً أو وجوده في ملفات أخرى، لأن الوحدات مغلفة ذاتياً، حيث أن التفاصيل التي تكتبها ضمن الوحدة لا يتم مشاركتها للخارج، فقط نشارك الأغراض النهائية التي تلزمنا بمكان آخر.

يمكنك مراجعة المقالة:  أنماط التصميم في JavaScript: الوحدات

 

  • 0
نشر
بتاريخ 1 ساعة قال Mohamed Abdalla6:

طيب اريد ان اعرف على ماذا تدل علامة => فى الكود الموجود فى 5-utils.js

وهل يوجد تعبير اخر لكتابة الكود بطريقة اخرى

const sayHi = (name) => {

هذه تدعى arrow function في جافاسكربت اقرأ عنها أكثر، وهي طريقة تختصر كتابة الدوال،الشيفرة لديك تكافئ تعريف دالة باسم sayHi وتستقبل معامل name..

  • 0
نشر
بتاريخ 24 دقائق مضت قال Mohamed Abdalla6:

طيب اريد شرح لهذه الجمل  :

 CommonJS, every file is module (by default)

Modules - Encapsulated Code (only share minimum)

 

الجملة الأولى، بشكل شائع في جافاسكربت كل ملف يمثل وحدة مستقلة، هي نفس فكرة تقسيم البرنامج لملفات، وكل ملف يحوي دالة او غرض برمجي مسؤول عن مهمة محددة فقط.

الجملة الثانية، الوحدة تقوم بتغليف الشيفرة البرمجية  وتشارك فقط ناتج منها، أي مايمكن استدعاىه خارجها و تعمل به بدون مشاركة التفاصيل والمتغيرات الداخلية و غيرها..

  • 0
نشر
بتاريخ 15 دقائق مضت قال Wael Aljamal:

الجملة الأولى، بشكل شائع في جافاسكربت كل ملف يمثل وحدة مستقلة، هي نفس فكرة تقسيم البرنامج لملفات، وكل ملف يحوي دالة او غرض برمجي مسؤول عن مهمة محددة فقط.

الجملة الثانية، الوحدة تقوم بتغليف الشيفرة البرمجية  وتشارك فقط ناتج منها، أي مايمكن استدعاىه خارجها و تعمل به بدون مشاركة التفاصيل والمتغيرات الداخلية و غيرها..

منكن توضح لى امثلة مع الكود

  • 0
نشر
// CommonJS, every file is module (by default)

// Modules - Encapsulated Code (only share minimum)

const express = require('express')

const names = require('./4-names')

const sayHi = require('./5-utils')

const data = require('./6-alternative-flavor')

require('./7-mind-grenade')

console.log(data)

sayHi('susan')

sayHi(names.john)

sayHi(names.peter)

app.js
 

 
const num1 = 5

const num2 = 10



function addValues() {

  console.log(`the sum is : ${num1 + num2}`)

}



addValues()

mind-grenade.js

لماذا لم يتم اضافة const فى require('./7-mind-grenade') بخلاف البقية ؟

  • 0
نشر
بتاريخ 37 دقائق مضت قال Mohamed Abdalla6:

لماذا لم يتم اضافة const فى require('./7-mind-grenade') بخلاف البقية ؟

على الاغلب هو ملف تنفيذي، لانريد تخزين مرجعية له واستدعاء الغرض الخاص به ، مجرد تضمينه هكذا سيتم تنفيذه مباشرة.

على عكس express احيانا نعمل على ضبط إعداداته، او data نقرا منها البيانات..

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...