CommonJS: Difference between revisions

From binaryoption
Jump to navigation Jump to search
Баннер1
(@pipegas_WP)
 
(@pipegas_WP)
 
Line 1: Line 1:
== CommonJS: دليل شامل للمبتدئين ==
# CommonJS: دليل شامل للمبتدئين


'''CommonJS''' هو عبارة عن مجموعة من المواصفات التي تهدف إلى تحديد معايير لوحدات البرمجيات في بيئة [[JavaScript]]. ظهرت CommonJS كاستجابة للحاجة إلى طريقة موحدة لتنظيم وتوزيع [[كود JavaScript]]، خاصةً في بيئات [[الخادم]] مثل [[Node.js]]. قبل CommonJS، كان تطوير تطبيقات JavaScript الكبيرة أمرًا صعبًا بسبب نقص نظام وحدات قياسي.
'''CommonJS''' هو معيار لتحديد وحدات [[JavaScript]]، مما يسمح بتنظيم التعليمات البرمجية وتوحيدها، خاصة في بيئات [[الخادم]] مثل [[Node.js]]. قبل CommonJS، كانت إدارة تبعيات التعليمات البرمجية في JavaScript تعاني من الفوضى، حيث كان الاعتماد على المتغيرات العامة والملفات المضمنة شائعًا، مما يؤدي إلى مشاكل في الصيانة وإعادة الاستخدام. يهدف CommonJS إلى حل هذه المشكلات من خلال توفير نظام معياري واضح ومحدد.


=== لماذا نحتاج إلى CommonJS؟ ===
== ما هي الوحدات (Modules)؟ ==


تخيل بناء منزل بدون مخطط واضح. سيكون الأمر فوضويًا وصعبًا للغايةهذا ما كان عليه تطوير JavaScript قبل CommonJS. كان المطورون يعتمدون على متغيرات عامة أو طرق بدائية لتضمين [[الكود]]، مما يؤدي إلى:
الوحدات هي كتل بناء أساسية في أي تطبيق برمجي كبير. إنها تساعد في تقسيم التعليمات البرمجية إلى أجزاء أصغر وأكثر قابلية للإدارة، مما يعزز إعادة الاستخدام، ويقلل من التعقيد، ويجعل التصحيح أسهلفي سياق CommonJS، الوحدة هي ملف JavaScript واحد يحتوي على تعليمات برمجية قابلة لإعادة الاستخدام.


*  '''تعارضات الأسماء:''' قد تستخدم مكتبتان مختلفتان نفس اسم المتغير، مما يتسبب في أخطاء.
== كيف يعمل CommonJS؟ ==
*  '''صعوبة الصيانة:''' يصبح فهم وتعديل الكود أمرًا صعبًا عندما يكون مترامي الأطراف وغير منظم.
*  '''إعادة الاستخدام المحدود:''' يصعب إعادة استخدام الكود في مشاريع مختلفة.


CommonJS حلت هذه المشاكل من خلال توفير طريقة منظمة لتغليف الكود وإدارته.
يعتمد CommonJS على مفهومين رئيسيين:


=== المفاهيم الأساسية في CommonJS ===
* '''`require()`:'''  تستخدم هذه الدالة لاستيراد الوحدات الأخرى.  تأخذ مسارًا إلى ملف الوحدة كمعامل وتعيد الوحدة المصدرة.
* '''`module.exports` أو `exports` :'''  يستخدم هذان الكائنان لتصدير الوظائف والمتغيرات والكائنات من الوحدة الحالية لجعلها متاحة للوحدات الأخرى.


*  '''الوحدات (Modules):'''  الوحدات هي كتل منفصلة من الكود تحتوي على وظائف ومتغيرات.  كل وحدة لها نطاقها الخاص، مما يمنع تعارضات الأسماء.  تعتبر الوحدات حجر الزاوية في CommonJS.
مثال بسيط:
*  '''`require()`:'''  هذه الوظيفة تستخدم لاستيراد الوحدات الأخرى.  تأخذ مسارًا إلى الوحدة كمدخل وتعيد الوحدة المستوردة.  مثال: `const myModule = require('./my-module');`
*  '''`module.exports` و `exports` :'''  هذه الكائنات تستخدم لتصدير الوظائف والمتغيرات من وحدة.  `module.exports` يسمح بتصدير كائن واحد، بينما `exports` هو مرجع إلى `module.exports` ويمكن استخدامه لتصدير خصائص متعددة.  مثال: `module.exports = { myFunction: function() { ... } };` أو `exports.myFunction = function() { ... };`
*  '''نظام الملفات:'''  تعتمد CommonJS على نظام الملفات لتحديد موقع الوحدات.  عادةً ما يتم تحديد المسارات نسبة إلى الملف الحالي.


