ã³ã¼ãã¬ãã¥ã¼ã«ã¤ãã¦
ãã®ã¨ããç«ã¦ç¶ãã«ã³ã¼ãã¬ãã¥ã¼ã«ã¤ãã¦è©±ãããæ©ä¼ããã£ãã®ã§ ç§ãçµé¨ããæé«ã®ã¬ãã¥ã¼ä½å¶ãç°¡åã«ã¾ã¨ãã¦ãããã¨æãã¾ãã
- å©ç¹ 使 å¿ è¦ã ä½ãå¬ããã®ã
- ã³ã¹ã ãã¾ãåãããã«ã¯ä½ãå¿ è¦ã
- ç´°ããéå¶æ¹æ³
ã¯ã£ããè¨ã£ã¦å½ããåã®äºããæ¸ãã¾ããã ç§ã彿ã¯å½ããåã®ãã¨ã ã¨æã£ã¦ãã¾ãããããç¹ã«æ°ã«ããã¦ããªãã£ãã®ã§ãã ãã è¦èããã¨ããã«ããã¨ããããã¡ããã¨ãã£ã¦ããã¨ããã¯ã¨ã¦ãå°ãªãããã§ãã ã¦ã©ã¼ã«ã¹ããªã¼ãç³»ã®ãã¡ã³ãã§ãããã«ã¬ãã¥ã¼ãã¦ãªãã¨ãã©ããããã¨ãªãã§ãããã ã ããæã
ä¼ç¤¾ãå¹ã£é£ã¶ãã§ããâ¦
çµå±ã¯ãããã ãããã åè«ãè¨ã£ã¦ããã¡ããã¨ãããã®ããããä¸ç¹ã«å°½ãã¦ãã¾ã話ãªã®ã§ããâ¦
å©ç¹
ã¬ãã¥ã¼ãä½ã®ããã«ããããããã¯ã¾ã第ä¸ã«èªåéã®æ¸ãã¦ããã³ã¼ãã«æ½å¨ãããã°ã«ããæå¤±ãã§ããã ãå°ãªããããã¨ã§ãããã åã·ã¹ãã ããã©ã¼ãã«ã¡ã½ããã«ããéçè§£æãèªåãã¹ããç¹ã« QuickCheck ãªã©ã®ç¶²ç¾
ãã¹ããªã©ã«ããåçæ¤æ»ãäºåä»®æ³ã·ãã¥ã¬ã¼ã·ã§ã³ãªã©æ§ã
ãªæ¹æ³ãããã¾ãããã©ããä¸é·ä¸çããããããããã£ã¦ããã°å®å¿ã¨è¨ããã¨ã¯ããã¾ããã ç¹ã«éèç³»ãªã©ã® expect unexpected ãªä¸çã®å ´åããããã®åã°æ©æ¢°åããããã¼ã«ãææ³ã«ã®ã¿é ¼ã£ãããã°ã©ã ã®å質ä¿è¨¼ã¯ãæ³å®å¤ã®äºæ
ãçºçããå ´åã¨ã¦ãèãã ãã¡ãããããã®æ¹æ³ã¯éè¦ã§ãããã³ã¹ãã®è¨±ãç¯å²ã§è¡ãã¹ãã§ããããã¯ãæçµçã«ã¯æè»ãªçºæ³ãæã¤äººéã«ããããã°ã©ã ã®æ¤æ»ãã¤ã¾ãã³ã¼ãã¬ãã¥ã¼ãå¿
è¦ã«ãªãã¾ãã ãã¡ããããã¨ã¦ãªããå®å
¨ãªä¿è¨¼ãä¸ãããã®ã§ã¯ããã¾ãããæçµçã«ã¯éç¨æã®åé·åã人éã«ããç£è¦ãä¸å¯æ¬ ã§ãã
ã¬ãã¥ã¼ã¯ãã°ãäºåã«è¦ã¤ããã ãã§ãªãããäºãã®æ¸ããã³ã¼ãã®æ¹è©ãéãã¦ã®ããã°ã©ã ã®å¹çåãå¯èªæ§åä¸ãã¾ãã¡ã³ãã¼ã®ã³ã¼ãæè½ã®ä¼éã«ãã¨ã¦ãæå¹ã§ãã è¯ãã³ã¼ãã®æ¸ãæ¹ã¨ãããã®ã¯ãªããªãææ¸åãã«ãããããã«ãããã®ã§ãã ãã®ãããªææ¸ãæ¢ã«æ¢ã«ããã°ããã§ããããã¯ããããã£ãè·äººçæè½ã¯è·äººéã®ã³ãã¥ãã±ã¼ã·ã§ã³ããä»ã®è·äººã®ä»äºãè¦ããã¨ã§çãã®ãä¸çªã§ã¯ãªãã§ããããã èªåã®æ¸ããã³ã¼ããã¬ãã¥ã¼ãããæ¬ ç¹ãææããããã¨ã大åã§ããã ã¬ãã¥ã¼ã®ããã«ä»äººã®ã³ã¼ããèªãã®ããä»äººã®æè½ãçããããã£ã³ã¹ã§ãã
ã³ã¹ã
ã¬ãã¥ã¼ã®ã³ã¹ãã¯é«ããã¾ããã®ãã¨ãèªèãã¦ãã ããã ç§ã®çµé¨ã§ã¯æ¬å½ã«çé¢ç®ãªã¬ãã¥ã¼ãè¡ãã¨ä»äºæéã®30%ã¯ã³ã³ã¹ã¿ã³ãã«ã¬ãã¥ã¼ã«æã£ã¦ãããã¾ããã ãã®éã¯å¤è¦çã«ã¯ãªããæ°ããã³ã¼ããä½ãããªããã¨ã«ãªãã¾ãã ã¤ã¾ãã¬ãã¥ã¼ãªãã«ã³ã¼ããã²ãããæ¸ãã¦ããå ´åã«æ¯ã¹(çãè¦æ¹ãããã°)70%ããã¢ã¦ãããããç¡ããã¨ã«ãªãã¾ãã ããã¯ããä¸å±¤é¨ãã¬ãã¥ã¼ã«é¢ããã³ã¹ããçãè¦ã¦ããå ´åãã¬ãã¥ã¼ã¯å
¨ãæ©è½ããªããã¨ãæå³ãã¾ãã 誰ãè©ä¾¡ããããªããããªãã¨ã«æéãå²ãã§ãããã ã¬ãã¥ã¼ããã¨è¨ããã¦ãé©å½ã«èªãã§ã¯ãããã¾ããã§çµããã§ãã ããã§ã¯ã¬ãã¥ã¼ãè¡ãã½ããã¦ã§ã¢ã®å質ãä¸ããã¨ããç®æ¨ã¯ã¾ãéæã§ãã¾ããã
è¯ãã¬ãã¥ã¼ä½å¶ãç¯ãä¸ããã«ã¯ã¾ãã¬ãã¥ã¼ã«ãããã³ã¹ããçè§£ããããã¦ã¬ãã¥ã¼ãè¡ãå©ç¹ãããã¦ããã°ã©ããã¬ãã¥ã¼ãè¡ããã¨ã奨å±ãã¦ããã¨ãããã¨ãç©æ¥µçã«å¨ç¥ããå¿
è¦ãããã¾ãã ç§ã®å±
ãæã§ã¯é¢æ¥ã®æç¹ããã¦ãã¯ã³ã¼ãã¬ãã¥ã¼ãéè¦è¦ããã¨è¨ããã¦ãã¾ããããå
¥ã£ã¦ããããã«ãã³ã¼ãã¬ãã¥ã¼ã¯å¿
è¦ãªæ¥åã§ããããã®éãã³ã¼ããæ¸ãã¦ããªãããã¨ãã£ã¦ä¼ç¤¾ã¯åã®æ¥ç¸¾ã軽ãè¦ããã¯ããªããã¨ãããã¨ãä½åº¦ãè¨ããã¾ããã
ã¬ãã¥ã¼ä½å¶
VCS ã§è¡ãã¬ãã¥ã¼
å¾ã«æ¸ãã¾ããã¬ãã¥ã¼ã¯æ¥ã
ã®æ¥åã®ä¸ã®çåãæ°ã¥ããç¹ã®èç©ã§ãã ã§ãããã§ããã ãæ°è»½ã«ã¬ãã¥ã¼ãè¡ããããè¨é²ãã¦ããããã¼ã«ãå¿
è¦ã ã¨æãã¾ãã ç§ãç¥ã£ã¦ããã¨ããã§ã¯åã«æ®æ®µã®éçºã§ä½¿ã£ã¦ãã VCS ã§ãããè¡ãªã£ã¦ãã¾ããã ã¤ã¾ããã³ã¼ãã®ä¸ã«ã³ã¡ã³ãã®å½¢ã§ã¬ãã¥ã¼ãæ¸ãããããã³ãããããã ããã¦ããããæ´¾çããè°è«ãå
¨ã¦ã³ã¼ãä¸ã®ã³ã¡ã³ãã§è¡ãã¾ãã (ãã¡ããè¤éãªè©±ã«ãªã£ãå ´åã¯ç´æ¥ã®è°è«ãè¡ããåè°ã®çµæã ããè¨ãã¦ããããªã©ãå½ç¶ããã§ãããã) ã¬ãã¥ã¼ã¨è°è«ãçµãã£ãéã«ã¯ãã®ã³ã¡ã³ããæ¶ãã(ãããã«ãã VCS ã«è¨é²ã¯æ®ã£ã¦ãã¾ã)ãæç¨ãªæ
å ±ã ã¨å¤æãããã°æ®éã®ã³ã¡ã³ãã¨ãã¦æ®ããããã¨ã«ãªãã¾ãã ãã®æ¹æ³ã¯ VCS ã¯ã¾ãçãã使ã£ã¦ããããã§ãããããç¹å¥ã«ã¬ãã¥ã¼ã®ããã®ãã¼ã«ãå¿
è¦ãªãã®ãè¯ãã§ããã
ã¬ãã¥ã¼ã®ããã« bug tracker ã task management system ã使ãã®ã¯ãã¾ãè¯ãã¨ã¯æãã¾ããã ã¬ãã¥ã¼ã§ã¯é常ã«ç´°ããç¹ãè°è«ããããã¨ãããããããä»äºã®ã¿ã¹ã¯ã®ä¸ãã±ããã«ç¸å½ããã¨ã¯ã¨ã¦ãæããªãããã§ãã ä¾ãã°ããã®å¤æ°åã¯çããã¦è¯ãããããªããã¨ãã£ããã¨ã®ããã« bug tracker ããã©ã¦ã¶ã§éãããã±ãããåãããã£ã¦ãããã§ããããã ã¬ãã¥ã¼ã¯ VCS ã«è¨é²ããã¦ãã¾ããããã³ã¼ããã¼ã¹ä¸ã«ç¾å¨ã©ããããã®ãªã¼ãã³ãªã¬ãã¥ã¼ããããã©ããç·æ¥ãè¦ããããªã©ã¯ã¬ãã¥ã¼ã³ã¡ã³ãã«ä¸å®ã®æ¸å¼ãå
¥ããç°¡å㪠VCS ã®æ¤ç´¢ãè¡ããã¨ã§ã»ã¨ãã©å®ç¾å¯è½ã§ãã
ç©ççã«ãã¼ã ã®äººéãéã¾ãã¬ãã¥ã¼ãè¡ããæ¥æ¬äººã好ããããªãã®ä½å¶ãç§ã¯å
¨ãè©ä¾¡ãã¾ããã軽èãã¾ãã æéã®ç¡é§ã§ãã æ¢ã«ãã®ã³ã¼ããç¥ã£ã¦ãã人ã«ã¯éå±ã ãããã®ã³ã¼ããæ
å½ããªã人ã«ã¯éå±ã ãããã®ã³ã¼ããæ¸ãã人ã«ã¨ã£ã¦ã¯ç³¾å¼¾ä¼ã«ãªãæããããã å°å¦æ ¡ã®æã®ãããã®ä¼ã¿ãããªããã§ãã ã·ãã¢ã¡ã³ãã¼ã®ã¸ã¥ãã¢ãããã«ããã¹ãã¬ã¹è§£æ¶ãããããå©ç¹ã¯ãªãã®ã§ã¯ãªãã§ããã 人ãéã¾ã£ã¦è°è«ããã®ã¯ãã£ã¨ä¸ã®ãã¶ã¤ã³ã§ã®è°è«ãªã©ã«ãã¹ãã§ãç´°ããã³ã¼ãã®æ¸ãæ¹ãªã©ã¯æ¥ã
ã®ã³ã¼ãã¬ãã¥ã¼ã§éãã«åç£ç¢ç£¨ãã¦ããã°è¯ãã¨æãã¾ãã 人ã
ãé ãå¯ãåã£ã¦ãä¸è¡ä¸è¡ã ãã ãã¨è¾¿ããªããã§ãªããã°ã³ã¼ãã®åã
ã®å質ã«é¢ããè°è«ãã§ããªãã®ãªãã°ããããããã¼ã ã¡ã³ãã¼ã®ã¹ãã«ãã¤ã¾ã人é¸ã«åé¡ãããã®ã§ãããã
ãµã¤ã¯ã«
ç§ã®çµé¨ããã¬ãã¥ã¼ä½å¶ã§ã¯ä¸ã¤ã®ãµã¤ã¯ã«(ã¨ãããã®ã§ããªãã)ãããã¾ããã
- æ¥ã ã®éçºä¸ã«ä»ãå ãããã¦ããè¨æ©å¿å¤ï¼ãªã¬ãã¥ã¼
- éçºã³ã¼ãããéç¨ã³ã¼ãã¸ã®ç§»è¡æã®éä¸ã¬ãã¥ã¼
- æ¥ã ã®ã¬ãã¥ã¼ãæºã¾ã£ãæã®å¤§æé¤
ãããããã®ã«ãä½ããããããã£ãããååãä»ãã¦ããã®ããããã¾ããããç§ã¯ç¥ãã¾ããã
æ¥ã ã®éçºä¸ã®ã¬ãã¥ã¼
ä»äººã®ã³ã¼ããå©ç¨ãæ¡å¼µãã¡ã³ããã¦ããã¨ãããããã«ééã£ã¦ããããæ¸ãæ¹ãããããã£ãããããããã³ã¼ããçè§£ã§ããªãå ´åãããã¾ãã ãããã£ãåé¡ãèªåããã£ã¦ããä»äºã«ç¾å¨å½¢ã§é¢ãã£ã¦ããå ´åã¯ããã¡ããã¬ãã¥ã¼ä»¥åã®åé¡ã§ãã ãããæ¸ãã人ã¨è©±ãã¦åé¡ç¹ã解決ãå
ã«é²ã¿ã¾ãã ãããããã¾ã§ç·æ¥ãè¦ããªãããã³ã¼ããèªãã§ãã¦æ°ã«ãªã£ãé¨åãã¨ãããã®ãå¿
ãåºã¦ããã ãããã£ãå ´åã«ã¬ãã¥ã¼ãæ¸ãã¾ãã
ã¾ããèªåã§ã³ã¼ããæ¸ãã¦ãã¦éä¸ã§èªåã®ã³ã¼ãã«èªä¿¡ãæã¦ãªããªã£ãæã«ãèªå·±ã¬ãã¥ã¼ãæ¸ããã¨ãæ¨å¥¨ããã¾ãã ãã®æééã£ã¦ã FIXME ã ãããªã©ã¨ããæå³ã®ãªãã³ã¡ã³ãã¯æ¸ãã¹ãã§ã¯ããã¾ããã ä»äººã«ã¬ãã¥ã¼ãæ¸ãããã«èªåã«ã¬ãã¥ã¼ãæ¸ãã¾ãã
ãªãªã¼ã¹æã®éä¸ã¬ãã¥ã¼
ä¸è¨ã®æ¥ã
ã®ã¬ãã¥ã¼ãã¡ããã¨ãã£ãä¸ã§ãããã«éçºã³ã¼ããå®å°ã«çç£ã³ã¼ãã¨ãã¦åããéã«ã¯ããã«è©³ç´°ãªã¬ãã¥ã¼ãè¡ãã¾ãã éçºã®ã·ãã¢ã¡ã³ãã¼(éçºè
ã®1/4ä½ã)ãã¬ãã¥ã¼ã¯ã¼ã¨ãªã£ã¦ãç¾è¡çç£ã³ã¼ãã¨ãªãªã¼ã¹ãããã¨ãã¦ããéçºã³ã¼ãã®å·®åãå
¨ã¦ã¬ãã¥ã¼ãã¾ãã åããã¸ã§ã¯ããã¨ã«æ
å½ã¬ãã¥ã¼ã¯ã¼ãè¤æ°(è¤æ°ããªãã¨è°è«ã«ãªãã«ãã)é
ç½®ãããã®äººéãå
¨ã¦å·®åãèªã¿ãã¬ãã¥ã¼ã³ã¡ã³ãããã£ãå ´åã¯ãããè°è«è§£æ±ºããå
¨å¡ãå·®åã«ã¤ãã¦ãªã¼ã±ã¼ãåºãã¦åãã¦çç£ã³ã¼ãã«å·®åãç§»ããã¾ãã ãã®ãã¨ã§çç£ã³ã¼ãã¯å¸¸ã«ã¬ãã¥ã¼ã¯ã¼éã«å
¨ã¦ã³ã¼ããèªã¾ããç¶æ
ã«ãªãã¾ãã (ãã¡ããããããä½ã絶対çãªä¿è¨¼ãä¸ãããã®ã§ã¯ããã¾ããã) ãã®å·®åã®ã¢ãã«ã¼ãã«ã¯ç¢ºãä½ãå°ããªãã¼ã«ããã£ã¦èªåçã«ã¡ã³ãã®ã¢ãã«ã¼ãã«ã®éè¨ãè¡ãªã£ã¦ããã¯ãã§ãã
ç§ã®çµé¨ããæã§ã¯ãã¼ããã¼(éç¨å´ã®ã¨ã©ã¤äºº)ã®æè¡ç³»ã®äººãã¡ããã¨ãã®ã¬ãã¥ã¼ã¯è¡ãªã£ã¦ãã¾ããã ããã§ä¼ç¤¾ã¨ãã¦ã¬ãã¥ã¼ãéè¦è¦ãã¦ããã¨ãããã¨ãã¢ãã¼ã«ã§ãã¦ãã¾ãããã ãã®ããã«ã¬ãã¥ã¼ãéè¦è¦ããä¼ç¤¾ã§ã¯ããã¾ããããããã§ãæ¸ãããå
¨ã¦ã®ã³ã¼ãã«å¯¾ããã®éä¸ã¬ãã¥ã¼ãè¡ããã¨ã¯ã³ã¹ãçã«è¦åãã¾ããã§ããã ããã§éä¸ã¬ãã¥ã¼ã¯ãã¸ãã¹ã®ä¸å¿ã®æ ¸ã¨ãªãã³ã¼ãã®ã¿ã¨ãããã以å¤ã®å¨è¾ºã³ã¼ãã¯ä¸è¨ã®éçºä¸ã¬ãã¥ã¼ã ãã§åãã¦ããã¨è¨æ¶ãã¦ãã¾ãã
大æé¤
æ¥ã
ã®éçºã¬ãã¥ã¼ãæºã¾ã£ã¦ããã¨ã ãã ãã³ã¼ãä¸ã«ã¬ãã¥ã¼ã³ã¡ã³ããæ£è¦ãããããã«ãªãã¾ãã ãããæ¾ã£ã¦ããã®ã¯ãã¾ãããããã¾ããã ããã§ããã¼ã ã®ãªã¼ãã¼ã¯æãè¦ã¦ã¬ãã¥ã¼è§£æ¶ã«éä¸ãããã¨ããæä»¤ãåºããã¨ãããã¾ããã ãã®æã¯æ¥ãã®ä»äºãé¤ãã¡ã³ãã¼ã¯ã¬ãã¥ã¼ã³ã¡ã³ããæ¶ãã¦ããæ¹åã§ä»äºããã¾ãã ã ããããã®åããåºãã¨ä¸é±é(=5å¶æ¥æ¥)ã¯è§£æ¶ã主ã«ä»äºããã¦ãããããªæ°ããã¾ãã
ã¬ãã¥ã¼ã³ã¡ã³ãæ¸å¼
ããããå
ã¯æè¡çã§ç£æ«ãªãã¨ã§ãã ã¬ãã¥ã¼ãã³ã¡ã³ãã¨ãã¦ã©ãæ¸ããã¨ãããã¨ãç´¹ä»ãã¾ãã ã³ã¡ã³ãã¯ããããªããã°ã©ãã³ã°è¨èªã§éãã¾ããããã㯠# ããå§ã¾ããã®ã¨ãã¾ãã
ã¬ãã¥ã¼ãæ¸ã
ä¸çªç°¡åãªã¬ãã¥ã¼ã®æ¸ãæ¹ã¯ # RV <æ¸ãã人>: <ã³ã¡ã³ã> ã§ãã:
# RV alice: Plz give a fancier name than `foo'! foo = do ...
RV ã¯èª°ã§ãä½ã§ãæ¸ããã¨ãã§ãã¾ãã 夿°åããããã«ãããããã»ã¨ãã©ã³ãããããã³ã¼ããä»ã«ãããã¢ã«ã´ãªãºã ãããããããã«è¦ãããããããæ¸ããã¦ããã³ã¼ãã®è©³ç´°ãããããªããã³ã¼ãã¼ã±ã¼ã¹ãæ¼ããããã¦ããªãããªã©ãªã©ã
èª°ãæ¸ãã人ãããã£ã¦ãããã誰ãç¹å®ã®äººã«åé¡ãç´ãã¦ãããããå ´åãRV
# RV alice to bob: Fix this code!
RV ã®å¾ã«ãããæ¸ãã人ã®ã¦ã¼ã¶ã¼åãæ¸ãã¾ãã ãã㯠VCS ã®æ©è½(blame)ã ãã§ã¯ãã¾ã«æ¸ãã人ã®è¨é²ã追ãã«ãããªããã¨ã¨ããã¡ãã¡ãã¼ã«ã使ã£ã¦ã³ã¡ã³ããæ¸ããäººãæ¢ãã®ã¯ããã©ãã ããã§ãã ãã®ååã¯ã¬ãã¥ã¼ã³ã¡ã³ãèªåå¦çã®éã«ãå¿
è¦ãªã¿ã°ã«ãªãã®ã§æ£ããã¦ã¼ã¶ã¼åãæ¸ããªããã°ããã¾ããã (確ãå¤ãªæ¸å¼ã®ã¬ãã¥ã¼ã³ã¡ã³ããæ½åºãããã¼ã«ããã£ãããã«æãã¾ã)
èªåãä¸»ã«æ
å½ãã¦ããã³ã¼ã以å¤ã§ãããããã¨æã£ãã¨ããã¯ã¾ã RV ã³ã¡ã³ããã¤ãç¸æã®åå¿ãå¾
ã¡ã¾ãã æãããªã¹ãã«ãã¹ãªã©ä»¥å¤ãä½ãè¨ããã«åæã«ç´ãã¦ã¯ããã¾ããã ç¸æãåæãã¦ç´ãã¦ãããããããã¨ãåè°ã®çµæèªåãç´ããã¨ã«ãªãããæµãã¯å ´åã«ãã£ã¦å¤ãã£ã¦ãã¾ãã䏿®µã¬ãã¥ã¼ãæããã¨ãæ¨å¥¨ããã¦ãã¾ããã
ã¬ãã¥ã¼è°è«
ã㦠RV ã³ã¡ã³ããä½ããã¾ãããã©ããã¾ãããããåæã«æ¶ãã¦ã¯ããã¾ãã! 誰ãããto
# RV alice: Plz give fancier name than `foo'! # bob: Why? `foo' sounds perfect. # alice: It's just too anonymous. foo = do ...
ãã¡ããæ¬æ¥ãªãããã¡ãã£ã¨çç£çãªè°è«ãè¡ãããã¯ãã§ããã岿ãã¾ãã
ã¬ãã¥ã¼ãããã³ã¼ããç´ã
ããã¬ãã¥ã¼ã³ã¡ã³ããä»ããã³ã¼ããç´ããããããããä½ã®åé¡ããªãã¨æãããå ´åãç´ãã詳細ã¨ããç´ããªãã£ãçç±ãä»ãå ããä¸ã§ãã¬ãã¥ã¼ã解決ããããã¨ã示ã X ã RV ã®åã«ã¤ãã¾ã:
# XRV alice: Plz give fancier name than `foo'! # bob: Why? `foo' sounds perfect. # alice: It's just too anonymous. # bob: Ok, ok. Renamed `foomatic'. <- bob ã¯ããã§ X ãã¤ãã¾ãã foomatic = do ...
ããäºäººä»¥ä¸ã®äººãè°è«ã«å ãã£ãå ´åãè°è«ãã人ã®å
¨å¡ã®åæãã³ã¡ã³ãä¸ã§åã£ãä¸ã§ X ãã¤ãã¾ã:
# XRV alice: O(N^2)? I am not sure but it should be better... # bob: Reduced memory consumption greatly, it is still O(N^2) though... # carl: Better algorithm in Nlog(N): http://... # alice: Cool. I've rewritten it. Could you check? # carl: Checked. Bob ? # bob: Nice. Xed it. (He added X.)
RV ã XRV ã«æã£ãå ´åããã®å
¨ä½ã®è°è«ãçµäºããã®ã¯ RV ãå§ãã人ã§ãã ãã®è°è«å
¨ä½ãæ¶å»ãã¦ãè¯ãã(ãããã«ãã VCS ã«è°è«ã¯æ®ã£ã¦ãã¾ã)ããã徿¥ã«ãå½¹ã«ç«ã¤è°è«ã ã£ãå ´åã«ã¯ã¾ã¨ãã¦ã¬ãã¥ã¼ã³ã¡ã³ãã§ã¯ãªãæ®éã®ã³ã¡ã³ãã«ãã¦æ®ãã¦ããã®ãããã§ãããã
ã¬ãã¥ã¼ã³ã¡ã³ã復活
ãã XRV ããã¦ããããã§ãã¾ã ç´å¾ã§ããªãå ´åã¯ã RV ãå§ãã人ããããã¯å¥ã®äººã§ãæ§ãã¾ããã㯠XRV ãåã³ãã¨ã® RV ã«æ»ããã¨ãã§ãã¾ãããã¡ãããã®äºãæè¨ãã¾ã:
# RV alice: Plz give fancier name than `foo'! # bob: Why? `foo' sounds perfect. # alice: It's just too anonymous. # bob: Ok, ok. Renamed `foomatic'. # alice: Sorry, `foomatic' still puzzles me. Removed X. <-- alice 㯠X ãæ¶ãã¾ãã foomatic = do ...
ãã¥ã¼ãã£ã¼ã¯ã¼ã¯ã¡ã¢ã¨ãã¦ã® RV
æ®é㯠RV ã³ã¡ã³ãã¯æ¬¡ã®ãªãªã¼ã¹æã«ã¯å
¨ã¦è§£æ¶ãããã¹ããã®ã§ãããããã§ã¯ãªããããã¯ç´ããããå¼·åãã¹ãã ãããã«ã§ã¯ãªããªãã¨ããç¹ãã³ã¼ãã£ã³ã°ã§ã¯ããåºã¦ãã¾ãããã®ããã«ç¹å¥ãª RV ã³ã¡ã³ãã®æ¸å¼ãããã¾ããRV
## RV201302 alice: This code should be unified with function 'poo'
ç· ãåããã大å¹
ã«åã«ãã® RV ãè§£æ¶ããã®ã«ã¯å½ç¶ä½ã®åé¡ãããã¾ãããè§£æ¶ã«ã¯ä¸ã§ç´¹ä»ããã®ã¨åãæ¹æ³ RV ãã XRV ããã¦ã³ã¡ã³ãè§£æ¶ã®ã¹ããããè¸ã¿ã¾ãã
RV 管çãã¼ã«
ä¸ã§ãæ°åº¦è§¦ãã¾ããããããã¤ãã¬ãã¥ã¼ã®ããã®ãã¼ã«ãããã¾ããã
- é ã®è¯ã diff: ããã¯éçºããçç£ã¸ã®ãªãªã¼ã¹æã§ã®å·®åãèªã¿ããããããã®ã§ããå°ã ã®ã¤ã³ãã³ãä¿®æ£ãªã©ã¯ç¡è¦ãããããã«ãªã£ã¦ãã¾ãããä»ã«ãæ©è½ããã£ãã¯ãã§ãããããè¦ãã¦ãã¾ãããã使ç¨ããããã°ã©ãã³ã°è¨èªã«ãããã®ã§å²æãã¾ã
- RV ã XRV ãã³ã¼ãããæ¢ãåºããã¼ã«ãããã¯ã¬ãã¥ã¼å¤§æé¤æã«æ å½ãã¹ã人ã«ãç¥ãããåºããã¼ã«ããªã©ãããã¾ããã
- åæã« RV ãæ¶ããã¦ãã¾ãã®ãé²ããã¼ã«ãããã¯ç°¡åã«æãã¤ãã¾ãããå®éã«ã¯ä½¿ããã¦ããªãã£ããããªæ°ããã¾ãããã¼ã ã¡ã³ãã¼ã®è¯èãä¿¡ãã¦ããã®ãã
ã¬ãã¥ã¼ã¯ã¼ã«ä¸ä¸ãªã
ããã¦ãããæå¾ã«ã¨ã¦ã大åãªãã¨ãªã®ã§ããã誰ããã¬ãã¥ã¼ãæ¸ããã¬ãã¥ã¼ã«çããæ¨©å©ãããã¾ããä¸å¸ã ããã¨ãã£ã¦è縮ãããããªããã°ã©ããå±
ãã°ãããã¯ããã¬ãã¥ã¼ä½å¶ã¨ã¯è¨ãã¾ãããä¾ãã°ç§ã¯ãããªãã¨ããã£ããã¨ãããã¾ããããã§ç§ã¯ alice ã§ãã:
# RV alice: Hey, Who the hell did write this fucking code? # No comment and pretty badly written!!! # david: Sorry Alice, it is another smelly pile of shit # of mine made years ago. Could you fix this plz? # alice: Oops. Ok, boss
ã¾ãæ¥æ¬ã§ã¯ä¸ä¸ãã¢ã¡ãªã«ããå³ããã®ã§é£ããããããã¾ããããã¬ãã¥ã¼ã®ç®çãå®å
¨ã«ãã¼ã ã§çè§£ããã¦ããã°ä¸å¸é¨ä¸ãå
輩å¾è¼©ã®å£æ ¹ãè¶
ããã³ãã¥ãã±ã¼ã·ã§ã³ã¯å¯è½ã ã¨æãã¾ãã ã¡ãªã¿ã«ã¬ãã¥ã¼ã³ã¡ã³ãä¾ãæ¥æ¬èªã§æ¸ããã¨æãã¾ãããâ¦é£ããã§ããã æ¥æ¬èªã¯æ¬èªã®ã·ã¹ãã ãè¤éãããæ¸ãéã«æ°ã使ãã¾ãã æãä¸å¸ã«åãã¦ãåã®ã³ã¼ãã¯èªããªããã¨ããäºãç©ä¾¿ã«ä¼ãããã¨ããéãæ¥æ¬èªã§ã©ãæ¬èªãæ¸ããããªã©ã¨èãã¦ãã¦ã¯ã¬ãã¥ã¼ã®ç²¾ç¥ã¯åã°æ»ãã§ãã¾ãã ãäºã䏿ãªè±èªã§çç£çã«ç½µãåãæ¹ãæ°ãæ¥½ãªã®ããããã¾ããã
çµå±ã¯å人ã®ã¢ã©ã«ã«ããã£ã¦ãã
ã³ã¼ãã¬ãã¥ã¼ã«ã¯ãã£ã証æ ãããã¾ããã èªãã ãã¨è¨ãã°èªãã ãã¨ã«ãªã£ã¦ãã¾ãã¾ãã
æçµçã«ã¯ã³ã¼ããèªã人ã®ã¢ã©ã«ã«ãããã¦ãã®ã¢ã©ã«ã¯ã³ã¼ãã¬ãã¥ã¼ã®ä¾¡å¤ã¨ã³ã¹ãããã¼ã å
¨ä½ãçè§£ãã¦ãããã«ããã£ã¦ãã¾ãã ãã¼ã ãªã¼ãã¼ãä¸å¸ã®ã¬ãã¥ã¼ã«ãããéã®ææãæ¥ã
è¦ãç¶ãããã¨ã ãããã¡ã³ãã¼ã®ã¢ã©ã«ãç¶æããã¬ãã¥ã¼ãæåãããç§è¨£ã ã¨è¨ããããããã¾ããã
ã ãã ãã¨æ¸ãã¾ãããã対ãã¦æè¡çã«é¢ç½ããã¨ããã¦ãã訳ã§ããªããå½ããåã®äºãããã«ã¡ããã¨æ®éã«ããããã¨ãã話ã«ãªã£ã¦ãã¾ãã¾ããã ã¤ã¾ããªãã£ãããããã¾ãããâ¦ãããã¡ããã¨ãã£ã¦ããã¨ãããã©ãã«ããï¼ ã¨ãã話ã§ãããã¾ããããã¾ãç¡ãã¿ãããªãã§ãã