ã³ãŒãã¬ãã¥ãŒã®ããæ¹ãåºç€ã®åºç€ - ã³ãŒãæ¹åã«éèŠãªã¬ãã¥ãŒã®åºæ¬çãªèãæ¹ãåŠãŒã
ã³ãŒãã¬ãã¥ãŒãšã¯ïŒã¬ãã¥ãŒã§åé¡ãèŠã€ããŠææããã«ã¯ïŒã¬ãã¥ãŒããããåŽã®å¿æ§ããšã¯ïŒãœãããŠã§ã¢ã¬ãã¥ãŒãç ç©¶ããåå€å±å€§åŠã®åææ æ£®åŽä¿®åžããããã³ãŒãã¬ãã¥ãŒã®èãæ¹ã解説ããŸãã
ã¯ãããŸããŠæ£®åŽã§ãã倧åŠã§ãœãããŠã§ã¢ã¬ãã¥ãŒã®ç ç©¶ãããŠããŸããããŸããŸãªçµç¹ãšã®å ±åç ç©¶ã調æ»ãè°è«ãéããŠãã¬ãã¥ãŒã®åçã»ååãäœç³»çãªèãæ¹ã»ç¥èãæããã«ããããšããŠããŸãã倧åŠã§ç ç©¶ã«åŸäºããåã«ãœãããŠã§ã¢ãšã³ãžãã¢ãšããŠã€ã³ã¿ãŒããããµãŒãã¹ã®éçºãããŠãããããç ç©¶ãšããŠäŸ¡å€ããããå®åãšããŠã圹ã«ç«ã€ç ç©¶ãç®æããŠããŸãã
ã¬ãã¥ãŒã¯ããšã«ããå€ãã®çµéšãã€ãŸãªããã°äžéããªããšããå å ¥èŠ³ãæãããã¡ã§ãããã®å å ¥èŠ³ããªãããŠãã¬ãã¥ãŒã®äžéããœãããŠã§ã¢å質ã®åäžã«ã€ãªããããã¿ã掻åãæããã«ããçŸå Žã®ãšã³ãžãã¢ã®ã¿ãªããã«ç¥ã£ãŠãããæŽ»åãããŠããŸãã
æ¬çš¿ã§ã¯ãããããåããŠã³ãŒãã¬ãã¥ãŒããã / ãããæ¹ã察象ã«ãã¬ãã¥ãŒå®æœåã«ç¥ã£ãŠãããŠããã ãããåºæ¬ããäŒãããŸãã
- ã³ãŒãã¬ãã¥ãŒãšã¯ïŒ
- åé¡ãèŠã€ããã
- èŠã€ããåé¡ãææããã
- ã³ãŒãã¬ãã¥ãŒãããŠããããšãã®å¿æ§ã
- ãŸãšã
ã³ãŒãã¬ãã¥ãŒãšã¯ïŒ
ã³ãŒãã¬ãã¥ãŒã¯ãœãããŠã§ã¢éçºæŽ»åã®1ã€ã§ãããã€ãç®çããããŸãããã£ãšãäžè¬çãªç®çã¯ãã³ãŒããç®ã§è¿œã£ãŠåé¡1ããªãã確ãããããšã§ããèªåã®æžããã³ãŒããã»ãã®éçºè ã確èªããããã»ãã®éçºè ãæžããã³ãŒããèªåã§ç¢ºèªãããããŸãã
ãã®ã»ãã®ç®çãšããŠãä»ã®ã¡ã³ããŒã®ã³ãŒããçè§£ããŠãèªåã®ã³ãŒããšã®éã§éœéœ¬ããªããã確èªããããåé¡ãããéšåã®ä»£æ¿æ¡ãèãããããå ŽåããããŸãã1åã®ã¬ãã¥ãŒã§ããããã¹ãŠãç®çã«ããããšã¯ããŸããªãã1åç®ã®ã¬ãã¥ãŒã§ã¯æ¬ é¥ããªããã確ããã2åç®ã®ã¬ãã¥ãŒã§ã¯ä»£æ¿æ¡ããªããã確ãããããšãã£ãå ·åã«äœ¿ãåããã®ãäžè¬çã§ãã
ã³ãŒãã®ãèªã¿é²ãæ¹ã
ã©ã®ãããªç®çã®ã¬ãã¥ãŒã§ãã確ãããç®æãšç¢ºããæ¹ãæ±ºããŠããã¬ãã¥ãŒãããšå¹ççã§ãããã¬ãã¥ãŒã®è³ªãäžãããŸãããã®ãããªãã³ãŒãã®ãèªã¿é²ãæ¹ããå®ãŸã£ãŠããªããšããã æŒ ç¶ãšã³ãŒããèªã¿æµããŠããŸããã¡ã§ãã
ãã ããããããèªã¿é²ãæ¹ãæåœããæ¬¡ç¬¬ã«èº«ã«ã€ããŠããšã«ããããããã®åé¡ãææã§ããããã«ãªãã ãã§ã¯ãã¬ãã¥ãŒã®ã¹ãã«åäžããšã¯èšããŸãããã¬ãã¥ãŒã®ã¹ãã«ã¯ã倧ãã2ã€ã«åããããšãã§ããŸãã
1ã€ã¯åé¡ãèŠã€ããã¹ãã«ã§ããèªã¿é²ãæ¹ãããããç¥ãããšãå«ãŸããŸããããããé©åã«éžã¶ããšãããŒã ã§åæããããšãå«ã¿ãŸãããã1ã€ã¯èŠã€ããåé¡ãããŸãææããã¹ãã«ã§ããèŠã€ããåé¡ããã©ã®ããã«äŒãããã§ãåé¡ã解決ããã¹ããŒãã粟床ã¯å€ãããŸããè¿ éã«åé¡ã解決ããã«ã¯ãã³ãŒããæžãã人ãã¯ãããããŒã ã«åé¡ãããŸãäŒããåãæ±ããããŸãã
ã¬ãã¥ãŒã¯èŠããèŠãŸãã§ç¶ããããŠããããšãå€ã
åã ã®ã³ãŒãã¬ãã¥ãŒã§ããèªã¿é²ãæ¹ããå ·äœçã«æ±ºããããŠããããšã¯ããŸãå€ããããŸãããéå»ã«ãããã£ãŠãããã»ãã®éçºè ããã£ãŠãããããšãã£ãçç±ã§ããªããšãªã決ãŸã£ãŠããããšããç¶æ³ãããã§ãããã
ã¬ãã¥ãŒã§ææã§ããããšã¯ããªãåºç¯å²ã«ããããããæ¬æ¥èŠã€ãåºãããåé¡ä»¥å€ã®åé¡ãææãããããšããããŸããããšãã°ãåèšèšããŠå®è£ ãããçŽãããšã決ãŸã£ãŠããã®ã«ã³ãŒãã®æ¡åŒµãããããããããã®ææãããŠããããå°æ¥ã«ãããŠãæ§èœãæ±ããããªãã«ãããããããæ§èœåäžãã¹ãç¹ãææãããããŠããããšããããŸãã
ããããããããšããŠããã³ãŒãã¬ãã¥ãŒã®ç®çãçè§£ãããèªã¿é²ãæ¹ããéžã¶ããšã§ã¬ãã¥ãŒã®è³ªãé«ããå¹çåã«ãã€ãªããããšãã§ããŸãã
é©åãªæ¹æ³ã§ã¬ãã¥ãŒãé²ãã
ãã¬ãã¥ãŒææããšããåç®ã§ãã³ãŒããæžããéçºè ã責ããŠããŸãããšã¯å°ãªããããŸããããå¿ èŠãªããããããªãããã©ãèªåã®ã³ãŒãã¬ãã¥ãŒã®ãšãã«ã¯èšãããããããšãã£ãçç±ã§ãçäžå°œãªææãèŠæ±ãããŠããã®ãèŠãããšã¯ãªãã§ããããããŸããèªåã®ã»ããæè¡çãªç¥èãå€ãããšã瀺ãããšãäž»ãªç®çãšãªã£ãŠãå¿ èŠã®ãªãææãããŠãããšããã±ãŒã¹ã«ééããçµéšãæã€æ¹ãããã§ãããã
ãããã£ãããããã¯ãã®è³ªãé«ããããšã«ã€ãªãããªãææãé¿ããããšã¯ãã¬ãã¥ãŒã§æ±ããããåºæ¬çãªã¹ãã«ã§ãããªããªããã¬ãã¥ãŒã®å¹çåã«ã€ãªããããã§ããããã»ã©æããäŸã®ããã«ããããã¯ãã®è³ªãšããŸãé¢ä¿ã®ãªãåé¡ãèŠã€ããããšããŠããã°ããŸãã¯ç®çãèŠçŽãå¿ èŠããããŸãã
ã¬ãã¥ãŒã®ç®çãçè§£ãã
ãã æŒ ç¶ãšã³ãŒãããªãããŠããããçšåºŠã¯ã¬ãã¥ãŒãé²ããããšãã§ããŸãããã®äžæ¹ã§ãã³ãŒãã®åéãå€ããªã£ãããæéå¶çŽããã£ãããããšãã¬ãã¥ãŒãé£ãããªããŸãã ãã®ãããªå Žåã«ã¯ã以äžã®äŸã®ããã«ãåé¡ãèµ·ããããªéšåãäžå¿ã«ç¢ºèªããŸãã
äŸ1)å¥ã ã®éçºè ãæžããã¡ãœãããã颿°éã§ãããšããããããŒã¿ã«äžæŽåã¯ãªãã äŸ2)å ¥åå€ããã©ã¡ãŒã¿ã«ãã£ãŠã¯å®è¡æéãæ¥µç«¯ã«é·ããªããªãã
ãããŸãã«ãããã§ãã®åé¡ããã£ããããããããã°ã«ã€ãªããããšããåé¡ãã€ã¡ãŒãžã§ãããã®åé¡ãèŠã€ããããã®ãèªã¿é²ãæ¹ããã€ã¡ãŒãžã§ããŠããã°ãã¬ãã¥ãŒã®ç®çãæ±ºãŸã£ããšèšããã§ãããã
ç®çãæ±ºããããšã§ã"è¿ã åå®è£ ããããšã決ãŸã£ãŠããã®ã«ãæ¡åŒµæ§ã«é¢ããåé¡ãããããææããã"ãšãã"æ§èœãã»ãã¥ãªãã£äžã®åé¡ããªããã確ãããããšãéèŠãªã·ã¹ãã ã«ãããŠãæ¡åŒµæ§ã®åé¡ãããããææããã"ãšãã£ãã¬ãã¥ãŒã®è¡ãéããé²ããŸãã
è€æ°äººã§ã¬ãã¥ãŒããããšãã¯ãã»ãã®ã¬ãã¥ãŒã¢ãšåãç®çãå ±æããŠããã確ãããŠãã ãããç®çãæ±ºãŸã£ãŠããªããã°ããã®ã¬ãã¥ãŒã«æ±ããããç®çã話ãåããäºåã«åæããŸãããã
çµç¹æšæºã®ãã§ãã¯ãªã¹ããããå Žåãç®çãæ±ºãŸã£ãŠããå Žåã¯ãããã«æ²¿ã£ãŠé²ããŸããã¬ãã¥ãŒäŒè°ã§ããã®ã¿ã€ãã®åé¡ã¯ãä»åã¯ææããå¿ èŠã¯ãªããšæãããšãã£ãè°è«ãå§ãŸããšãã¬ãã¥ãŒã®æéããªããªã£ãŠããŸããŸãããŸããåå è ããããããåé¡ã¯ææããªããŠãããã®ã§ã¯ããšæããŠããŸãã¬ãã¥ãŒãåæ§ã§ããããããããšãèµ·ãããªãããã«ãã¬ãã¥ãŒãå§ããåã«ç®çã確èªã»åæããŠããã®ãéèŠã§ãã
åé¡ãèŠã€ããã
ã³ãŒãã¬ãã¥ãŒã®ååã¯ãããã¹ãå§¿ãšã³ãŒãã察å¿ã¥ããŠåé¡ãèŠã€ããããšã§ããèªåãªãã®ãèªã¿é²ãæ¹ãã身ã«ã€ãããšãåé¡ããªããã©ããããã°ãã倿ã§ãããå¿ èŠã®ãªãç®æãèªã¿é£ã°ãããã§ããŸãããããããšãåé¡ãæ©ãèŠã€ããããšãã§ããŸãã
ã§ã¯ããèªã¿é²ãæ¹ãã®å ·äœäŸãèŠãŠãããŸããããæ¬èšäºã§ã¯ã3ã€ã®ã¿ã€ãã玹ä»ããŸãã
èªã¿é²ãæ¹ãã®1 ããã°ããªãããããã確ããã
1ã€ç®ã®ã¿ã€ãã¯ããã°ïŒæåŸ ããåäœãããªãïŒãããã³ãŒãã§ãããã£ãšããããããããããã¹ãå§¿ãšã³ãŒãã察å¿ã¥ããŠãã°ãèŠã€ããããã®ãèªã¿é²ãæ¹ãã§ãããªã³ã©ã€ã³ã·ã§ããã³ã°ãµã€ãã®éçºã§ããã°ã以äžã®ãããªãã°ãèããããŸãã
- ç»é¢ã§æå®ããååãšã¯éãååãæ³šæããã
- ç»é¢ã§æå®ããæ°éãšã¯éãæ°éã®ååãæ³šæããã
- ç»é²ãããŠããåååãšã¯éãåååã衚瀺ããã
ããããå®çŸããã³ãŒããã©ãã«ããããç¹å®ããŠãæ£ããå®çŸã§ããŠãããã©ãã確ãããŸãããããã¹ãã³ãŒããããã°ããã®ãã¹ãã³ãŒãã§ãã°ãèŠã€ãããã©ããã確èªããŸãã ãã®ãããªåé¡ãèŠã€ããããã®ç¢ºããæ¹ã¯ã以äžã®3ã€ããã§ãã¯ããããšã§ãã
- æå®ããååãšåããã©ãã
- æ°éãåããã©ãã
- ç»é²ãããŠããåååãšè¡šç€ºãããåååãåããã©ãã
ãã®ãããååãã©ã®ããã«èå¥ããããïŒIDã§ã®ç®¡çããããéè€ããªãããã®ããã¿ãæ€çŽ¢æã«ã©ã®ããŒã¿é ç®ãæ€çŽ¢å¯Ÿè±¡ã«ãªãããšãã£ãç¹ïŒãæ°éã¯ã©ãã§æå®ãããåŠçãããããšãã£ãç¹ã確èªããŸãã ãã°ã®æ€åºã¯ãã¹ãã§ãè¡ããŸãããã³ãŒãäžã§ãªããšèŠã€ãã«ãããã°ãå€§èŠæš¡ãªä¿®æ£ãå¿ èŠã«ãªããããªãã°ã¯ãã³ãŒãã¬ãã¥ãŒã§ç¢ºèªãããšããã§ãããã
ã¬ãã¥ãŒã§ã¯ããã°ã®ãããªãæåŸ ããåäœãšã®éããã ãã§ã¯ãªããããæ¡ä»¶äžã§åé¡ã«ãªããããªã³ãŒãããå°æ¥ã®æ¡åŒµã«ãããŠåé¡ã«ãªããããªã³ãŒããšãã£ãã¿ã€ãããªããã確èªããããšããããŸããããããèŠãŠãããŸãããã
èªã¿é²ãæ¹ãã®2 ãããæ¡ä»¶äžã§åé¡ã«ãªãç®æãã確ããã
2ã€ç®ã®ã¿ã€ãã¯ãããæ¡ä»¶äžã§åé¡ã«ãªããããªã³ãŒãã§ãã以äžã®å³ã¯CãC++ãJavaãã¯ãããšããããŸããŸãªããã°ã©ãã³ã°èšèªã§æžããå€éã«ãŒãã®äŸã§ããæ°å€v1ãv2ãäžããŠãclearãšãã颿°ãåŒã³ãŸããclear颿°ã®å®è¡å 容ãv1ãv2ã®å€ã«ãã£ãŠã¯ãå®è¡æéãé·ããªãå¯èœæ§ã®ããã³ãŒãã§ããv1ãv2ã10以äžã§ããã°ãclear颿°ã®å®è¡ã¯100åãè¶ ããããšã¯ãããŸãããããããv1ãšv2ãäž¡æ¹ãšã1000ãè¶ ãããšãclear颿°ã®å®è¡ã¯100äžåãè¶ ããŸãããã®ãããclear颿°ã®å®è¡æéãšåæ¡ããŠã100äžåãè¶ ããŠå®è¡ãããå Žåã§ãåé¡ããªãããããåé¡ãããå Žåã«ã¯ãã®æžãæ¹ã§ãªããšå®çŸã§ããªããã©ããã確èªããããããæžãæ¹ãèããå¿ èŠããããŸãã
void test (int v1, int v2) {
int i, j;
for (i = 0; i < v1; i++) {
for (j = 0; j < v2; j++) {
clear(i, j);
}
}
}
ã«ãŒãã®åæ°ã«ãã£ãŠæéããããå¯èœæ§ãããã³ãŒããèŠã€ããèªã¿é²ãæ¹ã¯ã以äžã®ããã«ãŸãšããããŸãã
- 確ãããç®æïŒå€éã«ãŒã
- 確ããæ¹ïŒã«ãŒãã®ç¹°ãè¿ãåæ°ã«ãã£ãŠã¯æ¥µç«¯ã«å®è¡æéãé·ããªããªããã©ãããã§ãã¯ãã
èªã¿é²ãæ¹ãã®3 ãã³ãŒãã®æ¡åŒµæ§ãã確ããã
3ã€ç®ã®ã¿ã€ãã¯ãå°æ¥ã³ãŒããæ¡åŒµããéã«ãã³ãŒããèªã人ãåéããããããã³ãŒãã§ããã³ãŒããèªã人ã«ãšã£ãŠãçŽããããæžãæ¹ãããŠããªããã©ããã確èªããããã®èªã¿é²ãæ¹ã玹ä»ããŸãã
次ã®ã³ãŒããèŠãŠãã ãããCãC++ãJavaã§æžãããçŽããããæ¡ä»¶åå²ã®æžãæ¹ã§ããã³ãŒãã®3è¡ç®ã«ã¯2ã€ã®ifæãæžãããŠããŸãã1ã€ç®ã®ifæã®æ¡ä»¶ãæºããããŠãããšãã«ã¯ãvalue++ãå®è¡ãããŸãããã®æ¬¡ã®ifæã¯1ã€ç®ã®ifæã®æ¡ä»¶ãæºããããŠããªããšãã§ãå®è¡ãããŸãããããã1ã€ç®ã®ifæã®æ¡ä»¶ãæºããããŠãããšãã ãå®è¡ãããããã«ãèªããŸããã€ãŸãã2åç®ã®value++ãv1ãšv2ã®äž¡æ¹ãNULLã®ãšãã«ããå®è¡ãããªãã®ããv2ãNULLã§ããã°ïŒv1ãNULLã§ãªããŠãïŒå®è¡ãããã®ãããããã«ãããªã£ãŠããŸãã
int test (int v1,int v2) {
int value = 0;
if (v1 == NULL) value++; if (v2 == NULL) value++;
return value;
}
çŽããããæ¡ä»¶åå²ãèŠã€ããèªã¿é²ãæ¹ã¯ã以äžã®ããã«ãŸãšããããŸãã
- 確ãããç®æïŒifæã®åŸã®äžã«ãã³ãçç¥ããŠãããšãã
- 確ããæ¹ïŒæ¡ä»¶ãæºããããšãã«å®è¡ãããæããçŽããããèšèŒãããŠããªããã©ãããã§ãã¯ãã
ã§ã¯ããã®ã³ãŒããã©ã®ããã«ä¿®æ£ããã°ãåéããèµ·ããã«ããã³ãŒãã«ãªãã§ããããã2ã€ã®æ¹åæ¡ã玹ä»ããŸããã³ãŒãã¬ãã¥ãŒã®ããæ¹ã«ãã£ãŠã¯ãããããæ¹åæ¡ãææ¡ããå ŽåããããŸãã
1ã€ç®ã®ifæã®åŸã®value++ã®åŸã§æ¹è¡ïŒæ¹åæ¡1ïŒããããvalue++ã®ååŸã«äžã«ãã³ããããŠæç€ºïŒæ¹åæ¡2ïŒããã»ãããããããããªããŸãã
æ¹åæ¡1
int test (int v1, int v2) {
int value = 0;
if (v1 == NULL) value++;
if (v2 == NULL) value++;
return value;
}
äžã«ãã³ã远å ããã³ãŒããæ¬¡ã®ã³ãŒãã«ãªããŸãã
æ¹åæ¡2
int test (int v1, int v2) {
int value = 0;
if (v1 == NULL) {value++;} if (v2 == NULL) {value++;}
return value;
}
å°éã§ã¯ãããŸããããããã£ããèªã¿é²ãæ¹ããå¢ãããŠããããšã§ããåé¡ããªããããã®ããã確ãããŠããã°å€§äžå€«ããšãã宿ãæãŠãããã«ãªããŸãããããã宿ããªããã°ãã1æéèŠããããããããšãããããªæèŠæéãããã®ã¬ãã¥ãŒã«ãªã£ãŠããŸããŸããæŒ ç¶ãšãªãããŠããŠããã確èªãã¹ããšããããã£ããèŠãŠããæéã¯ããããŸããã¬ãã¥ãŒã®è³ªãå®å®ãããããã«ããèªã¿é²ãæ¹ããå¢ãããŠããã®ãéèŠãªã®ã§ãã
å¥ã®ãšããã«ãæµçšã§ããèªã¿é²ãæ¹ãå¢ãããŠããŠããæåã¯ãã©ããéãåé¡ã«èŠãŠããŸããåããããªåé¡ãèŠã€ãããªãã®ã§ã¯ãªãããšæããã¡ã§ããããããèªã¿é²ãæ¹ã®ããªãšãŒã·ã§ã³ãå¢ãããŠãããšãããŠã¯ãŸãåé¡ãåºãŠããŸãããšãã«äŒŒããããªãããã¯ãããã¡ã€ã³ã®éçºãããŠããã°ãèªã¿é²ãæ¹ãæµçšã§ããæ©äŒãå¢ããŸãããã¡ãããã¬ãã¥ãŒã ãã§ã¯ãªããèªåã§ã³ãŒããæžãå Žåã«ãããŠã¯ãŸãããšãå¢ããŸãã
èŠã€ããåé¡ãææããã
ã³ãŒãã¬ãã¥ãŒã§èŠã€ããåé¡ã¯ææããŠãã³ãŒãã®æ¹åãä¿ããŸããææã®ãããã¯ã¬ãã¥ãŒã®åœ¢æ ã«ããå€ãããŸããã圢åŒã®å€§åé¡ãšããŠã以äžã®2ã€ããããŸãã
- ããŒã«åœ¢åŒïŒããŒã«ãä»ããã¬ãã¥ãŒïŒ
- äŒè°åœ¢åŒ
ããããã®ããæ¹ãšæ³šæãã¹ãç¹ãèŠãŠãããŸãããããªããã©ã¡ãã®åœ¢åŒã§ãã£ãŠããåé¡ã®èŠã€ãæ¹ã«éãã¯ãããŸããã
ããŒã«åœ¢åŒã®ã¬ãã¥ãŒ
ããŒã«åœ¢åŒã§ã¯ãèŠã€ããåé¡ã説æããæç« ãããã¹ããšããŠå ¥åããã³ãŒããªããžããªã®ç®¡çããŒã«ããã¡ãŒã«ãšãã£ãããŒã«ãä»ããŠãã³ãŒããæžãã人ã«äŒããŸãã ããŒã«åœ¢åŒã®ã¬ãã¥ãŒã®ã¡ãªããã¯ãã¬ãã¥ãŒåå è ã®æéãåãããå¿ èŠããªãç¹ã倧ããããã®ãããçæéã§ã¬ãã¥ãŒãçµãããããããªããŸãããŸããèšé²ãæ®ããããã®ã§ãä¿®æ£ã«ãããŠææã«å¯Ÿå¿ããããç¹ãã¡ãªããã§ãã
ãã¡ãªããã¯ã誰ãåé¡ã確èªããŠããªãå Žæããã£ãŠãæ°ã¥ãã«ããã£ãããè€æ°ã®ã¬ãã¥ãŒã¢ãåãåé¡ãææãããšãã«ã ããå€ãã£ããããç¹ã§ãããŸããäŒè°åœ¢åŒã§è¡ãã°ãå£é ã§ç°¡åã«èª¬æã§ããå 容ã§ãã£ãŠããããŒã«åœ¢åŒã®ã¬ãã¥ãŒã§ã¯èª¬æããããã®ããã¹ããèããããã«æéãããã£ãããã¬ãã¥ãŒã¢ã®æå³ãããŸãäŒãããªãã£ããããããšããããŸãã
GitHubãªã©ã®ããŒã«ã掻çšããã¬ãã¥ãŒã§ã¯ãä¿®æ£æ¡ïŒä¿®æ£åŸã®ã³ãŒããGitHubãªãã°Pull RequestïŒãéãããšãäžè¬çã§ãã
ããããããŒã«åœ¢åŒã®ã¬ãã¥ãŒã§æ°ãã€ããç¹ã¯ãã»ãã®ã¬ãã¥ãŒã¢ã®ææãèŠãæ©äŒãæžã£ãŠããŸãå¯èœæ§ãããããšã§ãããããã«ãèªã¿é²ãæ¹ããç¥ã£ãããããããã¬ãã¥ãŒã®ããã«ãã»ãã®ã¬ãã¥ãŒã¢ã®ææããåŠãã ãããããšãå€ãã®ã§ãç©æ¥µçã«èŠãããã«ããŸãããã
ã¬ãã¥ãŒããŒã«ã«ã¯ãããã€ãã®çš®é¡ããããŸããGitHubã¯ããœãŒã¹ã³ãŒãããŒãžã§ã³ç®¡çã·ã¹ãã ïŒãœãŒã¹ã³ãŒããªããžããªïŒã«ã¬ãã¥ãŒæ©èœãä»å±ããŠãã代衚çãªããŒã«ãšããŠãå€ãã®æ¹ãç¥ããšããã§ããããå³1ã¯ãGitHubã§ã®ã¬ãã¥ãŒã¢ãšéçºè ïŒäœè ïŒã®ãããšãã®æ§åã衚瀺ããããã®ã§ããç¹å®ç°å¢ã§ã®ã€ã³ã¹ããŒã«ã¹ã¯ãªããã«åé¡ããããæ¹åæ¡ïŒããã: patchïŒãšãšãã«ã¬ãã¥ãŒã¢ãææããŠãããã³ãŒããäœè ãåã蟌ãã§ããæ§åã§ããç»é¢äžå€®éšã«ããã38a258aãã®ãªã³ã¯ããã©ããšå³2ã®ãããªããããšçŸè¡ããŒãžã§ã³ãšã®å·®åã衚瀺ããŠãããŸãã
å³1 GitHubã§ã®ã¬ãã¥ãŒææã®äŸïŒhttps://github.com/motemen/ghq/pull/82ïŒãã
å³2 ãããã®è¡šç€ºäŸïŒhttps://github.com/motemen/ghq/pull/82/commits/38a258a2c229f7bb7efd30825639f66a5a2d24bcïŒãã
ãœãŒã¹ã³ãŒããªããžããªã䜿ã£ãéçºãåæãšããªããã¬ãã¥ãŒå°çšããŒã«ããããŸãããœãŒã¹ã³ãŒããªããžããªã䜿ã£ãéçºã§ã¯ãéçºããã»ã¹ã®äžéšãããŒã«ãæ³å®ããããã»ã¹ã«åãããå¿ èŠããããŸãããã¬ãã¥ãŒå°çšã®ããŒã«ã§ã¯ããã®å¿ èŠã¯ãããŸãããå³3ã¯ããããå°çšããŒã«è£œåã®1ã€ã§ããLightning Reviewã®ç»é¢ã§ãã
å³3 ã¬ãã¥ãŒå°çšããŒã«ã§ã®ææãšä¿®æ£ã®äŸïŒLightning ReviewïŒ
ããŒã«åœ¢åŒã®ã¬ãã¥ãŒã«ã¯ã課é¡ç®¡çããŒã«ããã°ç®¡çããŒã«ããšã¯ã»ã«ã®ãããªè¡šèšç®ã¢ããªã±ãŒã·ã§ã³ãã¡ãŒã«ã䜿ããŸãã
ã¬ãã¥ãŒã¯ãã³ãŒããæžããã¡ã³ããŒãšããã¹ãã¡ãã»ãŒãžããããšãããããšã§ããããŸããããã¹ãã¡ãã»ãŒãžã®ãããšãã«ãããæ³šæç¹ã¯åŸè¿°ããŸãã
äŒè°åœ¢åŒã®ã¬ãã¥ãŒ
äŒè°åœ¢åŒã§ã¯ãèŠã€ããåé¡ãäŒè°ã®å Žã§çºèšããŠææããŸããã¬ãã¥ãŒãçæéã§çµããããããã«ãåé¡ã®ææãäžå¿ã«ããåé¡ã®ä¿®æ£ã¯åŸåãã«ãããã³ãŒããæžããéçºè ã«ä»»ããããšãå€ãã§ãã çŸå Žããããžã§ã¯ãã«ãã£ãŠã¯ããŒã«åœ¢åŒã®ã¬ãã¥ãŒãå€ããäŒè°åœ¢åŒã®ã¬ãã¥ãŒã¯å°ãªãå ŽåããããŸãããäŒè°åœ¢åŒã®ã¡ãªããã¯ææã®å 容ãçè§£ã§ããªããšãã«ã¯ããã®å Žã§èãçŽãããåºåžè ã§èãããããããšã§ããã®å Žã§è§£æ±ºãããå ±éçè§£ãåŸããããããããç¹ã§ããå¿ èŠã§ããã°ãä¿®æ£æ¹æ³ã«é¢ããŠãé¢ä¿è ã§è©±ãåãããšãã§ããŸãã
åé¡ãæç« ïŒããã¹ãïŒãšããŠããŒã«çµç±ã§èª¬æãããšæéããããå Žåã§ããäŒè°åœ¢åŒã§ã€ã³ã¿ã©ã¯ãã£ãã«èª¬æã§ããã°ãç°¡åã«äŒããã¡ãªããããããŸããããŒã«ã䜿ã£ãã¬ãã¥ãŒãšäŒè°åœ¢åŒã®ã¬ãã¥ãŒãæ¯èŒããç ç©¶è«æ2ã§ã¯ãäŒè°åœ¢åŒã®ã»ããææèª€ãïŒæ£ããå 容ã誀ã£ãŠåé¡ãšããŠææããããšïŒãæžãããšãå ±åãããŠããŸãã
ãã¡ãªããã¯ãã¬ãã¥ãŒã®å®æœæ¥æã®èª¿æŽãã¬ãã¥ãŒã宿œããããšããŠãããå®éã«äŒè°ãéå§ãããŸã§ã«æéããããç¹ã§ãããŸããäŒè°ã®æéé åãããŸã調æŽããªããšãã³ãŒãã®èª¬æã ãã§çµãã£ãŠããŸã£ããäžéšããã¬ãã¥ãŒã§ããªãã£ãããããã¡ãªããããããŸãã
äŒè°åœ¢åŒã®ã¬ãã¥ãŒã§æ°ãã€ããç¹ã¯ãæ £ããªããã¡ã¯äºåã«æºåããŠãããªããšãã¬ãã¥ãŒäžã«åé¡ãææã§ããªãããšã§ããäŒè°ã§åããŠã³ãŒããèŠãŠããã«åé¡ãèŠã€ããã«ã¯ããã¬ãŒãã³ã°ãå¿ èŠã§ããäºåã«ã¬ãã¥ãŒå¯Ÿè±¡ã®ã³ãŒãã確èªã§ããããã«æéã確ä¿ããŠãããšããã§ãããã
æ°ãã€ããç¹ã¯ããã1ã€ãããŸãããã£ããã»ãã®ã¡ã³ããŒã®ææãèãæ©äŒã§ããã«ãããããããèªåã®ã³ãŒãã察象ã§ãªããšãã¯èãæµããŠããŸãããšã§ããããŒã«åœ¢åŒã®ã¬ãã¥ãŒãšåæ§ã§ãã»ãã®ã¡ã³ããŒã®ææãèãæµããšãèªã¿é²ãæ¹ãã®ããªãšãŒã·ã§ã³ãå¢ããã«ãããªããŸãããèªåã ã£ããã©ããããããèªåã®æžããã³ãŒãã«ããŠã¯ãŸãããšã¯ïŒããšãã£ãèŠç¹ã§ã»ãã®ã¡ã³ããŒã®ææã«è³ãåŸãããšãã¬ãã¥ãŒäŒè°ãããæçŸ©æ·±ããªãã§ãããã
ã¬ãã¥ãŒææã¯ããã¹ãã¡ãã»ãŒãžãšæããã
ããŒã«åœ¢åŒãäŒè°åœ¢åŒãããã®å ŽåããçºèŠããåé¡ã¯ãªã«ãããã®åœ¢ã§ææãè¡ãããŸããããªããææããåŽã®å Žåãæ³šæãã¹ãã¯ææã®äŒãæ¹ã§ããããã§å€§äºã«ããŠããã ãããã®ã¯ãã¬ãã¥ãŒææã¯ããã¹ãã¡ãã»ãŒãžãšåãã§ããããšããç¹ã§ããããããããã¹ãäž»äœã§éçšãããããŒã«åœ¢åŒã®ã¬ãã¥ãŒã§ã¯ããšãã«æèãã¹ãç¹ã§ããäŒè°åœ¢åŒã®ã¬ãã¥ãŒã§ã¯ãåé¡ãäŒãããçžæã®æ§åãããã«ãããã®ã§ãé©åã§ãªãäŒãæ¹ãããŠããŸã£ãå Žåããã®å Žã§å€æŽãããä¿®æ£ãããã§ãããã£ã³ã¹ããããŸããããããããã¹ãã®è¡ãæ¥ã§æç«ããããŒã«ã䜿ã£ãã¬ãã¥ãŒã®å Žåã«ã¯ããããããã£ã³ã¹ã¯å€±ãããã¡ã§ãã
ããã¹ãã¡ãã»ãŒãžã§ã®å€±æãçµéšãããã®æžãæ¹ã§ã¯çæãäŒãããªãããããã®æžãæ¹ã§ã¯åé¡ãããéšåãæžããéçºè ãå·ã€ãããããããªãããšãã£ãé æ ®ãããããã«ãªã£ãæ¹ã¯å€ãã§ãããããšãã«ããŒã«åœ¢åŒã®ã¬ãã¥ãŒã®å Žåã«ã¯ããå£é ã§äŒãããšããŠããã®èšãæ¹ããããããå£é ã§ã¯äŒããèªåŒµãåè«ãããã¹ãã«ãããšããåãããã«äŒãããããšãã£ã確èªãããŠãããææãéä¿¡ïŒæåºïŒããããã«ããŸãã
å³1ã¯é©åãªãããšãã®äŸã§ããæåã«åé¡ç¹ãå ·äœçãªãšã©ãŒã¡ãã»ãŒãžãšãšãã«ææãããŠããŸããããã§å®è¡ç°å¢ã瀺ããã«ãmake3ã倱æããããšã ãæžããšãªããªãäŒãããŸããããªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã®ã¬ãã¥ãŒããã°ã¬ããŒãã§ã¯äžè¬çãªããæ¹ã§ãããä¿®æ£æ¡ãšãšãã«ç€ºãããšã§ã建èšçãªã¬ãã¥ãŒã«ã§ããã®ã§ãããŸããäœè ãææã«æè¬ã®äžèšãå ããŠæ¹åæ¡ãåã蟌ãã§ããŸããããããé æ ®ãããŒã«åœ¢åŒã®ã¬ãã¥ãŒãããåæ»ã«é²ããŸãã
æ°ãã€ãããã®ã¯ãããããªããšãã§ããŠããªãã®ãããšæããããªææããããšãã§ããåé¡ã®è§£æ±ºã«å¿ èŠã®ãªã衚çŸãèšãåãã«ãªã£ãŠããªããã確èªããŸããããã®çšåºŠã®ããšãæžããŠããªããããæ§èœåäžã®ã€ãããããããªããããšãã£ãèšèã¯ãæžããªããŠãåé¡ã®å 容ã¯äŒããã¯ãã§ããããããèšè¿°ãææã®äžã«çŽã蟌ãã§ããªãããæçš¿åã«å¿ ããã§ãã¯ããŠãã ããã
èªåãéçºããææç©ã«å¯ŸããŠããããã衚çŸã§ææããã£ãå Žåã«ã¯ããã®ææããããŠã¡ã¢ããŠãããŸããããèªåãææããéã«ãåããããªè¡šçŸãããŠããªããããã§ãã¯ãªã¹ããšããŠäœ¿ããŸãããããããã¬ãã¥ãŒææã®äžé©åãªè¡šçŸãããã¢ã³ããã¿ãŒã³ãšããŠåŠã¶ããšã§ãå°æ¥ãèªåãææããéã«ãããã£ãææãå«ããªãã§æžãããã«ãªããšèããŠãã ããããããããšãæ¬æ¥ã®ç®çã§ããåé¡ã®ä¿®æ£ïŒææãããå 容ã®åæ ïŒã«éäžã§ããããã«ãªãã§ãããã
ã³ãŒãã¬ãã¥ãŒãããŠããããšãã®å¿æ§ã
ãããŸã§ãäž»ã«ã³ãŒãã¬ãã¥ãŒèªäœãã¬ãã¥ãŒããåŽã®èãæ¹ã«ã€ããŠç޹ä»ããŠããŸãããæåŸã«ãã³ãŒãã¬ãã¥ãŒãããŠããããšãã®å¿æ§ãã玹ä»ããŸãããã
èªåãæžããã³ãŒããã¬ãã¥ãŒããŠããããã³ãŒãã®åé¡ãææããããšã©ãããŠãèªåã®æè¡ãã¹ãã«ãæ¹å€ãããŠããããã«æããŠããŸããŸããããããææ ãé¿ããããã«ãèªåãééããŠããŸã£ãçç±ããã»ãã«èããããšã説æããŠããã¹ããçç±ãããã£ãŠãããããšæããšããããã§ããããããããæ¬æ¥ããã¹ãããšã¯ãææããã°ããçè§£ããŠãé©åãªã³ãŒãã«ä¿®æ£ããããšã§ããåé¡ãææããéçºè ïŒã¬ãã¥ãŒã¢ïŒã«ããã¹ãããçç±ãããã£ãŠãããããšããŠèª¬æããã ãã§ã¯ãé©åãªã³ãŒãã«ãªãããšã¯ãããŸããããã¡ãããã®éçºè ã誀解ããŠããå Žåã¯äŸå€ã§ããæ£ããçè§£ãããŠãããããã«èª¬æãããŸãã
ãã¹ããçç±ãããã£ãŠãããããšããã®ã¯ããããèªåã®å®åã ãšæã£ãŠããããããªãã£ãããèªåã®è©äŸ¡ã«ã€ãªãã£ãŠããŸããšèããŠããŸã£ããããããã§ã¯ãªãã§ãããããã¬ãã¥ãŒã¢ãšã®äŒè©±ãæ¥ç¹ãå°ãªããšãã©ãããŠãèªåã®æžããã³ãŒãã§èªåèªèº«ãè©äŸ¡ãããŠããŸãããã«æããŠããŸããŸããããããã³ãŒããæžãããšã¯èšããŸã§ããããŸããããã«ãžã¥ã¢ã«ãªäŒè©±ãã³ãŒãã¬ãã¥ãŒä»¥å€ã®æ¥ç¹ãæã€ããšã§ããããããèããŠäœæ¥ãé²ããŠãããã ãªããšã¬ãã¥ãŒã¢ã«æã£ãŠãããããšã§ãã¬ãã¥ãŒã®å Žã ãã§èªåãè©äŸ¡ãããããã§ã¯ãªããšååãã«èããããšãã§ããŸãã
å³ããããææãèŠããšãã ã£ããèªåã§æžãã°ããã®ã«ããšããæ°æã¡ã«ãªãããšãããã§ãããããã®ãšãã¯ããæ¹å€ã ããªãã°èª°ã§ãã§ããããšèããããšããå§ãããŸãããã¡ãããã¬ãã¥ãŒã¢ã«ãã®èããäŒããå¿ èŠã¯ãããŸãããå®éã®ãšãããäžéãåãã³ãŒããäœãããšã¯ã现ããææãããããããšãŠã倧å€ãªããšã§ããã¬ãã¥ãŒã¢ã¯ãã®ããšãååã«çè§£ããäžã§ææããŠãããšèããã°ã³ãŒãã®ä¿®æ£ã«éäžã§ããããã«ãªããŸãã
ãŸãšã
ããŠãã³ãŒãã¬ãã¥ãŒã®åºç€ããäŒãããŸãããã¬ãã¥ãŒã®å·¥å€«ãèªã¿é²ãæ¹ã¯æèãééãã ããã®èšèšã¬ãã¥ãŒããç§ã®Twitterã¢ã«ãŠã³ãã§ã玹ä»ããŠããŸãã®ã§ããããªãæ å ±ãå¿ èŠãªæ¹ã¯ããã²ã芧ãã ããã
å€ãã®å éããåãããã«ã¬ãã¥ãŒãèŠæã«æããŠããŸã£ãããã¬ãã¥ãŒãè©äŸ¡ã®å ŽãšæããŠããŸãããžããã ãããçµéšããããã®ã§ããããããããšãããŸãæ°ã«ãªããªããªã£ãããä»ã®ã¬ãã¥ãŒã¢ã®ææãèŠãŠèªåã®åçºé²æ¢ã«ã€ãªãããããããããèªã¿é²ãæ¹ãããã®ãããšæãããã«ãªããã°ãã¬ãã¥ãŒã¯ã€ããäœæ¥ã§ã¯ãªããªããç©æ¥µçã«åå ããããšããèãã«å€ãã£ãŠãããšæããŸãããã®èšäºããã£ããã§ãçããã®ææ¥ããã®ã¬ãã¥ãŒãå®ãå€ããã®ã«ãªãã°å¹žãã§ãã
森åŽä¿®åž ïŒããããã»ãã
ããïŒ
ç·šéïŒæšªç°æµïŒãªããã¯ãŒã¯ã¹ïŒ
*1:åé¡ã®ä»£è¡šçãªãã®ã¯ãã°ã§ããããã«å ããŠããã°ã§ã¯ãªãïŒæåŸ ããåäœã¯ããïŒããã©ãèªã¿ã«ããåéããåŒãèµ·ãããããã³ãŒãã®ããã«ãå°æ¥ã®éçºã«ãããŠãã°ã®åå ã«ãªããããéšåãã¬ãã¥ãŒã§ææããŸããæ¬èšäºã§ã¯ããããããŸãšããŠãåé¡ããšåŒã³ãŸãã
*2:https://link.springer.com/article/10.1023/A:1009787822215
*3:ã³ãŒãã®ãã«ããèªååããããŒã«
åé¡ã®ä»£è¡šçãªãã®ã¯ãã°ã§ããããã«å ããŠããã°ã§ã¯ãªãïŒæåŸ ããåäœã¯ããïŒããã©ãèªã¿ã«ããåéããåŒãèµ·ãããããã³ãŒãã®ããã«ãå°æ¥ã®éçºã«ãããŠãã°ã®åå ã«ãªããããéšåãã¬ãã¥ãŒã§ææããŸããæ¬èšäºã§ã¯ããããããŸãšããŠãåé¡ããšåŒã³ãŸããâ©
https://link.springer.com/article/10.1023/A:1009787822215â©
ã³ãŒãã®ãã«ããèªååããããŒã«â©