=== مثال بسيط لوحدة CommonJS ===
=== ملف: `module_a.js` ===
```javascript
// تصدير متغير
exports.myVariable = "Hello from Module A";


لنلقي نظرة على مثال بسيط:
// تصدير وظيفة
 
exports.myFunction = function() {
**my-module.js:**
  return "Function from Module A";
};
```


=== ملف: `main.js` ===
```javascript
```javascript
function greet(name) {
// استيراد الوحدة A
  return "Hello, " + name + "!";
const moduleA = require('./module_a');
}


module.exports = {
// استخدام العناصر المصدرة من الوحدة A
  greet: greet
console.log(moduleA.myVariable); // Output: Hello from Module A
};
console.log(moduleA.myFunction()); // Output: Function from Module A
```
```


**main.js:**
في هذا المثال، `require('./module_a')` يستورد الوحدة `module_a.js`. ثم يمكننا الوصول إلى المتغيرات والوظائف المصدرة باستخدام نقطة (`.`) تتبعها اسم العنصر المصدر.
 
== الاختلافات بين `module.exports` و `exports` ==


```javascript
* '''`module.exports` :'''  هذا هو الكائن النهائي الذي يتم تصديره من الوحدة. يمكنك إعادة تعيينه إلى كائن جديد بالكامل.
const myModule = require('./my-module');
* '''`exports` :''' هو مرجع إلى `module.exports`. في البداية، يشير إلى نفس الكائن. ومع ذلك، إذا قمت بإعادة تعيين `exports` إلى كائن جديد، فستفقد الارتباط بـ `module.exports`.
 
لذلك، من الأفضل استخدام `module.exports` عندما تريد تصدير كائن واحد فقط، أو عندما تريد إعادة تعيين الكائن المصدر بالكامل.  استخدم `exports` لإضافة خصائص إلى الكائن المصدر الحالي.
 
== فوائد استخدام CommonJS ==


console.log(myModule.greet("World")); // Output: Hello, World!
* '''إعادة الاستخدام:'''  الوحدات قابلة لإعادة الاستخدام في مشاريع مختلفة، مما يوفر الوقت والجهد.
```
* '''الصيانة:'''  تقسيم التعليمات البرمجية إلى وحدات يجعلها أسهل في الصيانة والتحديث.
* '''التنظيم:'''  CommonJS يوفر طريقة منظمة لتنظيم التعليمات البرمجية.
* '''تجنب تلوث النطاق:'''  الوحدات تحصر المتغيرات والوظائف داخل نطاقها الخاص، مما يمنع التعارضات مع التعليمات البرمجية الأخرى.
* '''التحميل الديناميكي:''' يمكن تحميل الوحدات عند الحاجة، مما يحسن الأداء.


في هذا المثال، قمنا بإنشاء وحدة تسمى `my-module.js` تحتوي على وظيفة `greet`.  ثم قمنا بتصدير هذه الوظيفة باستخدام `module.exports`.  في `main.js`، قمنا باستيراد الوحدة باستخدام `require()` واستخدمنا الوظيفة المصدرة.
== CommonJS مقابل ES Modules ==


=== CommonJS و Node.js ===
[[ES Modules]] (ESM) هو معيار وحدات أحدث لـ JavaScript، وهو الأصلي في المتصفحات الحديثة ويدعمه [[Node.js]].  هناك بعض الاختلافات الرئيسية بينهما:


تعتبر CommonJS هي نظام الوحدات الافتراضي لـ [[Node.js]]. هذا يعني أن جميع ملفات Node.js تتم معاملتها كوحدات CommonJS ما لم يتم تحديد خلاف ذلك.  تستفيد Node.js بشكل كبير من CommonJS لتنظيم وإدارة [[تطبيقات الخادم]] المعقدة.
| الميزة | CommonJS | ES Modules |
|---|---|---|
| طريقة الاستيراد | `require()` | `import` |
| طريقة التصدير | `module.exports` / `exports` | `export` |
| التحميل | متزامن | غير متزامن (افتراضيًا) |
| التوافق | شائع في Node.js القديم | قياسي في المتصفحات الحديثة و Node.js |


