ÙÙ
ا ÙØ¹ÙÙ
Ù
٠اÙÙØµÙ <info: structure> Ø ÙÙ
Ù٠أ٠تÙÙÙ Ø§ÙØªØ¹ÙÙÙØ§Øª سطر ÙØ§ØØ¯: Ø¨Ø¯Ø¡ÙØ§ Ù
Ù // Ù multiline: / * ... * /.
ÙØ³ØªØ®Ø¯Ù ÙØ§ عادة٠ÙÙØµÙ ÙÙÙ ÙÙ٠اذا ÙØ¹Ù Ù Ø§ÙØ±Ù ز.
ÙÙÙÙÙØ© Ø§ÙØ£ÙÙÙ Ø ÙØ¯ ÙÙÙÙ Ø§ÙØªØ¹ÙÙÙ ÙØ§Ø¶ØÙا Ø ÙÙ٠اÙ٠بتدئÙÙ ÙÙ Ø§ÙØ¨Ø±Ù جة ØºØ§ÙØ¨Ùا ٠ا ÙØ³ØªØ®Ø¯Ù ÙÙÙØ§ بشÙ٠خاطئ.
Ø§ÙØªØ¹ÙÙÙØ§Øª Ø§ÙØ³Ùئة
ÙÙ Ù٠اÙ٠بتدئÙ٠إÙÙ Ø§Ø³ØªØ®Ø¯Ø§Ù Ø§ÙØªØ¹ÙÙÙØ§Øª ÙØ´Ø±Ø â٠ا ÙØ¬Ø±Ù Ù٠اÙÙÙØ¯â. Ù Ø«ÙÙ:
// This code will do this thing (...) and that thing (...)
// ...and who knows what else...
very;
complex;
code;
ÙÙÙÙ Ù٠٠دÙÙØ© Ø¬ÙØ¯Ø© Ø ÙØ¬Ø¨ أ٠تÙÙÙ ÙÙ ÙØ© ÙØ°Ù Ø§ÙØªØ¹ÙÙÙØ§Øª âØ§ÙØªÙØ³ÙØ±ÙØ©â Ø¶Ø¦ÙÙØ©. عÙÙ Ù ØÙ Ù Ø§ÙØ¬Ø¯ Ø ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ Ø§ÙØ±Ù ز سÙ٠اÙÙÙ٠بدÙÙÙØ§.
ÙÙØ§Ù ÙØ§Ø¹Ø¯Ø© رائعة ØÙ٠ذÙÙ: âØ¥Ø°Ø§ ÙØ§Ù Ø§ÙØ±Ù ز ØºÙØ± ÙØ§Ø¶Ø Ø¥ÙÙ ØØ¯ Ø£ÙÙ ÙØªØ·Ùب تعÙÙÙÙØ§ Ø ÙØ±Ø¨Ù ا ÙØ¬Ø¨ إعادة ÙØªØ§Ø¨ØªÙ Ø¨Ø¯ÙØ§Ù ٠٠ذÙÙâ.
اÙÙØµÙØ©: Ù٠بع٠٠إعادة اعتبار ÙÙØ¯ÙاÙ
Ù٠بعض Ø§ÙØ£ØÙا٠ÙÙÙ٠٠٠اÙÙ ÙÙØ¯ Ø§Ø³ØªØ¨Ø¯Ø§Ù ÙØ·Ø¹Ø© Ø§ÙØªØ¹ÙÙ٠ات Ø§ÙØ¨Ø±Ù Ø¬ÙØ© Ø¨Ø¯Ø§ÙØ© Ø Ù٠ا ÙÙÙ:
function showPrimes(n) {
nextPrime:
for (let i = 2; i < n; i++) {
// check if i is a prime number
for (let j = 2; j < i; j++) {
if (i % j == 0) continue nextPrime;
}
alert(i);
}
}
Ø§ÙØ¨Ø¯ÙÙ Ø§ÙØ£ÙØ¶Ù Ø Ù
ع Ø¯Ø§ÙØ© Ù
ØØ³Ùبة
isPrime:
function showPrimes(n) {
for (let i = 2; i < n; i++) {
if (!isPrime(i)) continue;
alert(i);
}
}
function isPrime(n) {
for (let i = 2; i < n; i++) {
if (n % i == 0) return false;
}
return true;
}
Ø§ÙØ¢Ù ÙÙ ÙÙÙØ§ ÙÙÙ Ø§ÙØ±Ù ز بسÙÙÙØ©. ØªØµØ¨Ø Ø§ÙÙØ¸ÙÙØ© ÙÙØ³Ùا Ø§ÙØªØ¹ÙÙÙ. ÙØ³Ù Ù ÙØ°Ø§ Ø§ÙØ±Ù ز * ÙØµÙ٠ذات٠*.
اÙÙØµÙØ©: Ø¥ÙØ´Ø§Ø¡ ÙØ¸Ø§Ø¦Ù
ÙØ¥Ø°Ø§ ÙØ§Ù ÙØ¯ÙÙØ§ âØµÙØØ© تعÙÙ٠ات Ø¨Ø±Ù Ø¬ÙØ©â Ø·ÙÙÙØ© Ù Ø«Ù ÙØ°Ø§:
// here we add whiskey
for(let i = 0; i < 10; i++) {
let drop = getWhiskey();
smell(drop);
add(drop, glass);
}
// here we add juice
for(let t = 0; t < 3; t++) {
let tomato = getTomato();
examine(tomato);
let juice = press(tomato);
add(juice, glass);
}
// ...
بعد ذÙÙ Ø ÙØ¯ ÙÙÙÙ Ù Ù Ø§ÙØ£Ùض٠تغÙÙØ±Ùا Ø¥ÙÙ Ø¯ÙØ§Ù Ù Ø«Ù:
addWhiskey(glass);
addJuice(glass);
function addWhiskey(container) {
for(let i = 0; i < 10; i++) {
let drop = getWhiskey();
//...
}
}
function addJuice(container) {
for(let t = 0; t < 3; t++) {
let tomato = getTomato();
//...
}
}
٠رة Ø£Ø®Ø±Ù Ø ØªØ®Ø¨Ø± اÙÙØ¸Ø§Ø¦Ù ÙÙØ³Ùا ع٠ا ÙØØ¯Ø«. ÙØ§ ÙÙØ¬Ø¯ أ٠تعÙÙÙ. ÙÙØ°Ù٠بÙÙØ© اÙÙÙØ¯ Ø£ÙØ¶Ù Ø¹ÙØ¯ Ø§ÙØªÙسÙÙ . ٠٠اÙÙØ§Ø¶Ø ٠ا تÙÙ٠ب٠ÙÙ ÙØ¸ÙÙØ© Ø Ù٠ا ØªØØªØ§Ø¬Ù Ù٠ا ØªØ¹ÙØ¯Ù.
Ù٠اÙÙØ§Ùع Ø ÙØ§ ÙÙ ÙÙÙØ§ ØªØ¬ÙØ¨ Ø§ÙØªØ¹ÙÙÙØ§Øª âØ§ÙØªÙØ³ÙØ±ÙØ©â ØªÙ Ø§Ù ÙØ§. ÙÙØ§Ù Ø®ÙØ§Ø±Ø²Ù ÙØ§Øª Ù Ø¹ÙØ¯Ø©. ÙÙÙØ§Ù âØªØ¹Ø¯ÙÙØ§Øªâ ذÙÙØ© ÙØ£ØºØ±Ø§Ø¶ Ø§ÙØªØØ³ÙÙ. ÙÙÙ٠بشÙÙ Ø¹Ø§Ù ÙØ¬Ø¨ Ø£Ù ÙØØ§ÙÙ Ø§ÙØÙØ§Ø¸ عÙ٠اÙÙÙØ¯ Ø¨Ø³ÙØ·Ùا ÙØµÙÙÙØ§ ذاتÙÙØ§.
تعÙÙÙØ§Øª Ø¬ÙØ¯Ø©
ÙØ°Ø§ Ø Ø§ÙØªØ¹ÙÙÙØ§Øª Ø§ÙØªÙØ¶ÙØÙØ© عادة ٠ا تÙÙÙ Ø³ÙØ¦Ø©. ٠ا ÙÙ Ø§ÙØªØ¹ÙÙÙØ§Øª Ø§ÙØ¬ÙدةØ
- ÙØµÙ Ø§ÙØ¹Ù ارة
- ØªÙØ¯ÙÙ ÙØ¸Ø±Ø© عا٠ة عاÙÙØ© اÙ٠ستÙ٠عÙ٠اÙÙ ÙÙÙØ§Øª Ø ÙÙÙÙÙØ© ØªÙØ§Ø¹ÙÙØ§ Ø Ù٠ا Ù٠تدÙÙ Ø§ÙØªØÙÙ Ù٠اÙÙ ÙØ§Ù٠اÙ٠ختÙÙØ© ⦠باختصار â Ø±Ø¤ÙØ© عÙÙ Ø§ÙØ·Ø§Ø¦Ø± ÙÙØ±Ù ز. ÙÙØ§Ù ÙØºØ© خاصة [UML] (http://wikipedia.org/wiki/Unified_Modeling_Language) ÙØ¥Ùشاء ٠خططات Ù Ø¹Ù Ø§Ø±ÙØ© عاÙÙØ© اÙ٠ستÙÙ ØªØ´Ø±Ø Ø§ÙÙÙØ¯. Ø¨Ø§ÙØªØ£ÙÙØ¯ تستØÙ Ø§ÙØ¯Ø±Ø§Ø³Ø©.
- ٠عÙ٠ات ÙØ¸ÙÙØ© اÙÙØ«ÙÙØ© ÙØ§Ø³ØªØ®Ø¯Ø§Ù ÙØ§
- ÙÙØ§Ù بÙÙØ© خاصة [JSDoc] (http://en.wikipedia.org/wiki/JSDoc) ÙØªÙØ«ÙÙ Ø¯Ø§ÙØ©: Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù Ø Ø§Ù٠عÙ٠ات Ø Ø§ÙÙÙÙ Ø© اÙ٠رتجعة.
عÙ٠سبÙ٠اÙ٠ثاÙ:
/**
* Returns x raised to the n-th power.
*
* @param {number} x The number to raise.
* @param {number} n The power, must be a natural number.
* @return {number} x raised to the n-th power.
*/
function pow(x, n) {
...
}
ØªØ³Ù Ø ÙÙØ§ ÙØ°Ù Ø§ÙØªØ¹ÙÙÙØ§Øª بÙÙÙ Ø§ÙØºØ±Ø¶ ٠٠اÙÙØ¸ÙÙØ© ÙØ§Ø³ØªØ®Ø¯Ø§Ù ÙØ§ Ø¨Ø§ÙØ·Ø±ÙÙØ© Ø§ÙØµØÙØØ© دÙ٠اÙÙØ¸Ø± ÙÙ Ø§ÙØªØ¹ÙÙ٠ات Ø§ÙØ¨Ø±Ù Ø¬ÙØ© Ø§ÙØ®Ø§ØµØ© Ø¨ÙØ§.
باÙÙ ÙØ§Ø³Ø¨Ø© Ø ÙÙ ÙÙ ÙÙØ¹Ø¯Ùد ٠٠اÙÙ ØØ±Ø±Ù٠٠ث٠[WebStorm] (https://www.jetbrains.com/webstorm/) ÙÙÙ ÙÙ Ø£ÙØ¶Ùا ÙØ§Ø³ØªØ®Ø¯Ø§Ù ÙÙ ÙØªÙÙÙØ± Ø§ÙØ¥ÙÙ Ø§Ù Ø§ÙØªÙÙØ§Ø¦Ù ÙØ¨Ø¹Ø¶ Ø§ÙØªØÙÙ Ø§ÙØªÙÙØ§Ø¦Ù Ù Ù Ø§ÙØªØ¹ÙÙ٠ات Ø§ÙØ¨Ø±Ù Ø¬ÙØ©.
Ø£ÙØ¶Ùا Ø ÙÙØ§Ù Ø£Ø¯ÙØ§Øª ٠ث٠[JSDoc 3] (https://github.com/jsdoc3/jsdoc) ÙÙ ÙÙÙØ§ Ø¥ÙØ´Ø§Ø¡ ÙØ«Ø§Ø¦Ù HTML Ù Ù Ø§ÙØªØ¹ÙÙÙØ§Øª. ÙÙ ÙÙÙ ÙØ±Ø§Ø¡Ø© اÙÙ Ø²ÙØ¯ ٠٠اÙ٠عÙÙ٠ات ØÙÙ JSDoc عÙÙ http://usejsdoc.org/.
- Ù٠اذا تØÙ اÙÙ ÙÙ Ø© Ø¨ÙØ°Ù Ø§ÙØ·Ø±ÙÙØ©Ø
-
٠ا ÙÙ Ù ÙØªÙب Ù ÙÙ . ÙÙ٠٠ا ÙÙ * ØºÙØ± * Ù ÙØªÙب ÙØ¯ ÙÙÙÙ Ø£ÙØ«Ø± Ø£ÙÙ ÙØ© ÙÙÙ٠٠ا ÙØØ¯Ø«. Ù٠اذا ÙØªÙ ØÙ اÙÙ ÙÙ Ø© Ø¨ÙØ°Ù Ø§ÙØ·Ø±ÙÙØ© Ø¨Ø§ÙØ¶Ø¨Ø·Ø اÙÙÙØ¯ ÙØ§ ÙØ¹Ø·Ù إجابة.
إذا ÙØ§Ùت ÙÙØ§Ù Ø·Ø±Ù Ø¹Ø¯ÙØ¯Ø© ÙØÙ Ø§ÙÙ ÙÙ Ø© Ø ÙÙ٠اذا ÙØ°Ù اÙÙ ÙÙ Ø©Ø Ø®Ø§ØµØ© Ø¹ÙØ¯Ù ا ÙØ§ ÙÙÙÙ Ø§ÙØ£Ù ر Ø§ÙØ£Ùثر ÙØ¶ÙØÙا.
بدÙÙ ÙØ°Ù Ø§ÙØªØ¹ÙÙÙØ§Øª ÙÙÙ٠اÙÙØ¶Ø¹ Ø§ÙØªØ§ÙÙ Ù Ù ÙÙØ§Ù:
- Ø£ÙØª (أ٠ز٠ÙÙÙ) ØªÙØªØ Ø§ÙØ´Ùرة اÙÙ ÙØªÙبة Ù ÙØ° بعض اÙÙÙØª Ø ÙØªØ±Ù Ø£ÙÙØ§ âØ¯Ù٠اÙ٠ستÙÙ Ø§ÙØ£Ù Ø«Ùâ.
- Ø£ÙØª تÙÙØ±: âÙÙ ÙÙØª غبÙÙØ§ Ù٠ذÙ٠اÙÙÙØª Ø ÙÙÙ Ø£ÙØ§ أذÙÙ Ø§ÙØ¢Ùâ Ø ÙØ£Ø¹Ø¯ اÙÙØªØ§Ø¨Ø© Ø¨Ø§Ø³ØªØ®Ø¯Ø§Ù Ù ØªØºÙØ± âØ£ÙØ«Ø± ÙØ¶ÙØÙا ÙØµØØ©â.
- â¦ ÙØ§Ùت Ø§ÙØ±ØºØ¨Ø© Ù٠إعادة اÙÙØªØ§Ø¨Ø© Ø¬ÙØ¯Ø©. ÙÙÙÙ ÙÙ ÙØ°Ù Ø§ÙØ¹Ù ÙÙØ© Ø ØªØ±Ù Ø£Ù Ø§ÙØÙ âØ§ÙØ£Ùثر ÙØ¶ÙØÙØ§â ØºÙر Ù ÙØ¬Ùد باÙÙØ¹Ù. ØØªÙ Ø£ÙÙ ØªØªØ°ÙØ± Ù٠اذا Ø ÙØ£Ù٠جربت٠باÙÙØ¹Ù Ù ÙØ° ÙØªØ±Ø© Ø·ÙÙÙØ©. Ø£ÙØª ØªØ¹ÙØ¯ Ø¥ÙÙ Ø§ÙØ¨Ø¯ÙÙ Ø§ÙØµØÙØ Ø ÙÙ٠اÙÙÙØª ضاع.
Ø§ÙØªØ¹ÙÙÙØ§Øª Ø§ÙØªÙ ØªØ´Ø±Ø Ø§ÙØÙ Ù ÙÙ Ø© جدا. Ø£ÙÙØ§ تساعد عÙÙ Ù ÙØ§ØµÙØ© Ø§ÙØªÙÙ ÙØ© Ø¨Ø§ÙØ·Ø±ÙÙØ© Ø§ÙØµØÙØØ©.
- Ø£Ù Ù ÙØ²Ø§Øª Ø®ÙÙØ© ÙÙÙÙØ¯Ø Ø£ÙÙ ÙØªÙ Ø§Ø³ØªØ®Ø¯Ø§Ù ÙØ§Ø
-
إذا ÙØ§Ù Ø§ÙØ±Ù ز ÙØØªÙ٠عÙÙ Ø£Ù Ø´ÙØ¡ Ø®ÙÙ ÙØºÙر بدÙÙÙ Ø Ù٠٠اÙÙ Ø¤ÙØ¯ Ø£ÙÙ ÙØ³ØªØÙ Ø§ÙØªØ¹ÙÙÙ.
Ù ÙØ®Øµ
Ù Ù Ø§ÙØªØ¹ÙÙÙØ§Øª اÙÙØ§Ù Ø© ÙÙ Ø·ÙØ± Ø¬ÙØ¯ Ø§ÙØªØ¹ÙÙÙØ§Øª: ØØ¶ÙرÙÙ ÙØØªÙ ØºÙØ§Ø¨ÙÙ .
ØªØ³Ù Ø ÙÙØ§ Ø§ÙØªØ¹ÙÙÙØ§Øª Ø§ÙØ¬Ùدة Ø¨Ø§ÙØÙØ§Ø¸ عÙÙ Ø§ÙØ´Ùرة Ø¬ÙØ¯Ùا Ø ÙØ§ÙØ¹ÙØ¯Ø© Ø¥ÙÙÙØ§ بعد ÙØªØ±Ø© ØªØ£Ø®ÙØ± ÙØ§Ø³ØªØ®Ø¯Ø§Ù ÙØ§ بشÙÙ Ø£ÙØ«Ø± ÙØ¹Ø§ÙÙØ©.
** تعÙÙÙ ÙØ°Ø§: **
- Ø§ÙØ¹Ù ارة Ø§ÙØ´Ø§Ù ÙØ© Ø Ù ÙØ¸Ø± عاÙ٠اÙ٠ستÙÙ.
- استخدا٠اÙÙØ¸ÙÙØ©.
- ØÙÙÙ Ù ÙÙ Ø© خاصة Ø¹ÙØ¯Ù ا ÙØ§ تÙÙÙ ÙØ§Ø¶ØØ© عÙ٠اÙÙÙØ±.
** ØªØ¬ÙØ¨ Ø§ÙØªØ¹ÙÙÙØ§Øª: **
- ÙØ®Ø¨Ø± âÙÙÙ ÙØ¹Ù Ù Ø§ÙØ±Ù زâ Ù â٠اذا ÙÙØ¹Ùâ.
- ضعÙÙ ÙÙØ· إذا ÙØ§Ù ٠٠اÙ٠ستØÙ٠جع٠اÙÙÙØ¯ Ø¨Ø³ÙØ·Ùا ÙØµÙÙÙØ§ ذاتÙÙØ§ بØÙØ« ÙØ§ ÙØªØ·ÙبÙÙ .
ØªÙØ³ØªØ®Ø¯Ù Ø§ÙØªØ¹ÙÙÙØ§Øª Ø£ÙØ¶Ùا ÙÙ Ø£Ø¯ÙØ§Øª Ø§ÙØªÙØ«ÙÙ Ø§ÙØªÙÙØ§Ø¦Ù ٠ث٠JSDoc3: ÙÙÙ ÙÙØ±Ø¤ÙÙÙØ§ ÙÙÙØ´Ø¦ÙÙ Ù Ø³ØªÙØ¯Ø§Øª HTML (Ø£Ù Ù Ø³ØªÙØ¯Ø§Øª Ø¨ØªÙØ³Ù٠آخر).
Ø§ÙØªØ¹ÙÙÙØ§Øª
<code>Ø ÙÙÙÙØ«Ùر Ù Ù Ø§ÙØ³Ø·Ùر استخدÙ<pre>Ø ÙÙØ£Ùثر Ù Ù 10 Ø³Ø·ÙØ± استخد٠(plnkr, JSBin, codepenâ¦)