ð AIãšå ±åµããéçºäœéšïŒIssueããE2Eãã¹ããŸã§ãæé©å
æ ªåŒäŒç€ŸU-ZEROã§ãããã¯ãéçºãæ
åœããŠãããšã³ãžãã¢ã§ãã
æ¬èšäºã¯ã¢ããã³ãã«ã¬ã³ã㌠12æ2æ¥ã®èšäºãšããŠãå±ãããŸãïŒ
忥ã®èšäºã¯ä»¥äžã§èªããŸã
ChatGPTã®ç»å Žä»¥æ¥ãAIæè¡ã¯ç§ãã¡ã®æ¥åžžãããžãã¹ãäžå€ãããŸããããããŠãéçºã®çŸå ŽãäŸå€ã§ã¯ãããŸããã
ç§ãã¡ã®çµç¹ã§ã¯ãAIãåãªãã³ãŒãçæããŒã«ãšããŠçããããéçºäœéšïŒDeveloper ExperienceïŒãåçã«åäžãããããã®åŒ·åãªå ±åµè ããšæããŠããŸããå ·äœçã«ã¯ãéåµé çãªäœæ¥ãAIã«ä»»ããããšã§ãçç£æ§ã®åäžãå質ã®å®å®åããããŠäœãããšã³ãžãã¢ãæ¬è³ªçãªèª²é¡è§£æ±ºã«éäžã§ããç°å¢ã¥ãããç®æããæ¥ã 詊è¡é¯èª€ãç¶ããŠããŸãã
æ¬èšäºã§ã¯ãç§ãã¡ã®éçºçµç¹ãå®éã«ã©ã®ããã«AIãæŽ»çšãããIssueäœæããE2Eãã¹ããŸã§ããšããéçºããã»ã¹å šäœãã©ã®ããã«æ¹åããŠããã®ãããå ·äœçãªäœéšè«ã䞻軞ã«ã玹ä»ããŸãã
ãŸã AI掻çšãé²ãã§ããªãçµç¹ããæ¢ã«å©çšããŠãããã®ã®æ¬¡ã®äžæã暡玢ããŠãããšã³ãžãã¢ã®æ¹ã ã«ãå®è·µçãªäºäŸãšããŠåœ¹ç«ã€ããšãé¡ã£ãŠããŸãã
æ¬æïŒéçºãããŒã«ãããAI掻çšäºäŸ
ç§ãã¡ã¯ãéçºã®åãã§ãŒãºã«ãããŠAIãçµã¿èŸŒãããšã§ãææ»ãã³ã¹ããåæžããäŸ¡å€æäŸã®é床ãé«ããããšãç®æããŠããŸãã
以äžã®ã¹ãããã§AIãæŽ»çšããªããéçºãé²ããŠããŸãã
- Issueã®ãã©ãã·ã¥ã¢ããïŒ èŠæ±ã®æç¢ºåïŒAIã«ããæãæŒããã§ãã¯ïŒ
- å®è£ èšèšïŒ å®è£ æ¹éã®çå®ïŒAIã«ããèšèšããã¥ã¡ã³ãçæïŒ
- å®è£ ïŒ ã³ãŒãã£ã³ã°ïŒAIã«ããèŠçŽã«æ²¿ã£ãã³ãŒãçæïŒ
- ã¬ãã¥ãŒïŒ å質ä¿èšŒïŒAIã«ããå€è§çãªã³ãŒãã¬ãã¥ãŒïŒ
- PRäœæïŒ æ å ±å ±æïŒAIã«ããPR詳现ã®èªåçæïŒ
- E2Eãã¹ãïŒ èªåæ€èšŒïŒAIãçæãããã¹ãã±ãŒã¹ã®èªåå®è¡ïŒ
1. Issueã®ãã©ãã·ã¥ã¢ããïŒææ»ããæªç¶ã«é²ãAIã®æŽ»çšè¡
Issueãææ§ã§ãã£ããæ å ±ãäžè¶³ããŠãããšãæãéãã«ããææ»ãã³ã¹ãã®çºçããæ¬æ¥äžèŠãªæ©èœã®éçºãªã©ãçºçããæž©åºãšãªã£ãŠããŸããŸãããã®éèŠãªå·¥çšã«ãããŠãAIããæãæŒãããã§ãã¯ããIssueã®è³ªãé«ããããã®å£æã¡çžæããšããŠæŽ»çšããŠããŸãã
課é¡ã»ã€ã³ãã¯ãã®æç¢ºå
äžèº«ãèãã£ããã課é¡ããŒã¹ã§ã¯ãªãHowããŒã¹ã§IssueãäœæãããŠããå ŽåãAIã¯ãã€ã·ã¥ãŒããã¯ãããããã¬ãŒã ã¯ãŒã¯ã®6ã€ã®åããªã©ãåç §ãã以äžã®ããã«èª²é¡ã®æ·±æããè¡ããŸãã
- çŸç¶ã®èª²é¡ïŒ å ·äœçã«äœãåé¡ãïŒ
- 解決åŸã®ã€ã³ãã¯ãïŒ è§£æ±ºããããšã§ã©ã®ãããªäŸ¡å€ãçãŸãããïŒ
ããã«ãããããã®Issueãæ¬åœã«æ±ãã¹ãããã倿å¯èœãªã¬ãã«ãŸã§æ å ±éãå¢ããäœæ¥ãå¹çåããŠããŸãã
åãå ¥ãæ¡ä»¶ã®è©³çްå
åãå ¥ãæ¡ä»¶ã®äœææãAIã¯äžäººã§ã¯èŠèœãšããã¡ãªãšããžã±ãŒã¹ããšã©ãŒãã¿ãŒã³ãªã©ããéå»ã®é¡äŒŒäºäŸããã¹ããã©ã¯ãã£ã¹ããè£å®ããããšã§ãæ¡ä»¶ã®ç¶²çŸ æ§ãé«ããŸããããã«ãããPdM/POãšã®èªèå·®ç°ãæå°åããéçºéäžã®ä»æ§å€æŽã«ããææ»ãã³ã¹ãã®å¢å€§ãææ¢ããŠããŸãã
éçºã¿ã¹ã¯ã®äžèЧå
察象ãšãªãå®è£ ç¯å²ãšåœ±é¿æ©èœãæŽãåºãéãAIã¯Issueå 容ããFrontend/Backend/Infrastructureã®äœæ¥åé¡ãèªåã§è¡ããŸããæ°èŠäœæã»å€æŽã®ããAPIãDatabaseã®æ å ±ãæœåºããåŸã®å®è£ èšèšããã¹ã芳ç¹ã®ããã®æºåæ å ±ãè¿ éã«æŽããŸãã
ãã¹ã芳ç¹ã®äœæ
åãå ¥ãæ¡ä»¶ã«èšèŒãããå 容ãã€ã³ããããšããŠãAIã¯å¿ èŠãªãã¹ãé ç®ãç¶²çŸ çã«æŽãåºãäžèЧåããŸãã圱é¿ç¯å²ã«ãã£ãŠã¯ããªã°ã¬ãã·ã§ã³ãã¹ãã®ã±ãŒã¹ãå«ãã質ã®é«ããã¹ãã±ãŒã¹ãçŽ æ©ãçæããããšã§ãæåã§ã®ãã¹ãã±ãŒã¹äœæã®è² è·ãå€§å¹ ã«è»œæžããŠããŸãã
2. å®è£ èšèšïŒå®è£ ã®ç²ŸåºŠãé«ããå°å³ã¥ãã
質ã®é«ãIssueãã€ã³ããããšãããAIã«æ£ç¢ºã«å®è£ ãä»»ããããã®èšèšå³ããäœæããŸãã
AIãæŽ»çšããå®éã«ã©ãã«äœãäœã£ãŠããã®ãã詳现åããããã¥ã¡ã³ããçæããŸããå ·äœçã«ã¯ãAPIã®Interfaceãå¿ èŠãªModelã®å®çŸ©ãªã©ãå ·äœçãªå®è£ å å®¹ã«æ²¿ã£ãæ å ±ãæ§é åããŠåéããããšã§ããã®åŸã®å®è£ ãã§ãŒãºã®åºç€ãåºããŸãã
3. å®è£ ïŒèŠçŽã«æ²¿ã£ãäžè²«æ§ã®ããã³ãŒãçæ
äœæããèšèšããã¥ã¡ã³ããããšã«å®è£ ãè¡ããŸãã
äºåã«AIã«ã³ãŒãã£ã³ã°èŠçŽãå®è£ ã«ãŒã«ãåç §ãããããšã§ãä»ã³ãŒããšäžè²«æ§ã®ããã³ãŒããçæãããããå¶åŸ¡ããŠããŸãããã®ã«ãŒã«ããŒã¹ã®çæã«ãããã¬ãã¥ãŒã®æéãåæžããã³ãŒãå šäœã®å質ãåäžã«ä¿ã€ããšãå¯èœã«ãªããŸããWorktreeãå©çšãã䞊è¡éçºãªã©ãè€éãªéçºç°å¢ã«ãæè»ã«å¯Ÿå¿ããŠããŸãã
4. ã¬ãã¥ãŒïŒå€è§çãªèŠç¹ã«ããå質ãã§ãã¯
å®è£ ãããã³ãŒãã«ã€ããŠãCodeRabbit CLIãªã©ã®ããŒã«ã掻çšããåºç¯ãªèгç¹ã§ã®ã¬ãã¥ãŒãAIã«å®è¡ãããŸãã
- ã«ãŒã«ã®éµå®ïŒ ã³ãŒãã£ã³ã°èŠçŽãå®è£ ã«ãŒã«ã«å³ããŠãããã®ãã§ãã¯ã
- æœåšçãªãã°ïŒ ããžãã¯ãã¹ããšããžã±ãŒã¹ã®ææã
ããã«ãèªåèªèº«ã§å®è£ ããã³ãŒãã«ã€ããŠãAIã¬ãã¥ãŒãå®è¡ããããšã§ãã»ã«ãã¬ãã¥ãŒã®äžç°ãšããŠæŽ»çšãã人éã«ããã¬ãã¥ãŒã®åã«èªãåè³ªãæ ä¿ããã¹ããããçµã¿èŸŒãã§ããŸãã
5. PRäœæïŒå€æŽå 容ãããããããäŒããèªåå
PRïŒPull RequestïŒã®äœæãšè©³çŽ°ã®æŽæ°ãAIã«ä»»ããŸãã
Issueã®å 容ãšå®éã®ã³ãŒããåç §ãã以äžã®æ å ±ãèªåã§èšèŒããŸãã
- äœæ¥ãµããªãŒ
- å®è£ è©³çŽ°ïŒæè¡çãªå€æŽç¹ïŒ
- 倿Žãã¡ã€ã«äžèЧ
- çµåãã¹ãã±ãŒã¹
ããã«ãããPRå ã§ã®å€æŽããããããã衚çŸããã¬ãã¥ãŒã¢ãè¿ éãã€æ£ç¢ºã«å å®¹ãææ¡ã§ãããããµããŒãããŸãã
6. E2Eãã¹ãïŒèªåå®è¡ã«ããè¿ éãªæ€ç¥
éçºãããŒã®æçµæ®µéãšããŠãE2Eãã¹ãã宿œããŸãã
PRã«èšèŒããããã¹ãã±ãŒã¹ãPlaywrightãªã©ã®ããŒã«ãçšããŠèªåå®è¡ããŸããããã«ãããåºæ¬ãã¿ãŒã³ã«ã€ããŠåé¡ãèµ·ããŠããªããã®æ€ç¥ãç°¡åã«ãªããå®è£ ã®ãã°ã¬ãŒããè¿ éã«çºèŠããå質ã確ä¿ããŸãã
ð€ ãŸãšãïŒAIããããããå ·äœçãªå€é©ãšææ
æ¬èšäºã§ã¯ãéçºããã»ã¹ã«ãããIssueäœæããE2Eãã¹ãã«è³ããŸã§ãç§ãã¡ã®çµç¹ãAIãã©ã®ããã«ãå ±åµè ããšããŠæŽ»çšããéçºäœéšïŒDeveloper ExperienceïŒã®åäžãå³ã£ãŠããããã玹ä»ããŸããã
ãã®åãçµã¿ãéããŠåŸãããæå€§ã®ææã¯ã以äžã®2ç¹ã«éçŽãããŸãã
- å質ãšé床ã®äž¡ç«ïŒ Issueã®ãã©ãã·ã¥ã¢ãããã¬ãã¥ãŒå·¥çšã§ã®AI掻çšã«ãããææ»ãã®ãªã¹ã¯ãæãæŒãã®é²æ¢ãå®çŸããŸãããããã«ãããåææ®µéã§ã®åè³ªãæ ä¿ãããçµæãšããŠãŠãŒã¶ãŒã«å¿ èŠãªäŸ¡å€ãçŽ æ©ãå±ããããšãå¯èœã«ãªããŸããã
- åµé æ§ãžã®ã·ããïŒ åçŽãªããã¥ã¡ã³ãäœæãã³ãŒãã£ã³ã°ãã¬ãã¥ãŒãšãã£ãå®åçãªçްããäœæ¥ãAIã«ä»»ããããšã§ããšã³ãžãã¢ã¯è€éãªåé¡è§£æ±ºãã¢ãŒããã¯ãã£èšèšãšãã£ããæ¬æ¥éäžãã¹ãåµé çãªäºé ã«æéãå²ããããã«ãªããŸããã
ç§ãã¡ã®éçºå šäœã«ãããäœæ¥ã®äžŠå床ã¯ééããªãåäžããŠãããå šäœã§èŠãå Žåã®çç£æ§åäžã宿ããŠããŸãã
ð ä»åŸã®å±æãšAI掻çšã®èª²é¡
AIã®å°å ¥ã¯å€§ããªé²æ©ããããããŸããããAIã®ã¿ã§ãã¹ãŠã®ã¿ã¹ã¯ãå®ç§ã«çœ®ãæããããããã§ã¯ãªãããšãäºå®ã§ããç§ãã¡ã¯ä»¥äžã®é åã«åŒãç¶ããæ¹åã®äœå°ãšèª²é¡ãæããŠããŸãã
- è€éãªã¿ã¹ã¯ãžã®é©çšïŒ ããè€é床ãé«ãã詳现åã»åå²ãé£ããã¿ã¹ã¯ãç¹ã«è€æ°ã®ã·ã¹ãã ããã¡ã€ã³ãè·šãåºç¯å²ãªæ å ±ãåææ å ±ãšããŠå¿ èŠãªã¿ã¹ã¯ã«ã€ããŠã¯ãAIã«ããé©åãªãµããŒãã®é£æåºŠãé«ããšæããŠããŸãã
- ã³ã³ããã¹ãã®æŽåæ§æ ä¿ïŒ å¿ èŠãªããŒã¿ãè€éã§ãAIã«ããææ¡ãæ¢åã®ã³ãŒãããŒã¹ãããžãã¹ããžãã¯ãšä¹é¢ããªããããæŽåæ§ã®æ ä¿ã«ãããé£æåºŠãé«ãã¿ã¹ã¯ã«ã¯ãæ éãªäººéã«ããã¬ãã¥ãŒãäžå¯æ¬ ã§ãã
ãããã®èª²é¡ã¯ãAIã®ã³ã³ããã¹ããŠã£ã³ããŠã®ãããªãæ¡å€§ããæã ãã€ã³ããããã¹ãããã¥ã¡ã³ãã®æŽçã»æ§é åãé²ãããšã§ããã解決å¯èœã«ãªã£ãŠãããã®ãšæåŸ ããŠããŸãã
å€åãæããã䟡å€åµé ãž
AIã®åãäžæã䜿ãããšã«ãããç§ãã¡ã¯ãããæå³ã®ãããŠãŒã¶ãŒäŸ¡å€ãçã¿åºãããšããæ¬æ¥ã®ããã·ã§ã³ã«ãããéäžã§ããããã«ãªããŸããã
AIã¯æ¢ã«åãªãæµè¡ã§ã¯ãªããããè¯ãéçºäœéšãã²ããŠã¯ããè¯ããããã¯ããæäŸããããã®åªç§ãªææ®µãšãªã£ãŠããŸããä»åŸãç§ãã¡ã¯ãå€åãæãããå€åãåã蟌ã¿é²æ©ãç¶ããéçºçµç¹ãšããŠããããã¯ããæäŸããŠããæåã§ãã
ã芧ããã ãããããšãããããŸãããææ¥ä»¥éã®ã¢ããã³ãã«ã¬ã³ããŒã®èšäºããã²ã楜ãã¿ã«ïŒ
Discussion