=== CommonJS مقابل ES Modules ===
على الرغم من أن ES Modules هو المعيار الأحدث، لا يزال CommonJS مستخدمًا على نطاق واسع، خاصة في المشاريع القديمة في Node.js.


في السنوات الأخيرة، ظهر [[ES Modules]] (ECMAScript Modules) كمعيار جديد لوحدات JavaScript.  ES Modules تستخدم بناء جملة مختلفًا عن CommonJS، وتدعم الميزات مثل التحميل الديناميكي والاستيراد والتصدير المسمى.  على الرغم من أن ES Modules هي المعيار المستقبلي، إلا أن CommonJS لا تزال مستخدمة على نطاق واسع، خاصة في مشاريع Node.js القديمة.  يمكن استخدام أدوات مثل [[Babel]] لتحويل ES Modules إلى CommonJS والعكس.
== CommonJS في سياق تداول الخيارات الثنائية ==


=== تطبيقات CommonJS ===
على الرغم من أن CommonJS ليس له علاقة مباشرة بتداول [[الخيارات الثنائية]]، إلا أنه يمكن استخدامه في تطوير أدوات تحليل البيانات، والروبوتات التداولية، أو واجهات المستخدم الرسومية لتداول الخيارات الثنائية. يمكن تنظيم التعليمات البرمجية الخاصة بهذه الأدوات باستخدام CommonJS لجعلها أكثر قابلية للصيانة والتوسع. على سبيل المثال، يمكن أن تكون هناك وحدة منفصلة لمعالجة بيانات [[الأسعار]]، ووحدة أخرى لتنفيذ استراتيجيات [[التداول]]، ووحدة أخرى لعرض النتائج.


*  '''Node.js:''' كما ذكرنا سابقًا، Node.js تعتمد بشكل كبير على CommonJS.
== استراتيجيات التداول ذات الصلة ==
*  '''إدارة الحزم (Package Managers):'''  تستخدم أدوات مثل [[npm]] و [[Yarn]] CommonJS لتنظيم وإدارة تبعيات المشروع.
*  '''تطبيقات سطح المكتب:'''  يمكن استخدام CommonJS في تطبيقات سطح المكتب التي تعتمد على JavaScript، مثل تطبيقات Electron.
*  '''أدوات البناء (Build Tools):'''  تستخدم أدوات البناء مثل [[Webpack]] و [[Parcel]] CommonJS لتجميع وتعبئة تطبيقات JavaScript.


=== استراتيجيات متقدمة و تحليل ===
* [[استراتيجية مارتينجال]]
* [[استراتيجية فيبوناتشي]]
* [[استراتيجية المتوسط المتحرك]]
* [[استراتيجية الاختراق]]
* [[استراتيجية الارتداد]]
* [[استراتيجية تداول الأخبار]]
* [[استراتيجية التداول اللحظي]]
* [[استراتيجية بولينجر باند]]
* [[استراتيجية RSI]]
* [[استراتيجية MACD]]
* [[استراتيجية Ichimoku Kinko Hyo]]
* [[استراتيجية الدعم والمقاومة]]
* [[استراتيجية التداول الموسمي]]
* [[استراتيجية التداول المتأرجح]]
* [[استراتيجية تداول الاتجاه]]


لفهم CommonJS بشكل أعمق، من المفيد استكشاف استراتيجيات وتقنيات متقدمة:
== التحليل الفني والتحليل الأساسي ==


*   '''التحميل المتزامن (Synchronous Loading):'''  CommonJS تستخدم التحميل المتزامن، مما يعني أن عملية الاستيراد تحظر التنفيذ حتى يتم تحميل الوحدة.  هذا يمكن أن يؤدي إلى مشاكل في الأداء في بعض الحالات.
* [[التحليل الفني]]
*   '''الاستيراد الدوري (Circular Dependencies):'''  يحدث الاستيراد الدوري عندما تعتمد وحدتان على بعضهما البعض بشكل مباشر أو غير مباشر.  يمكن أن يؤدي ذلك إلى أخطاء أو سلوك غير متوقع.
* [[التحليل الأساسي]]
*   '''التحسينات:''' توجد تقنيات لتحسين أداء CommonJS، مثل استخدام [[Caching]] وتقليل عدد الاستيرادات.
* [[أنماط الشموع اليابانية]]
* [[مؤشرات التداول]]
* [[التحليل الموجي]]


