ã³ã¼ãæ§é ã®ç« ã§è¦ãããã«ãã³ã¡ã³ã㯠// ã§å§ã¾ã1è¡ãããã㯠/* ... */ å½¢å¼ã®è¤æ°è¡ã¨ãããã¨ãã§ãã¾ãã
é常ã¯ãã©ã®ããã«ãããã¦ãªãã³ã¼ããåä½ããã®ãã説æããããã«ã³ã¡ã³ãã使ç¨ãã¾ãã
ä¸è¦ãã³ã¡ã³ãä»ãã¨ããã®ã¯ããã¹ããã¨ãæç½ãªããã§ãããããã°ã©ãã³ã°åå¿è ã¯ééã£ãã³ã¡ã³ãã®ä½¿ãæ¹ããããã¨ãããããã§ãã
æªãã³ã¡ã³ã
åå¿è 㯠âã³ã¼ãå ã§èµ·ãã£ã¦ãããã¨â ã説æããã®ã«ã³ã¡ã³ãã使ãå¾åãããã¾ãããã®ããã«:
// ãã®ã³ã¼ãã¯ãã®ãããªã㨠(...) ããã¦ã次㫠(...)
// ...and who knows what else...
very;
complex;
code;
ãããè¯ãã³ã¼ãã§ã¯ããã®ãã㪠â説æçãªâ ã³ã¡ã³ãã¯æå°éã«ãã¹ãã§ããçé¢ç®ã«ãããããªãã¦ãçè§£ããããã³ã¼ãã«ããã¹ãã§ãã
ããã«é¢ãã¦ç´ æ´ãããã«ã¼ã«ãããã¾ããâãããã³ã¼ããã³ã¡ã³ããå¿ è¦ã¨ããã»ã©ä¸æçãªå ´åãæ¸ãç´ãã¹ãããããã¾ããâã
ã¬ã·ã: æ©è½ãæ¬ãåºã
ãã®ããã«ãã³ã¼ãã®ä¸é¨ã颿°ã«ç½®ãæãããã¨ã¯æçãªå ´åãããã¾ã:
function showPrimes(n) {
nextPrime:
for (let i = 2; i < n; i++) {
// i ãç´ æ°ã§ãããããã§ãã¯ãã
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ãããã¾ããããã¯ééããªãå¦ã¶ä¾¡å¤ãããã¾ãã
- 颿°ã®ä½¿ç¨æ¹æ³ãææ¸åãã
- 颿°ã®ææ¸åã®ããã®ç¹å¥ãªæ§æ 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 ã®ãããªå¤ãã®ã¨ãã£ã¿ãåæ§ã«ããããè§£éãããã¨ãã§ãããããã使ã£ã¦ãªã¼ãã³ã³ããªã¼ããèªåã³ã¼ããã§ãã¯ãæä¾ãã¾ãã
ã¾ããã³ã¡ã³ãããHTMLããã¥ã¡ã³ããçæãããã¨ãã§ãã JSDoc 3 ã®ãããªãã¼ã«ãããã¾ããJSDocã«é¢ããããå¤ãã®æ å ±ã¯ http://usejsdoc.org/ ã§èªããã¨ãã§ãã¾ãã
- ã¿ã¹ã¯ããã®ããã«è§£æ±ºãããã®ã¯ãªããï¼
-
æ¸ããã¦ãããã¨ã¯éè¦ã§ããããä½ãèµ·ãã£ã¦ãããã¨ãçè§£ããããã«ã¯ãæ¸ããã¦ããªãã㨠ãããéè¦ããããã¾ããããªããã®ã¿ã¹ã¯ããã®æ¹æ³ã§æ£ãã解決ãããã®ãï¼ã³ã¼ãã¯åçãã¾ããã
ãããã®ã¿ã¹ã¯ã解決ããæ¹æ³ã夿°ããå ´åããªããããé¸ãã ã®ã§ãããï¼ç¹ã«ããããæãæç½ãªãã®ã§ã¯ãªãã¨ãã
ãã®ãããªã³ã¡ã³ãããªããã°ã次ã®ãããªç¶æ³ãèµ·ãããã¾ã:
- ããªã(ãããã¯åå) ã¯ããããåã«æ¸ãããã³ã¼ããéããããã âæºæé©â ã§ãããã¨ã確èªãã¾ãã
- ããªãã¯èãã¾ã: âç§ã¯ãªãã¦æãã ã£ãã®ããããã¦ä»ã¯ã©ãã ãè³¢ããªã£ãã®ãâããã㦠âããæç½ã§æ£ããâ æ¹æ³ã使ã£ã¦æ¸ãç´ãã¾ãã
- ⦠æ¸ãç´ãããã¨ããæãã¯è¯ãã£ãã§ãããããããã®ããã»ã¹ã®ä¸ã§ããªã㯠âããæç½ãªâ 解決çã¯å®éã«ã¯ä¸ååã§ãããã¨ã«æ°ä»ãã¾ããå®ã¯æ¢ã«ä»¥å試ã¿ããã¨ã§ããããªããã¡ã ã£ãã®ãã¼ãããè¦ãã¦ãã¾ããæçµçã«å ã®æ£ããæ¹æ³ã«æ»ãã¾ãããããã®åæéãç¡é§ã«ãªãã¾ããã
解決çã説æããã³ã¡ã³ãã¯ã¨ã¦ãéè¦ã§ãããããã¯æ£ããæ¹åã§éçºãç¶ããã®ã«å½¹ç«ã¡ã¾ãã
- ã³ã¼ãã®æãã«ããç¹å¾´ã¯ããï¼ãããã¯ã©ãã§ä½¿ãããï¼
-
ãããã³ã¼ããæãã«ãããç´ãããããã®ãããå ´åã«ã¯ãã£ã¨ã³ã¡ã³ããã価å¤ãããã¾ãã
ãµããª
ããéçºè ã§ãããã¨ã示ãéè¦ãªææ¨ã¯ãã³ã¡ã³ãã§ã: ä½ãæ¸ãããã¾ããä½ãæ¸ããªãããããææ¨ã¨ãªãã¾ãã
ããã³ã¡ã³ãã¯ã³ã¼ãã䏿ãç¶æããæéãçµã£ãå¾ã§ããã«æ»ã£ãã¨ãã«ã广çã«ä½¿ããããã«ãã¾ãã
ã³ã¡ã³ããããã¨:
- å ¨ä½çãªã¢ã¼ããã¯ãã£ã髿°´æºã®æ¦èª¬
- 颿°ã®ä½¿ç¨æ¹æ³
- éè¦ãªè§£æ±ºçãç¹ã«ãããä¸ç®çç¶ã§ãªãã¨ã
ã³ã¡ã³ããé¿ãã:
- ã³ã¡ã³ãã¯ã âã©ã®ããã«ã³ã¼ããåããâ ãã㦠âãããä½ããããâ ãä¼ãããã®ã§ãã
- ã³ã¡ã³ããå¿ è¦ã¨ããªãã»ã©ã·ã³ãã«ã§èªæãªã³ã¼ãã«ãããã¨ãä¸å¯è½ãªå ´åã«ã®ã¿ãã³ã¡ã³ããå ¥ãã¾ãã
ã³ã¡ã³ãã¯JSDoc3ã®ãããªèªåææ¸åãã¼ã«ã«ã使ããã¾ã: ãããã¯ã³ã¡ã³ããè§£éããHTML-docsï¼ã¾ãã¯å¥ã®å½¢å¼ã®ææ¸ï¼ãçæãã¾ãã
ã³ã¡ã³ã
<code>ã¿ã°ã使ã£ã¦ãã ãããè¤æ°è¡ã®å ´åã¯<pre>ãã10è¡ãè¶ ããå ´åã«ã¯ãµã³ãããã¯ã¹ã使ã£ã¦ãã ãã(plnkr, JSBin, codepenâ¦)ã