بالإضافة إلى ذلك، يمكن تطبيق تقنيات [[التحليل الفني]] و [[تحليل حجم التداول]] لفهم سلوك تطبيقات JavaScript التي تستخدم CommonJS، على الرغم من أنها ليست ذات صلة مباشرة بنظام الوحدات نفسه.
== تحليل حجم التداول ==


=== روابط مفيدة ===
* [[حجم التداول]]
* [[مؤشر حجم التداول على المدى المتوسط]] (MFI)
* [[مؤشر التراكم/التوزيع]] (A/D)
* [[مؤشر تشايكين للأموال]] (CMF)
* [[حجم الطلب والعرض]]


*  [[JavaScript]]
== الموارد الإضافية ==
*  [[Node.js]]
*  [[npm]]
*  [[Yarn]]
*  [[Webpack]]
*  [[Babel]]
*  [[ES Modules]]
*  [[Electron]]
*  [[الوحدات النمطية (المفاهيم العامة)]]
*  [[المكتبات في JavaScript]]
*  [[إدارة التبعيات]]
*  [[تجميع الكود]]
*  [[تحسين الأداء في JavaScript]]
*  [[تصحيح الأخطاء في JavaScript]]
*  [[اختبار الوحدات (Unit Testing)]]


=== استراتيجيات تداول الخيارات الثنائية (ذات صلة بشكل غير مباشر) ===
* [[Node.js Documentation]]:  وثائق Node.js الرسمية.
* [[CommonJS Specifications]]:  مواصفات CommonJS الرسمية.
* [[ES Modules Documentation]]: وثائق ES Modules.
* [[JavaScript Modules]]: مقال عن وحدات JavaScript.
* [[RequireJS]]:  مكتبة لإدارة الوحدات في المتصفحات.


*  [[استراتيجية مارتينجال]]
== الخلاصة ==
*  [[استراتيجية المضاعفة]]
*  [[استراتيجية المتوسط المتحرك]]
*  [[استراتيجية اختراق النطاق]]
*  [[استراتيجية البولينجر باند]]
*  [[تحليل الشموع اليابانية]]
*  [[مؤشر القوة النسبية (RSI)]]
*  [[مؤشر الماكد (MACD)]]
*  [[مؤشر ستوكاستيك]]
*  [[تحليل فيبوناتشي]]
*  [[استراتيجية تداول الأخبار]]
*  [[تداول الخيارات الثنائية على المدى القصير]]
*  [[تداول الخيارات الثنائية على المدى الطويل]]
*  [[إدارة المخاطر في الخيارات الثنائية]]
*  [[التحليل الأساسي في الخيارات الثنائية]]


[[Category:الفئة:أنظمة_وحدات_برمجية]]
CommonJS هو معيار قيم لتنظيم وإدارة التعليمات البرمجية في JavaScript. على الرغم من وجود معايير أحدث مثل ES Modules، لا يزال CommonJS مستخدمًا على نطاق واسع، خاصة في بيئات Node.js.  فهم CommonJS يساعد المطورين على كتابة تعليمات برمجية أكثر قابلية للصيانة وإعادة الاستخدام، وهو أمر بالغ الأهمية لبناء تطبيقات JavaScript واسعة النطاق.
[[Category:وحدات_JavaScript]]


== ابدأ التداول الآن ==
== ابدأ التداول الآن ==

Latest revision as of 04:09, 23 April 2025

  1. CommonJS: دليل شامل للمبتدئين

CommonJS هو معيار لتحديد وحدات JavaScript، مما يسمح بتنظيم التعليمات البرمجية وتوحيدها، خاصة في بيئات الخادم مثل Node.js. قبل CommonJS، كانت إدارة تبعيات التعليمات البرمجية في JavaScript تعاني من الفوضى، حيث كان الاعتماد على المتغيرات العامة والملفات المضمنة شائعًا، مما يؤدي إلى مشاكل في الصيانة وإعادة الاستخدام. يهدف CommonJS إلى حل هذه المشكلات من خلال توفير نظام معياري واضح ومحدد.

ما هي الوحدات (Modules)؟

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

كيف يعمل CommonJS؟

يعتمد CommonJS على مفهومين رئيسيين:

  • `require()`: تستخدم هذه الدالة لاستيراد الوحدات الأخرى. تأخذ مسارًا إلى ملف الوحدة كمعامل وتعيد الوحدة المصدرة.
  • `module.exports` أو `exports` : يستخدم هذان الكائنان لتصدير الوظائف والمتغيرات والكائنات من الوحدة الحالية لجعلها متاحة للوحدات الأخرى.

مثال بسيط:

ملف: `module_a.js`

```javascript // تصدير متغير exports.myVariable = "Hello from Module A";

// تصدير وظيفة exports.myFunction = function() {

 return "Function from Module A";

}; ```

ملف: `main.js`

```javascript // استيراد الوحدة A const moduleA = require('./module_a');

// استخدام العناصر المصدرة من الوحدة A console.log(moduleA.myVariable); // Output: Hello from Module A console.log(moduleA.myFunction()); // Output: Function from Module A ```

في هذا المثال، `require('./module_a')` يستورد الوحدة `module_a.js`. ثم يمكننا الوصول إلى المتغيرات والوظائف المصدرة باستخدام نقطة (`.`) تتبعها اسم العنصر المصدر.

الاختلافات بين `module.exports` و `exports`

  • `module.exports` : هذا هو الكائن النهائي الذي يتم تصديره من الوحدة. يمكنك إعادة تعيينه إلى كائن جديد بالكامل.
  • `exports` : هو مرجع إلى `module.exports`. في البداية، يشير إلى نفس الكائن. ومع ذلك، إذا قمت بإعادة تعيين `exports` إلى كائن جديد، فستفقد الارتباط بـ `module.exports`.

لذلك، من الأفضل استخدام `module.exports` عندما تريد تصدير كائن واحد فقط، أو عندما تريد إعادة تعيين الكائن المصدر بالكامل. استخدم `exports` لإضافة خصائص إلى الكائن المصدر الحالي.

فوائد استخدام CommonJS

  • إعادة الاستخدام: الوحدات قابلة لإعادة الاستخدام في مشاريع مختلفة، مما يوفر الوقت والجهد.
  • الصيانة: تقسيم التعليمات البرمجية إلى وحدات يجعلها أسهل في الصيانة والتحديث.
  • التنظيم: CommonJS يوفر طريقة منظمة لتنظيم التعليمات البرمجية.
  • تجنب تلوث النطاق: الوحدات تحصر المتغيرات والوظائف داخل نطاقها الخاص، مما يمنع التعارضات مع التعليمات البرمجية الأخرى.
  • التحميل الديناميكي: يمكن تحميل الوحدات عند الحاجة، مما يحسن الأداء.

CommonJS مقابل ES Modules

ES Modules (ESM) هو معيار وحدات أحدث لـ JavaScript، وهو الأصلي في المتصفحات الحديثة ويدعمه Node.js. هناك بعض الاختلافات الرئيسية بينهما:

| الميزة | CommonJS | ES Modules | |---|---|---| | طريقة الاستيراد | `require()` | `import` | | طريقة التصدير | `module.exports` / `exports` | `export` | | التحميل | متزامن | غير متزامن (افتراضيًا) | | التوافق | شائع في Node.js القديم | قياسي في المتصفحات الحديثة و Node.js |

على الرغم من أن ES Modules هو المعيار الأحدث، لا يزال CommonJS مستخدمًا على نطاق واسع، خاصة في المشاريع القديمة في Node.js.

CommonJS في سياق تداول الخيارات الثنائية

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

استراتيجيات التداول ذات الصلة

التحليل الفني والتحليل الأساسي

تحليل حجم التداول

الموارد الإضافية

الخلاصة

CommonJS هو معيار قيم لتنظيم وإدارة التعليمات البرمجية في JavaScript. على الرغم من وجود معايير أحدث مثل ES Modules، لا يزال CommonJS مستخدمًا على نطاق واسع، خاصة في بيئات Node.js. فهم CommonJS يساعد المطورين على كتابة تعليمات برمجية أكثر قابلية للصيانة وإعادة الاستخدام، وهو أمر بالغ الأهمية لبناء تطبيقات JavaScript واسعة النطاق.

ابدأ التداول الآن

سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер