ããã«ã¡ã¯ïŒã¡ã«ã«ãª Engineering Office ã® @mikichin ã§ãã æ¥ã11æ13æ¥ãã¡ã«ã«ãªã°ã«ãŒãã®ããã¯ã«ã³ãã¡ã¬ã³ã¹ãmercari GEARS 2025ããéå¬ãããŸãïŒ 2018幎ã«å®æœãããMercari Tech Conf 2018ããã7å¹Žã®æãçµãŠãä¹
ãã¶ãã®ãªãã©ã€ã³ã§ã®éå¬ãšãªããŸãã ããŒãã¯ãã¡ã«ã«ãªãšã³ãžãã¢ãªã³ã°ã®ä»ãã ä»å¹Žã®å
šç€ŸçãªããŒãã§ããããAI-Nativeãã«ã€ããŠã¯ãã¡ããã2018幎以éã¡ã«ã«ãªã°ã«ãŒãã®ãšã³ãžãã¢ãªã³ã°ãã©ã®ããã«å€åããŠãããããæè¡ã»çµç¹ã»ã«ã«ãã£ãŒã®èгç¹ããã玹ä»ããŸãã ãªã³ã©ã€ã³é
ä¿¡ã¯ãããŸããã®ã§ããã²äŒå Žã§ãèªèº«ã®ç®ãšè³ã§ç¢ºãããŠãã ããïŒïŒ äŒå Žã¯ãã¡ã«ã«ãªã®ãšã³ãžãã¢ãªã³ã°çµç¹ã«ããã信念ãè¡åã®åºç€ãšãªãå
±éèªèãææåãããMercari Engineering Principlesããã¢ããŒãã«ãããPASSION StageããGROW StageããMECHANISM Stageãã®3ã€ã®ã¹ããŒãžããããŸãã æ¬èšäºã§ã¯ããPASSION Stageãã®ã»ãã·ã§ã³ãã玹ä»ïŒãPASSION Stageãã¯åæéèš³ã®æäŸããããŸãã ãŸã ç³ã蟌ã¿ããããŠããªãæ¹ããèå³ã®ããã»ãã·ã§ã³ãããã¯ãã§ãããç³ã蟌ã¿ã¯ ãã¡ããã ãé¡ãããŸãã 12:15 – 12:45ãKeynote 13:00 – 13:20ãTechniques for Reliable Code Generation Using AI Agents ä»å¹Žãã³ãŒãã®æžãæ¹ã¯å€§ããªå€åãèŠãããŸãããã³ãŒã倿Žã¯äž»ã«AIãšãŒãžã§ã³ããè¡ãããã«ãªããç§ãã¡äººéã®ä»äºã¯å
šäœçãªèª¿æŽãææç©ã®ä¿®æ£ãäžå¿ãšãªã£ãŠããŠããŸãããããå€§èŠæš¡ãã€ã¬ã¬ã·ãŒãªã³ãŒãããŒã¹ãæ±ãå ŽåãAIãšãŒãžã§ã³ããã©ããŸã§èªåŸçã«äœæ¥ã§ãããã«ã¯æç¢ºãªéçããããŸãããããžã§ã¯ãå
šäœã®æèãååã«çè§£ã§ããŠããªããã¬ã€ãã©ã€ã³ãå®ãããŠããªããšããçç±ãããçæãããã³ãŒãã¯ããŒãžåã«å€§å¹
ãªæçŽããå¿
èŠãšãªãããšãå°ãªããããŸããã æ¬ã»ãã·ã§ã³ã§ã¯ãAIãšãŒãžã§ã³ããèªåŸçã«ã³ãŒã倿Žãè¡ããããã«èšå®ããæ¹æ³ã«ã€ããŠãç¹ã«ãã€ã°ã¬ãŒã·ã§ã³ãå®ååŠçã®å€ãã³ãŒããæ±ãå Žé¢ã§æå¹ãªãã¯ããã¯ã玹ä»ããŸãã 13:30 – 13:50ãAIã®ç€ ââãããã¯ããæ¯ãããç®ã«èŠããªãåãã€ããã ãèŠãç®ã䌌ãååãããå§ãŸã£ãç»ååã蟌ã¿ã®å°ããªå®éšã¯ããããŠâEmbeddingsâé©åœãžãšçºå±ããã¡ã«ã«ãªã®ãããã¯ããã«ã«ãã£ãŒããããŠããžãã¹ã«å€§ããªå€é©ããããããŸãããæ¬è¬æŒã§ã¯ããã®æ©ã¿ãæ¯ãè¿ããªãããç»åæ€çŽ¢ããAI Listingãã»ãã³ãã£ãã¯æ€çŽ¢ã«è³ããŸã§ãåãèŸŒã¿æè¡ãããã«ãã¬ãŒã¯ã¹ã«ãŒãå®çŸããŠããã®ããçŽè§£ããŸãããŸãããããã¿ã€ãããå
ç¢ãªã€ã³ãã©ãžãšæ¡åŒµããŠããéçšã§çŽé¢ãã課é¡ããããããåŸãããåŠã³ã«ã€ããŠãã玹ä»ããŸãã 14:15 – 14:55ãBuilding Foundation for Mercariâs Global Expansion ã¡ã«ã«ãªã¯åµæ¥åœæããã°ããŒãã«ãªããŒã±ãããã¬ã€ã¹ãå®çŸããããšãããžã§ã³ãšããŠæ²ããŠããŸããããããŸã§ã®ææŠããåŸãããåŠã³ãåçãèžãŸããçŸåšã¯âGlobal One Productâãšããããã°ããŒãã«ãžã®å±éãå éãããããã®æ°ããªå
±éåºç€ã®æ§ç¯ã«åãçµãã§ããŸããæ¬ã»ãã·ã§ã³ã§ã¯ãªããã®ã¢ãããŒãã«è³ã£ãã®ããã©ã®ãããªã¢ãŒããã¯ãã£ãå®è£
ã§æ¯ããŠããã®ããçµç¹çãªãã£ã¬ã³ãžãšæè¡ã®äž¡é¢ãã詳ãã玹ä»ããŸããè€æ°ãªãŒãžã§ã³å±éã«ãããéçºã»éçšäžã®ãã£ã¬ã³ãžããçµç¹æšªæã§ã®æææ±ºå®ã®å·¥å€«ã«ã€ããŠãå
±æããŸãã 15:15 – 15:35ãã¡ã«ã«ãªã«ããããã£ãã·ã³ã°å¯Ÿçã®è»è·¡ãšæªæ¥ ãã£ãã·ã³ã°æ»æã¯é²åãç¶ãããµãŒãã¹ããŠãŒã¶ãŒãçãæå£ã¯å¹Žã
å·§åŠåããŠããŸããã¡ã«ã«ãªã§ãããã®é²åã«å¯Ÿæããããã«å€æ§ãªé²åŸ¡çãè¬ããŠããŸããããããŠãã¹ããŒå°å
¥ã奿©ã«ãæŠãã®çŠç¹ã¯å€§ããå€ããããããã«ãã£ãã·ã³ã°ãé²ãããããããããã«å®ãããŠãŒã¶ãŒãæ©èœãåºããããããããã«åŒ·åºã§ãããªããUXãæãªããªãèªèšŒäœéšãå®çŸãããããžãšã·ããããŠããŸãããæ¬ã»ãã·ã§ã³ã§ã¯ãæ»æææ³ã®å€é·ãšãããã«åŒå¿ããŠçºå±ããŠãããã£ãã·ã³ã°å¯ŸçãèªèšŒã»ãªã«ããªãŒæœçã®æ©ã¿ãæ¯ãè¿ããŸãã 16:00 – 16:40ãThe Future of Platform in the Age of AI æ¬ã»ãã·ã§ã³ã§ã¯ãç§ãã¡ãçŸåšAIã瀟å
ã§ã©ã®ããã«æŽ»çšããŠãããã瀟å
ã®ãšã³ãžãã¢ãªã³ã°çµç¹ã®ããŒãºãã©ã®ããã«é²åãããšèãããããããããŠAIãšãŒãžã§ã³ããæ£èŠã®ãŠãŒã¶ãŒãšããŠãµããŒãã§ãããã©ãããã©ãŒã æ§ç¯ãšã¯äœãªã®ãã«ã€ããŠã話ãããŸãã AIæä»£ã«ããããã©ãããã©ãŒã ãšã³ãžãã¢ãªã³ã°ã®å§¿ããä»åŸ3幎ãã5幎ã®éã«åãã¹ã倧èãªäžæã«ã€ããŠäžç·ã«æ¢ã£ãŠãããŸãããã 17:00 – 17:40ãBackend Standardization with MCP ä»ã®ããŒã ã®ãµãŒãã¹ãçè§£ããã®ã«é ãæ±ããããšã¯ãããŸãããïŒåããŒã ãããããç°ãªãã³ãŒãæ§é ã䜿ã£ãŠããããéšéããšã«åæãããŠãããããŠãäœæ¥ããªããªãé²ãŸãªãããããªç¶æ³ãAIãšModel Context Protocol (MCP) ã§ã©ãå€ããããã®ããã玹ä»ããŸããæ¬ã»ãã·ã§ã³ã§ã¯ãŸãMCPãšã¯äœãã説æãããªãããã瀟å
ã®ããã¯ãšã³ãéçºãæšæºåããæè³å¯Ÿå¹æïŒROIïŒãé«ãããã²ãŒã ãã§ã³ãžã£ãŒãã«ãªãåŸãã®ããã話ãããŸãããã®åŸãå®éã«MCPãåããã¢ãã芧ããã ããçŸåšçŽé¢ããŠãã課é¡ãä»åŸã®èšèšã®å¯èœæ§ã«ã€ããŠãæ¢ã£ãŠãããŸãã ãmercari GEARS 2025ãã®ãç³ã蟌ã¿ã¯ ãã¡ããã ã ã€ãã³ã詳现 é嬿¥æïŒ 2025幎11æ13æ¥ïŒæšïŒ 11:00-18:00 æŠèŠïŒ mercari GEARS 2025ã¯ãã¡ã«ã«ãªã°ã«ãŒãã®ãšã³ãžãã¢ãªã³ã°çµç¹ã®æè¡ãžã®ææŠãšãã«ã«ãã£ãŒãäœæããæè¡ã€ãã³ãã§ãã æ¬ã€ãã³ãã¯ãåãªãæ
å ±äŒéã®å Žã§ã¯ãªãããšã³ãžãã¢ãã¡ãåºäŒããçµéšãå
±æãã亀æµãéããŠæ°ããªæ©äŒãçã¿åºãããããšãç®çãšããŠããŸãã åå è²»ïŒç¡æ äŒå ŽïŒTODA HALL & CONFERENCE TOKYO åå æ¹æ³ïŒãã¡ãã® ããŒãž ã«ãŠãç³ã蟌ã¿ãã ããã ã å
¬åŒãµã€ã ã æ¬ã€ãã³ãã«é¢ããè¿œå æ
å ±ãããã°ãéæ @MercariGears ã§ãç¥ããããŸãã®ã§ãæ°ã«ãªãæ¹ã¯ãã²ãã©ããŒããé¡ãããŸãã
èªå·±çŽ¹ä» ããã«ã¡ã¯ã@KiKiãšç³ããŸããä»å¹Ž9æã«1ã¶æéãã¡ã«ã«ãªã®ã€ã³ã¿ãŒã³ã«åå ãããŠããã ããŸããã 倧åŠã§ã¯æ
å ±ç³»ãå°æ»ããŠããŠã倧åŠã®ææ¥ã§ã¯ããŒããŠã§ã¢ããã¢ããªã±ãŒã·ã§ã³ã«è³ããŸã§å¹
åºãåéã«ã€ããŠåŠãã§ããŸãã ä»åã®ã¡ã«ã«ãªã®ã€ã³ã¿ãŒã³ã¯èªåã«ãšã£ãŠåããŠåå ããã€ã³ã¿ãŒã³ã§ããããå€ãã®ããšãåŠã³ãªãã倧ããæé·ããããšãã§ãããšæããŠããŸããæ¬èšäºã§ã¯å®éã«ã€ã³ã¿ãŒã³ã§åãçµãã å
容ãšåŠãã ããšãã玹ä»ã§ããã°ãšæããŸããã©ãããããããé¡ãããããŸãã åå ããã€ã³ã¿ãŒã³ã«ã€ã㊠ç§ãä»ååå ããã®ã¯ãBuild@Mercariããšããããã°ã©ã ã®äžéšã§ããã€ã³ã¿ãŒã³ã·ããã§ãã ãªããBuild@Mercariã®ããã°ã©ã èªäœã®è©³ããå
容ã«ã€ããŠã¯ãä»ã®èšäºã§ãšãŠã詳ãã玹ä»ãããŠããŸãã®ã§ããã¡ããã芧ãã ããã https://careers.mercari.com/mercan/articles/40098/ ã©ãããŠBuildã€ã³ã¿ãŒã³ã«ç³ã蟌ãã ã®ã äžè¬çãªã€ã³ã¿ãŒã³ã«å¿åããéãæè¡èŠä»¶ãäºåç¥èã®é«ãã«ããŒãã«ãæããæ¹ãå€ãã®ã§ã¯ãªãã§ãããããç¹ã«ãæ
å ±ç³»ãå°æ»ããŠããªãæ¹ã¯ãã¡ãããå°æ»ããŠããæ¹ã§ããã€ã³ã¿ãŒã³ã®å¿åæã«æ±ããããæè¡èŠä»¶ãç¥èã«äžå®ãæããããšã¯ãããããããŸããã 倧åŠã§ã¯ãã¢ã«ãŽãªãºã ãããŒããŠã§ã¢ãOSã®åºæ¬åçãªã©åºç€çãªå
容ãäžå¿ã§ãWebã¢ããªã±ãŒã·ã§ã³éçºãªã©ã®å®è·µçãªã¹ãã«ãåŠã¶æ©äŒã¯éãããããšããããŸãã ç§èªèº«ãããã³ããšã³ããããã¯ãšã³ããšãã£ãWebé¢é£æè¡ã¯å
šãã®æªçµéšã§ããã©ãããå§ããã°ããã®ãããããªãããšæããŠããŸããããããªäžãSTEMåéã»ITåéã«ããããã€ããªãã£ã§ãã女æ§ããLGBT+ã³ãã¥ããã£ã®æ¹ã察象ã«ãã¬ãŒãã³ã°ãšã€ã³ã¿ãŒã³ã·ããã®æ©äŒãæäŸãããBuild@Mercariããšãããªã³ã©ã€ã³ããã°ã©ã ãç¥ããŸããã ãã®ããã°ã©ã ã¯ãWebé¢é£æè¡ã®ç¥èã¯å
šããªãããã©ããã®æ¥çã«èå³ãããïŒããšããæ°æã¡ã²ãšã€ã§å¿åã§ããæã®æ·±ããé
åã§ãããããããªãç§ã«ãææŠã§ãããããããªãããšæããæãåã£ãŠå¿åããããšã«ããŸããã é
å±ãããããŒã ã«ã€ã㊠ç§ãé
å±ãããã®ã¯ãContact Centerããšãããã¡ã«ã«ãªã§ã®ãåãåãã察å¿ããµããŒããã瀟å
ã·ã¹ãã ãéçºããŠããããŒã ã§ãã çŸåšãã¡ã«ã«ãªã®ãåãåãã察å¿ã¯ãã客ããŸããã©ãŒã ãããåãåããããã客ããŸããããã ãããåãåããå
容ãªã©ã®æ
å ±ãå
ã«CSïŒã«ã¹ã¿ããŒãµãŒãã¹ïŒãªãã¬ãŒã¿ãŒã察å¿ããããšããæµãã«ãªã£ãŠããŸãããã ãããã®CSãªãã¬ãŒã·ã§ã³ã§ã¯ãåãåããã®è§£æ±ºãŸã§ã«æéãããããããããšãã課é¡ããããŸããã ãã®ããŒã ã§ã¯ãããã£ãCSãªãã¬ãŒã·ã§ã³ãææ¬çã«åæ§ç¯ãããããžã§ã¯ããé²ããŠããŸãããå
·äœçã«ã¯ãã客ããŸã®ãåãåããã«ãªã¢ã«ã¿ã€ã ã§Botã察å¿ããBotã§è§£æ±ºãé£ããå Žåã¯ãæäººãã£ãããéããŠCSãªãã¬ãŒã¿ãŒã察å¿ã«ãããããšããæ¹åŒãžã®ç§»è¡ãç®æããŠããŸããã€ã³ã¿ãŒã³æéäžã¯ããã®æ°ãããã£ããäœéšãžã®ç§»è¡ãé²ããŠãããã§ãŒãºã ã£ãã®ã§ãã¡ã«ã«ãªã®æªæ¥ã®CSäœéšãæ¯ããéèŠãªä»çµã¿ã«é¢ãããã®ã¯ããšãŠãé
åçãªãã€ã³ãã§ããã å®éã«åãçµãã å
容 ãããã¯ãã«é¢ããæ¥åã¯å€§ããåããŠãããã¯ãšã³ããšããã³ããšã³ãã«åãããŸãã ããã¯ãšã³ãã¯ãµãŒããŒåŽãããŒã¿ããŒã¹ã®åŠçãæ
ããããã³ããšã³ãã¯ãŠãŒã¶ãŒã«çŽæ¥è§Šããç»é¢ãæäœéšåãæ
åœããŸããä»åç§ã¯ãããã¯ãšã³ããšããã³ããšã³ãã®ã¿ã¹ã¯ãïŒã€ãã€æ
åœãããŠããã ããŸããã ããã¯ãšã³ãéçº äœ¿çšããèšèªã»ããŒã« èšèª: Go, SQL ããŒã«: GCP, Spanner, Kubernetes, BigQuery, Spinnaker, yo èæ¯ ãåãåãã察å¿ã·ã¹ãã ã®éçºãé²ããäžã§ãäŒè©±å±¥æŽãé¢é£ããŒã¿ã«çŽã¥ãè奿
å ±ãã¹ã ãŒãºã«ååŸããããšãã調æ»ãåæäœæ¥ãåæ»ã«é²ããäžã§ã®èª²é¡ãšãªã£ãŠããŸããã ãã®ãã£ããã®ã·ã¹ãã ã¯ãGCPã®ãµãŒãã¹ã䜿ã£ãå®è£
ã«ãªã£ãŠããŸããåã
ã®ãã£ãããç¹å®ããããã®IDã¯é£æºã»ä¿åããŠããŸããããConversationIDãšåŒã°ãããBotãäŒè©±ããIDã¯ãããšã¯ç°ãªãIDãšãªã£ãŠãããããã¯ã·ã¹ãã äžã§ã¯ä¿åããŠããŸããã§ããã ãã®ããããããŸã§ã®éçšã§ã¯ã察象ãšãªãäŒè©±ããŒã¿ãããConversationIDãååŸãããŸã§ã«ãè€æ°ã®æé ãèžãå¿
èŠããããŸãããäŸãã°ãäŒè©±ã®èšé²ããæ
å ±ãäžã€ã²ãšã€æ€çŽ¢ããããã§ãç®çã®ããŒã¿ãç¹å®ãããšãã£ãããã»ã¹ãçºçããŸãããã®ãããªæéã¯ãè¿
éãªåé¡è§£æ±ºãæ±ããããå Žé¢ã§ã¯ç¹ã«å€§ããªéå£ãšãªã£ãŠããŸããã å®è£
ããããš ãããã課é¡ã解決ãããããConversationIDãèªåçã«åéã»æ ŒçŽããä»çµã¿ãæ€èšããŸãããå
·äœçã«ã¯ãäŒè©±çµäºæã«å¿
èŠãªããŒã¿ãèªåçã«ååŸãããããŸã§ããŒãã«ã«ä¿åããŠããªãã£ãConversationIDããäŒè©±çµäºæã«ããŒãã«ãžãã®ãŸãŸä¿åããããã«å€æŽããŸããããã®ä»çµã¿ã掻çšããããšã§ã調æ»ããã»ã¹ã倧å¹
ã«ç°¡ç¥åããããå¹ççãªå¯Ÿå¿ãç®æããŸããã çµæ ãã®çµæãã€ã³ã¿ãŒã³ã®æéãéããŠãã¡ã³ã¿ãŒãããã¯ãããšããããŒã ã®æ¹ã®å©åãããã ãããã®ä»çµã¿ãå®éã®ã·ã¹ãã ã«åæ ãããããšãã§ããŸãããçŸå Žã§ã¯ã調æ»ã®é«éåã«åœ¹ç«ã£ãŠããããšãã£ã声ãããã ããŠãããèªåãé¢ãã£ãä»çµã¿ãå®éã«äœ¿ãããŠãããšå®æã§ãããšãŠãå¬ããæããŠããŸãããã®çµéšãéããŠãéçºãããã®ã誰ãã®äœæ¥ãå°ãã§ãå©ããããããšã®ãããããæ¹ããŠæããŸããã ããã³ããšã³ãéçº äœ¿çšããèšèªã»ããŒã« èšèª: TypeScript, GraphQL ããŒã«: Ant Design èæ¯ ãåãåããã«é¢ããæ
å ±ã«ã客ããŸã®ã¡ãŒã«ã¢ãã¬ã¹ãç»é²ãããŠããªãå Žåããã®ãåãåããã«ã¯ãããŒã®ã¡ãŒã«ã¢ãã¬ã¹ãç»é²ãããŸãããã ããã®ãããªå Žåã§ããCSãªãã¬ãŒã¿ãŒãæäœããç»é¢äžã«ã¯ããã客æ§ã®ã¡ãŒã«ã¢ãã¬ã¹å®ã«ã¡ãã»ãŒãžãéä¿¡ãããã¿ã³ãã衚瀺ãããŠããŸããã ããããæå¹ãªã¡ãŒã«ã¢ãã¬ã¹ã§ã¯ãªãããããã®ãã¿ã³ãæŒããŠãã¡ãŒã«ã®éä¿¡ã¯å®è¡ãããŸãããããã«ãããããããCSãªãã¬ãŒã¿ãŒã®ç»é¢äžã«ã¯ãã®æšã衚瀺ãããªããããã¡ãŒã«éä¿¡ãå®äºãããšãã誀èªèãæãå¯èœæ§ãããUIãšãªã£ãŠããŸããã å®è£
ããããš ãã®åé¡ã解決ããããããããŒã®ã¡ãŒã«ã¢ãã¬ã¹ãèšå®ãããŠããå Žåã«éä¿¡ãã¿ã³ãæŒããããããšã©ãŒã¡ãã»ãŒãžãã¢ãŒãã«ã§è¡šç€ºããåŠçã远å ããŸããã ãã®å®è£
ãè¡ãããã«ãéä¿¡å
ã¡ãŒã«ã¢ãã¬ã¹ã®æ
å ±ãååŸã§ããããã«ãããŒã¿ååŸã¯ãšãªã®äžéšã倿ŽããŸããããã®å€æŽã«ãããç»é¢åæèªã¿èŸŒã¿æã«å¿
èŠãªæ
å ±ãæŽã仿§ã«æ¹ããŸããã çµæ ç»é¢äžã«ãšã©ãŒã¡ãã»ãŒãžãæ£ãã衚瀺ãããããšã確èªã§ããŸãããããã«ãããCSãªãã¬ãŒã¿ãŒã誀èªèããããªã¹ã¯ãæžå°ããæ¥ã
ã®æ¥åãããæ£ç¢ºã«é²ããããšã«åœ¹ç«ã€æ¹åãå®çŸããŸããã ããŒã éçºãªãã§ã¯ã®åŠã³ ãã©ã€ããŒãã®å人éçºã§ã¯ãèªåã®æãã€ããŸãŸã«èªç±ã«å®è£
ããããšãå€ãããšæããŸããããããå人ã§ã¯éæãé£ãã倧ããªç®æšããããŒã ã§ããã°å®çŸã§ããããšããããŸããäžäººã§ã¯èšå€§ãªæéãšåŽåããããäœæ¥ããããŒã ã§åãçµãããšã§ãããããã®åŸæåéãæŽ»ãããç¥èãã¹ãã«ãå
±æããªããå¹çããé²ããããšãã§ããŸãã ããã«ãããŒã éçºã§ã¯åãªãäœæ¥ã®åæ
ã«ãšã©ãŸãããäºãã«ãã£ãŒãããã¯ãäžãåãããšã§ãããã¯ãã®å¯èœæ§ãåºããŠãããŸãã ä»åã®ã€ã³ã¿ãŒã³ã¯ãç§ã«ãšã£ãŠåããŠããä»äºã§ã®ããŒã éçºãããå€§èŠæš¡ãªéçºãã«è§Šããæ©äŒãšãªããŸãããç§ãããã§åŸãåŠã³ããæ¬¡ã«ã玹ä»ããŸãã ãããã¯ããžã®æºããæ¹ã¯æ¥çš®ã«ãã£ãŠããŸã㟠ä»åãContact CenterããŒã ã«é
å±ãããŠããã ããããŒã ã®æ¹ã
ã«ãµããŒãããŠããã ããããåãæ§åãéè¿ã§èŠãäžã§ãããŒã ã¡ã³ããŒããããã®åœ¹å²ãæ¥åå
容ã«ã€ããŠçè§£ãæ·±ããããšãã§ããŸããã ç§ãä»åã®ã€ã³ã¿ãŒã³ã«ãããŠã¯ã以äžã®ãããªããžã·ã§ã³ã®æ¹ãšé¢ããããããŸããã Product Manager ãããã¯ãã䜿ãã客ããŸïŒç§éã®å ŽåCustomer Serviceã®ã¡ã³ããŒïŒããã®ããŒãºãåããŸãšããŠãæé©ãªåœ¢ã§å®è£
ã§ããããã«ä»æ§ã決å®ãã圹å²ã§ããä»åã®ã€ã³ã¿ãŒã³ã§ã¯ãããã³ããšã³ãã®å®è£
ãè¡ãéããšã©ãŒã¡ãã»ãŒãžã®å
容ããã¶ã€ã³ã«ã€ããŠçžè«ãããŠããã ããŸããã Engineering Manager ãšã³ãžãã¢ã®æèŠãããŒã ããããžã§ã¯ãã«åæ ããããããå€ãã®äŒè°ã«åºåžãé¢ä¿è
ãšèª¿æŽãè¡ã£ãããä»ã®ãšã³ãžãã¢ãæææ±ºå®ã«è¿·ã£ãéã«çžè«ã«ä¹ãã®ãäž»ãªåœ¹å²ã§ãããŸããããŒã ã®ãšã³ãžãã¢äžäººã²ãšããšæ¯é±1on1ãè¡ããå°ãããšã課é¡ã«è³ãåŸãããªã©ãã³ãŒããæžãããšä»¥å€ã«ãããŒã ã¡ã³ããŒãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãéèŠããŠããå°è±¡ãåããŸããã ç§ãã€ã³ã¿ãŒã³æéäžã«äœåºŠã1on1ãèšå®ããŠããã ããçŽæ¥ã話ãããæ©äŒããããŸããã Frontend Engineer ããã³ããšã³ããšã³ãžãã¢ã¯ãŠãŒã¶ãŒãçŽæ¥ç®ã«èŠããéšåãå®è£
ãããšã³ãžãã¢ã§ããããŒã ã§ã®äŒè°ã®éã«ãå®è£
ãåºæ¥äžãã£ãéšåã玹ä»ããæéãããã®ã§ãããããã³ããšã³ãã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã¯è¯ããã£ãŠèŠå¿ããããã®ã§ããã€ãç§ã楜ãã¿ã«ããŠããŸããã Backend Engineer ããã³ããšã³ããšã³ãžãã¢ãšã¯éã«ã衚ããã¯èŠããªãéšåãæ
åœãããšã³ãžãã¢ã§ãããããã¯ãã®æ©èœã®ã«é¢ããè£åŽã®åŠçãè¡ãããšãã§ãããšããç¹ãé
åã§ããé©åãªããŒã¿æ§é ãAPIã®æ±ºå®ãã·ã¹ãã ã®ããã©ãŒãã³ã¹ã«é¢ããä»äºãã§ããã®ãå人çã«é¢çœããšèããŠããŸããçžã®äžã®åæã¡ãšããå°è±¡ã§ãã éçºã®æµã ããŒã éçºã§ã¯ãã¡ã³ããŒãšååããŠåããããããå人éçºã«ã¯ãªãã¹ããããå¿
èŠã«ãªããŸãã ããã§ã¯ããã®ãªãªãŒã¹ãŸã§ã®æµããç°¡åã«ã玹ä»ããŸãã Planning (äœããããæ±ºãã) 解決ãã¹ã課é¡ãšäœããã®ãæç¢ºã«ããæ®µéã§ããProduct Managerã®æ¹ãäžå¿ã«è°è«ããäœæ¥ã®æ¹åæ§ãå®ããŸãã Specäœæ / ãã±ãã起祚 Planningã§æ±ºãŸã£ãå
容ãããšã«ã仿§ãå
·äœåããã¿ã¹ã¯ç®¡çããŒã«ã«ç»é²ããŸãããã®æç¹ã§ã¬ãã¥ãŒãäžåºŠåããããšããããŸãã Technical Spec / 詳现èšèš æè¡çãªè©³çްèšèšãè¡ããããŒã¿ã®æµããAPIéžå®ãªã©ãå
·äœçãªå®è£
å
容ãè©°ããŠãããŸããä»åã®ã€ã³ã¿ãŒã³ã§ã¯ãããŒã ã®æ¹ããã§ã«ãã±ãã起祚ãŸã§ãçµããŠãã ãã£ãŠããããã詳现èšèšã®äœæããäœæ¥ãåŒãç¶ããŸããã éçº èšèšã«åºã¥ããŠã³ãŒããå®è£
ããŸãã Pull RequestïŒPRïŒäœæ GitHubäžã§ã³ãŒããå
±æããå®è£
ã®æå³ããã¹ãå
容ã説æããŸããæ±ã£ããªããžããªã§ã¯åæã«ãPRäœææã«ã¯èªåçã«CIããŒã«ãå®è¡ãããã³ãŒãã«å¯ŸããŠlintãåäœãã¹ãïŒunit testsïŒãèµ°ãä»çµã¿ã«ãªã£ãŠããŸããã ã¬ãã¥ãŒ ããŒã ã¡ã³ããŒãã³ãŒãã®å質ãèšèšã®æå³ã確èªããŸããã¬ãã¥ãŒã®çµææ¬¡ç¬¬ã§ã¯4ã®éçºã«æ»ã£ãŠã³ãŒããæžãçŽããå床ã¬ãã¥ãŒãåããæ¿èªãåŸããããŸã§ç¹°ãè¿ãããšã«ãªããŸãâŠã ãªãªãŒã¹æºå ç°å¢èšå®ãå®è¡æš©éã®ååŸãè¡ããéçºçšã®ç°å¢ã§ãã¹ããçµãããã§æ¬çªãªãªãŒã¹ã«åããŸãã ãªãªãŒã¹ 宿ããã³ãŒããæ¬çªç°å¢ã«ãªãªãŒã¹ãããŠãŒã¶ãŒãå©çšã§ããç¶æ
ã«ããŸãã å€§èŠæš¡éçºã«åããèšèšææ³ãClean Architectureãã«ã€ã㊠ä»åãããã¯ãšã³ãéçºã§è§Šãããšã«ãªã£ããªããžããªã¯ããClean Architectureãã«åºã¥ããŠèšèšãããŠããŸããã ã³ãŒãã®èšèšææ³ãšã¯ãç¹ã«å€§èŠæš¡ãªéçºã«ãããŠéèŠãšãªãæŠå¿µã§ããããã¯ããã³ãŒããã©ã®ããã«æŽçããé
眮ãããããæ±ºããéã«åèã«ããããªã·ãŒã®ããšã§ãããŒã å
šäœã§ã®å¹ççãªäœæ¥ãæ¯ããŸããããšãã°ãããã®ã³ãŒãã¯ããã«çœ®ãããŠããã«éããªãããšããŒã å
šå¡ãå
±éèªèãæãŠãããšã§ãéçºå¹çã倧ããåäžããŸãã Clean Architectureã§ã¯ãããã°ã©ã ã®åœ¹å²ã責任ã«å¿ããŠã³ãŒããã¬ã€ã€ãŒã«åãããŠããŸããããããã®ã¬ã€ã€ãŒã¯ãç¬ç«ããŠåœ¹å²ãæãããããã«èšèšãããŠãããç°ãªãã¬ã€ã€ãŒéã®äŸåé¢ä¿ãæå°éã«æããããšãç¹åŸŽã§ãããã®èšèšã«ããã倿Žãæ¡åŒµããããããªããšããå©ç¹ããããŸãã å€§èŠæš¡éçºã«è§Šããããšããªãã£ãç§ã«ãšã£ãŠãã³ãŒãã®èšèšææ³ãšããæŠå¿µã«è§Šããããšèªäœãéåžžã«å€§ããªåŠã³ãšãªããŸããã çæAIãçšããéçºã«ã€ã㊠ã¡ã«ã«ãªã§ã¯ç©æ¥µçã«æ¥åã«çæAIãå°å
¥ããŠããŸãã ä»åã®ã€ã³ã¿ãŒã³ãéããŠããœãããŠã§ã¢éçºã®çŸå Žã§ã¯ãèšèªã®ææ³ãèŠããŠã¹ã©ã¹ã©ãšæžãã ããã¹ãã«ã§ã¯ãªããã ããšå®æããŸãããçæAIã®é²åã«ãã£ãŠãã³ãŒããæžãäœæ¥ãããªãå¹çåãããŠãããå€§èŠæš¡ãªãããžã§ã¯ãã®ã³ãŒããçè§£ããéã«ãéåžžã«æçšã ãšããããšãåŠã³ãŸããã äžæ¹ã§ããã以äžã«éèŠã ãšæããã®ã¯ãå€§èŠæš¡ãªéçºã«é©ããèšèšææ³ããå°æ¥çã«ä»æ§å€æŽãããããèšèšãèªå以å€ã®äººã«ãåãããããã³ãŒããæžãããšã®å€§åãã§ãããŸããã¢ãžã¥ãŒã«åãã¡ã³ããã³ã¹æ§ãæèããéçºã®èãæ¹ããçŸå Žã§ã¯éèŠãããŠããããšã匷ãæããŸããã ãããã®çµéšããããç¥ããªãèšèªã䜿ããããžã§ã¯ãã ããâŠããšæ©äŒãéãã®ã¯ãå°ããã£ãããªããšæ°ä»ããããŸãããèšèªèªäœã®ç¥èã¯å¿
èŠã«å¿ããŠèº«ã«ã€ããŠããã°ãããçŸå Žã§åŠã¹ãèšèšãéçºã®èãæ¹ããããããé·ãèªåã®ç³§ã«ãªããçæAIã«åã£ãŠä»£ããããããšã®ãªã人æãžãšæé·ããããšã«ã€ãªããã®ã§ã¯ãªãããšæããŸãã çµããã« ãã®èšäºã§ã¯ãç§ãåããŠã®ã€ã³ã¿ãŒã³ãéããŠåŠãã ããŸããŸãªããšã«ã€ããŠã玹ä»ãããŠããã ããŸããã ïŒã¶æãšããæéã¯ãšãŠãçãæããŸãããããã«ã¿ã€ã ã§ç€Ÿå¡ã®æ¹ã
ã«æ··ãã£ãŠåããããããã話ããããŠããã ãäžã§ããã®èšäºã«ã¯æžããããªãã»ã©ã®å€§ããªåŠã³ãåŸãŸããããªã«ãããæ¬åœã«æ¥œããã£ãã§ããã¡ã³ã¿ãŒãããŠãã ãã£ã Peranikov ãããã¯ãããContact CenterããŒã ã®çæ§æ¹ãããããšãããããŸããã
Cross Border (XB) Engineeringã® @deeeeeeeeeet ã§ãïŒ å
æ¥ã®äºæ¥æŠç¥çºè¡šäŒã«ãããŠå
±æããŸãããïŒä»åŸæŽã«ã¡ã«ã«ãªã®æµ·å€å±éãå éãããããã«ã°ããŒãã«çã®ã¡ã«ã«ãªã¢ããªãå
æ¥ãªãªãŒã¹ããŸããïŒ ãã®ã¢ããªã¯çŸåšæäŸããŠãæ¥æ¬çã»ã¢ã¡ãªã«çã®ã¡ã«ã«ãªãšã¯ç°ãªãæ°ããã¢ããªã§ããïŒãŸãã¢ããªã ãã§ã¯ãªããã®è£åŽã®ããã¯ãšã³ãåºç€ãæ°ãã«åæ§ç¯ããŠããŸãïŒæ¬èšäºã§ã¯ïŒãšã³ãžãã¢ãªã³ã°ã®èгç¹ããã¡ã«ã«ãª ã°ããŒãã«ã¢ããªïŒä»¥äžãã°ããŒãã«ã¢ããªïŒãšãã®åºç€ã®æŠç¥ãã¢ãŒããã¯ãã£ãŒããããŸã§ã®ã¡ã«ã«ãªã®ææŠããåŸãããåŠã³ãæ¯ãè¿ãã€ã€ç޹ä»ããŸãïŒ ã¡ã«ã«ãªã«ãããè¶å¢ååŒ ãã¡ã«ã«ãªãã«åºåããããšãããã¿ãªããã®äžã«ã¯ïŒèªåã®ååãäžè¬ã®ã客ããŸã§ã¯ãªãäºæ¥è
ã«ãã£ãŠã代ç賌å
¥ããããçµéšãããæ¹ãããã£ããããããããŸããïŒããã¯ïŒæµ·å€ã®ã客ããŸãæ¥æ¬ã®ãã¡ã«ã«ãªãã«åºåãããŠããååã賌å
¥ã§ããè¶å¢ (Cross-Border, XB) ååŒãšããä»çµã¿ã«ãããã®ã§ãïŒ ã¡ã«ã«ãªã«ãããè¶å¢ååŒã¯ä»£ç賌å
¥ããŒãããŒãšã®é£æºã«ãã£ãŠå®çŸãããŠããŸãïŒæµ·å€ã®ã客ããŸã¯ïŒãŸãææºããŒãããŒã®Webãµã€ãäžã§ãã¡ã«ã«ãªãã®ååãæ³šæããŸãïŒãããšïŒããŒãããŒã賌å
¥ä»£è¡è
ãšããŠãã¡ã«ã«ãªãäžã§ååã賌å
¥ãïŒæ¯æãæç¶ããè¡ããŸãïŒåœå
ã®åºåè
ã¯ïŒãã®ä»£ç賌å
¥è
ã§ããããŒãããŒã®æå®ããæ¥æ¬ã®å庫ãžïŒéåžžã®åœå
ååŒãšåãããã«ååãçºéããŸãïŒååãå庫ã«å°çåŸïŒããŒãããŒãæ€åãæµ·å€åãã®æ¢±å
ãè¡ãïŒæµ·å€ã®ã客ããŸã®å
ãžåœéçºéãããšããæµãã§å®çŸãããŠããŸãïŒ ãã®ä»çµã¿ã¯ïŒæµ·å€ãšåœå
ã®ã客ããŸã®åæ¹ã«ã¡ãªããããããŸãïŒæµ·å€ã®ã客ããŸã«ãšã£ãŠã¯ïŒèšèªã®å£ãé貚ã®éããæ°ã«ããããšãªãïŒæ¥æ¬ã®ãŠããŒã¯ãªååãæè»œã«è³Œå
¥ã§ããŸãïŒäžæ¹ã§ïŒåœå
ã®ã客ããŸã«ãšã£ãŠã¯ïŒæµ·å€ã®ã客ããŸãšã®çŽæ¥çãªã³ãã¥ãã±ãŒã·ã§ã³ãåœéçºéãšãã£ãè€éãªæç¶ãã¯äžåäžèŠã§ïŒåœå
ååŒãšåãããã«è²©å£²ã®æ©äŒãäžçäžã«åºããããšãã§ããŸãïŒ è¶å¢ååŒäºæ¥ã¯2019幎ã«å§ãŸãïŒè¿å¹Žããã«æé·ããŠãã, GMVãšããŠã¯éå»3幎ã§15åã«æé·ããŠããŸãïŒç¹ã«ïŒã¢ãã¡ïŒã³ããã¯ïŒã²ãŒã ïŒãšã³ã¿ã¡é¢é£ã°ããºã®ã«ããŽãªãŒãååŒå
šäœã®å€ããå ããŠããæµ·å€ã®ã客ããŸããã®åŒ·ãéèŠããããŸãïŒ ãã®ãããªåŒ·ãéèŠãšæé·ãé¡§ã¿ãŠïŒä»£ç賌å
¥ããŒãããŒã®ãµã€ããéããä»çµã¿ã«å ãïŒ æ¥æ¬ã®ã¡ã«ã«ãªã®WebãµãŒãã¹ ãéããŠä»£ç賌å
¥ãå¯èœã«ããåãçµã¿ãéå§ããŸããïŒãã®ä»çµã¿ã«ããïŒæµ·å€ã®ã客ããŸã¯çŽæ¥ãã¡ã«ã«ãªãäžã§ã¢ã«ãŠã³ããäœæãïŒãã¡ã«ã«ãªããæäŸããäœéšãéããŠååã®æ€çŽ¢ãšè³Œå
¥ãè¡ãããšãå¯èœã«ãªããŸãã (åŒãç¶ãããŒãããŒäŒæ¥ãéã«æã圢åŒã¯ç¶ç¶ããŠããŸã)ïŒãã®åãçµã¿ã¯2024幎ã«ãªãªãŒã¹ã, çŸåšå°æ¹ŸãšéŠæž¯ããå©çšå¯èœã§å©çšè
æ°ã䌞ã°ããŠããŸãïŒ ããããŠè¶å¢ååŒäºæ¥ã¯é èª¿ã«æé·ããŠããŸãããïŒåæã«ããã€ãã®éèŠãªèª²é¡ãèŠããŠããŸããïŒä»¥äžã§èª¬æããããã«æ¢åã®æ¥æ¬ã®ã·ã¹ãã ã¯æ¥æ¬åžå Žã«ç¹åããŠäœãããŠããïŒåäžé貚ã»åäžèšèªãåæãšããèšèšã«ãªã£ãŠããŸãïŒè¶å¢ååŒæ©èœã¯ãã®äžã«è¿œå çã«å®è£
ããããïŒè€æ°åœãžã®å±éãååœåºæã®åç¿æ
£ãžã®å¯Ÿå¿ãå®çŸããŠããã«ã¯éçããããŸããïŒç¹ã«ã¢ãžã¢åžå Žã§ã¯ECå©çšã®å€ããã¢ãã€ã«çµç±ãšããç¶æ³ã«ãããŠïŒWebçã®ã¿ã®æäŸã§ã¯ç«¶äºåã«æ¬ ãããšããåé¡ããããŸããïŒ ãã®ãããªèª²é¡ãæ±ããªãããïŒæµ·å€åžå Žããã®éèŠã¯ç¢ºå®ã«ååšããŠããïŒç¹ã«ã¢ãã¡ã»ã²ãŒã é¢é£ååãžã®é¢å¿ã¯éåžžã«é«ãããšãããã£ãŠããŸãïŒçŸåšã¯å°æ¹ŸãšéŠæž¯ã®2ãæã®ã¿ã§ããïŒæ±åã¢ãžã¢ã欧米ã«ãåæ§ã®æœåšçãªéèŠãããããšã¯æããã§ããïŒãã®æ©äŒãæå€§éã«æŽ»ããããã«ã¯ããæ©ãå±éåœãæ¡å€§ããŠããæ°ããªã¢ãããŒããå¿
èŠã§ããïŒ ããã§ç§ãã¡ã¯ïŒåã«æ¢åã·ã¹ãã ãæ¡åŒµããã®ã§ã¯ãªãïŒã°ããŒãã«å±éãåæãšããæ°ããªã¢ããªã±ãŒã·ã§ã³ãšãã®åºç€ãæ§ç¯ãããšããæ±ºæã«è³ããŸããïŒããã¯è¶å¢ååŒããå§ããŠïŒå°æ¥çã«ã¯ååœã§ã®ããŒã«ã«ããŒã±ãããã¬ã€ã¹ã®ç«ã¡äžãïŒãããŠæçµçã«ã¯åœå¢ãè¶ããã°ããŒãã«ãªããŒã±ãããã¬ã€ã¹ã®å®çŸãèŠæ®ããæŠç¥çãªå€æã§ããïŒ æµ·å€å±éã®ã¢ãããŒã ã°ããŒãã«ãªããŒã±ãããã¬ã€ã¹ã®å®çŸã¯ïŒã¡ã«ã«ãªåµæ¥åœæããã®ããžã§ã³ã§ããïŒæµ·å€å±éãžã®ææŠã¯ä»åãåããŠã§ã¯ãããŸããïŒãããŸã§ã«ãã¢ã¡ãªã«ã§ã®äºæ¥å±éã«ææŠãïŒçŸåšããã®æé·ã«æ³šåããŠããŸãïŒéå»ã«ã¯ã€ã®ãªã¹ãžã®å±éã詊ã¿ãçµéšããããŸãïŒ ãããŸã§ã®æµ·å€å±éã§ã¯ïŒããããã®åœã«ãããŠïŒæ¥æ¬ãšåæ§ã®ããŒã«ã«ãªC2CããŒã±ãããã¬ã€ã¹ããŒãããç«ã¡äžãããšããã¢ãããŒããåã£ãŠããŸããïŒãããïŒä»åã®ã°ããŒãã«å±éã¯è¶å¢ååŒã®æåãšèª²é¡ããåŠãã æ°ããªã¢ãããŒããåã£ãŠããŸãïŒæ¥æ¬ããæµ·å€ãžååãå±ãããè¶å¢ååŒããäºæ¥ã®è»žã«æ®ãïŒããã§æ§ç¯ãã顧客åºç€ã掻ãããªããæ®µéçã«ãµãŒãã¹ãæ¡å€§ããŠããæŠç¥ã§ãïŒãŸãå±éãšãªã¢ã3幎以å
ã«50ã«åœãšå°åãç®æããŠããïŒã¹ããŒãæãåŸæ¥ãšã¯å€§ããç°ãªããŸãïŒããã¯æ¥æ¬ã®ã客ããŸãäºæ¥è
ã«åºåããŠããã ãããŠããŒã¯ã§è±å¯ãªååãäžçäžã«å±ããããšãèµ·ç¹ãšãïŒããããæŽãªãå¯èœæ§ã暡玢ããŠããæŠç¥ãžã®è»¢æãæå³ããŠããŸãïŒ ãã®äºæ¥æŠç¥ã®è»¢æã«ãããšã³ãžãã¢ãªã³ã°æŠç¥ã倧ããå€ããŸããïŒ ãããŸã§ã®æ¥æ¬ãšã¢ã¡ãªã«ïŒãããŠã€ã®ãªã¹ãžã®å±éã¯ããããç¬ç«ããç°ãªãã·ã¹ãã ã«ããå®çŸããŠããŸããïŒãã¡ããåœåã¯å
±éã®ã³ãŒãããŒã¹ãååœã«ãããã€ããæ¹åŒ (ãã ãããŒã¿ã¯åé¢) ãåã£ãŠããŸããïŒãããïŒæ¥æ¬åãã«äœãããã·ã¹ãã ãååœã®äºæ
ã«å¯Ÿå¿ãããŠããããšã«ããã³ãŒãããŒã¹ã®è€éå (e.g., åœã®ã¹ã€ããã®ããã®ifæãå€ãã®å Žæã§æžãããããšã«ãªã£ã) ãïŒåœéã§ã®æ¹éã®ã¢ã©ã€ã³ãå¿
èŠã§ããããã«ååœã®æææ±ºå®ã®ã¹ããŒãã®äœäžãšãã£ã課é¡ã«ã¶ã€ãããŸãã. æçµçã«ã¯ãã©ãŒã¯ã決å®ãïŒããããç¬ç«ããã·ã¹ãã ãšãªãïŒéçºéçšã®äœå¶ãåé¢ããŠããããšã«ãªããŸããïŒã¢ã¡ãªã«ã¯ãã®åŸã¢ããªèªäœãçŸå°ã®UI/UXã«åãããŠå·æ°ãè¡ãïŒç¬èªã®æ©èœããã®äžã«å®è£
ããŠããããšã«ãªãïŒæ¥æ¬ãšã¢ã¡ãªã«ã®ã·ã¹ãã ã¯ä»æ¥ã§ãåé¢ãããŠããŸãïŒ ãã®æ¹æ³ã¯ïŒè¿
éã«äºæ¥ãç«ã¡äžãïŒååœã®åžå Žã«æ·±ãæé©åã§ããç¹ã§ã¯æå¹ãªã¢ãããŒãã§ããïŒååœã®äºæ¥ãããããã§äŒžã°ããŠããããã«ç¬ç«ããçµç¹äœããšã·ã¹ãã ãéçºããŠããã®ãéèŠã ã£ããšæããŸãïŒäžæ¹ã§ããé·æçãªèŠç¹ã«ç«ã£ããšãã«ä»¥äžã®ãããªèª²é¡ãããïŒæ¬¡ã®å±éãžãšç¹ããããšãå°é£ã«ãªã£ãŠããŸããïŒ å±éã®ã³ã¹ããšã¹ããŒã : å±éåœãå¢ãããšãã芳ç¹ã§ã®å
±éã®åºç€ã®æŽåã¯ã§ããŠãããïŒæ¬¡ã®åœãèãããšãã«æ°ããªã¢ããªã±ãŒã·ã§ã³ãšããã¯ãšã³ãåºç€ãæ§ç¯ãçŽãããšïŒãããã¯æ¢åã®ã·ã¹ãã ã®å€§èŠæš¡ãªæ¹ä¿®ãèããå¿
èŠãããïŒ éçºãªãœãŒã¹ã®éå¹çæ§ : åããããªæ©èœãããããã®åœã§åå¥ã«å®è£
ããïŒååºç€ã«å°ä»»ã®ããŒã ãå¿
èŠãšãªãããïŒéçºãªãœãŒã¹ã®éè€ãéçšã®éå¹çæ§ãçºçããïŒ çŸç¶ã®ãè¶å¢ååŒãèªäœã¯æ¢åã®æ¥æ¬ã®ã·ã¹ãã äžã«æ§ç¯ã§ããŠããŸãïŒãããïŒä»¥äžã§ãã詳ããè¿°ã¹ãããã«æ¢åã®ã·ã¹ãã ã¯è€éåããŠããïŒä»åŸã®ããé«éã«å±éåœãå¢ãããŠããïŒã°ããŒãã«ã«åããããè¯ãUI/UXã®æäŸãè¡ã£ãŠããã®ã¯éçãããŠããŸããïŒãããŠãè¶å¢ååŒãã®æ¬¡ïŒäŸãã°æ°ããªåœã§ããŒã«ã«ã®ããŒã±ãããã¬ã€ã¹ãå±éãããšãã£ãããšã«ç¹ããããšã¯éåžžã«å°é£ã§ãïŒ ãã®ãããªèª²é¡ãæ ¹æ¬çã«è§£æ±ºãïŒãããŠãè¶å¢ååŒããäžå¿ãšããæ°ããªæµ·å€å±éãå¹ççã«å éãããããã«ã¯æ°ããªæŠç¥ãå¿
èŠã§ããïŒããã§ãåœãå°åããšã«åå¥ã®ã·ã¹ãã ãæ§ç¯ããã®ã§ã¯ãªãïŒåäžã®ã°ããŒãã«ãªåºç€ã§å
šãŠã®åœãå°åããµããŒãããããšããæ°ããªããžã§ã³ãæã¡ç«ãŠãã®åºç€ã®éçºãå§ããŸããïŒ ã°ããŒãã«åºç€ã®éçºæŠç¥ ãã®åäžã®ã°ããŒãã«åºç€ã®éçºã®æŠç¥ã«ã¯ããã€ãã®ã¢ãããŒããèããããŸãããæ¡åŒµãšåæ§ç¯ã®ãã€ããªãããªã¢ãããŒãããéžæããŠããŸãïŒãã®ã¢ãããŒãã«è³ã£ãèæ¯ããããŸã§ã®ã¡ã«ã«ãªã®ããã¯ãšã³ãã·ã¹ãã ã®å€é·ãã説æããŸãïŒ ã¡ã«ã«ãªã®ããã¯ãšã³ãã·ã¹ãã ã®å€é· ã¡ã«ã«ãªã®ããã¯ãšã³ãã·ã¹ãã ã¯Monolithã¢ãŒããã¯ã㣠(åäžã³ãŒãããŒã¹ã«å
šãŠã®æ©èœãå®è£
ããæ¹åŒ) ãšããŠå§ãŸã£ãŠããŸãïŒã¢ã¡ãªã«äºæ¥ãã€ã®ãªã¹äºæ¥ãéå§ãããšãã«ãã©ãŒã¯ãšããéžæè¢ããšãããšãã§ããã®ã¯ãã®ããã§ã (ããããã®åœã®ã¹ã±ãŒã«ãæ¯ããããã«è£åŽã®ã€ã³ãã©ãããŒã«ãšããŠå€ãã®ä»çµã¿ãããããããè€è£œããã®ã¯å®¹æã§ã¯ãªãã£ãã¯ãã§ãã)ïŒ 2017幎ãããããç¹ã«æ¥æ¬ã®çµç¹ã®èŠæš¡ã¯æ¥æ¿ã«æ¡å€§ãå§ããŸãïŒçµç¹ã®æ¡å€§ã«ããåäžã®å·šå€§ãªã³ãŒãããŒã¹ã«å€ãã®äººãåæã«éçºãè¡ãããšãå°é£ã«ãªãïŒãŸãäžéšã®æ©èœã®ãã°ã§ãµãŒãã¹å
šäœã«éå®³ãæ³¢åããäºãå€ãçºçããŸããïŒå ããŠã»ãšãã©ã®ã·ã¹ãã ããªã³ãã¬äžã«æ§ç¯ãããŠããïŒãã®éçšãæ¡åŒµãããã«ããã¯ã«ãªã£ãŠããŸããïŒãã®ãããªåé¡ã解決ããããã«Microservicesã¢ãŒããã¯ãã£ç§»è¡ãšã¯ã©ãŠãç§»è¡ (ããã«äŒŽãDevOpsåãžã®ç§»è¡) ãéå§ããŸãïŒç§èªèº«ãå
¥ç€Ÿããã®ã¯ãã®çŽåã§ïŒç§»è¡ãããžã§ã¯ãã®æšé²ãšMicroserviceséçºã®åºç€ãããŒã«ãæŽãã Platform EngineeringããŒã ã®ç«ã¡äžããšæ¡å€§ ãæ
ã£ãŠããŸããïŒ Microservicesã¢ãŒããã¯ãã£ç§»è¡ã®ã¢ãããŒããšããŠã¯ Stranglerãã¿ãŒã³ ãæ¡çšããŸããïŒããã¯æ¢åã®ã·ã¹ãã ã®å段ã«Gatewayã眮ãïŒãã®Gatewayã軞ã«ãã©ãã£ãã¯ãåŸã
ã«æ°ããã·ã¹ãã ã«ç§»è¡ããŠãããšããæ¹éã§ãïŒããå
·äœçã«ã¯ïŒ(1) æ¢åã·ã¹ãã ã«å®è£
ãããŠããæ©èœçŸ€ãMicroservicesãšããŠåãåºã (2) Gatewayãããã®æ©èœã®å©çšãã©ãã£ãã¯ãåŸã
ã«MicroservicesåŽã«æµãïŒãç¹°ãè¿ãããšã§æ®µéçã«æ°ã·ã¹ãã ã«ç§»è¡ããŠããã¢ãããŒãã§ãïŒç§»è¡éå§ããæ°å¹ŽãçµéããŸãããïŒå€ãã®æ©èœãMonolithããåãåºãïŒãŸããã®äžã§æ°ããæ©èœãéçºããŠããŸããïŒãŸãã»ãŒå
šãŠã®ãµãŒãã¹ã®ã¯ã©ãŠãç§»è¡ãå®äºããŠããŸã (ãµãŒãã¹æ°ã§ãããš100ãè¶
ããŠããŸã)ïŒ Microserviceså以éã§ã¯æ¥æ¬ã§ã¯ã¡ã€ã³ãšãªãC2CããŒã±ãããã¬ã€ã¹äºæ¥ã«å ããŠè€æ°ã®æ°èŠäºæ¥ã®ç«ã¡äžããå§ãŸãããšã«ãªããŸãïŒãã£ã³ããã¯äºæ¥ã®ã¡ã«ãã€ïŒæå·è³ç£ã®ã¡ã«ã³ã€ã³ïŒB2Cäºæ¥ã®ã¡ã«ã«ãªShopsïŒãããŠã¹ãããã€ããµãŒãã¹äºæ¥ã®ã¡ã«ã«ãªããã§ãïŒã¡ã«ãã€ã¯ã¡ã«ã«ãªã®æ±ºæžã·ã¹ãã ãåãåºããŠããïŒMicroservicesã¢ãŒããã¯ãã£ãšããŠC2Cãšåãã€ã³ãã©åºç€äžã«æ§ç¯ããŠããŸãïŒã¡ã«ã³ã€ã³ã¯ã»ãã¥ãªãã£ã®ããã«ã€ã³ãã©ã¯å€§ããåé¢ããŠããŸããïŒåºæ¬çã«ã¯åæ§ã®ã¢ãŒããã¯ãã£ãã¿ãŒã³ã§éçºããŠããŸãïŒShopsã¯Microservicesã¢ãŒããã¯ãã£ã§ããC2Cãšã¯åãé¢ããç¬ç«ããã·ã¹ãã ã«ãªã£ãŠããŸã (ã¢ãã€ã«ã¢ããªãšããŠã¯äžã€ã§ããïŒè£åŽã®ããã¯ãšã³ãã¯åé¢ããŠããŸã)ïŒ ãã®æ°å¹Žã«æž¡ãMicroservicesç§»è¡ãšè€æ°äºæ¥ã®ç«ã¡äžãã«åãããŠæšé²ããŠããã®ã¯å
±éåºç€ã®æŽåã§ãïŒèªåããªãŒãããŠããPlatform Engineeringã®ã¬ã€ã€ãŒãšããŠã®éçºåºç€ãããŒã«ã ãã§ã¯ãªãïŒ IDåºç€ ã æ±ºæžåºç€ ïŒããŒã±ãã£ã³ã°åºç€ã®ãããªè€æ°äºæ¥ã«ãŸããã£ãŠå©çšã§ããåºç€ãéçºããŠããŸããïŒãããã嵿¥ä»¥æ¥ã¡ã«ã«ãªã®ããã¯ãšã³ãã·ã¹ãã ã®å€é·ã§ãïŒ æ¢åã·ã¹ãã ã®èª²é¡ 2025幎ã®çŸåšïŒæ¢åã®ã·ã¹ãã ã俯ç°ãããšãã«ããã€ãã®æ§é çãªèª²é¡ãæ±ããŠããŸãïŒ æã倧ããªåé¡ã¯ïŒC2CããŒã±ãããã¬ã€ã¹ãšããŠéèŠãªæ©èœãMonolithåºç€ã«æ®ã£ãŠãããšããç¹ã§ãïŒStranglerãã¿ãŒã³ãšããŠããã€ãã®æ©èœãMicroserviceãšããŠæãåºãããšã¯ã§ããŠã¯ããŸããïŒãã®æ¹åŒã¯Proxyçã«äžç©ã®æ©èœãæãåºãã«æ¢ãŸãããŒã¿ç§»è¡ãŸã§é²ãŸãªãã£ãéšåãå€ããããŸãïŒç¹ã«ããã©ã³ã¶ã¯ã·ã§ã³ç®¡çããé
éããšãã£ãæ©èœãMonolithãšãã®DBããæãåºãããšãã§ããŠããŸããïŒãããã¯ããžãã¯ãšããŠå¯çµåã匷ãããŸãåé¢ãé²ããããªãã£ããšããã®ã倧ããªçç±ã§ãïŒãã®ããMonolithãžã®åŒ·ãäŸåãæªã ã«æ®ã£ãŠããŸãïŒãã®éšåã¯ä»ã§ãå€ãã®éçºãšå€æŽãå¿
èŠãªäžæ¹ã§è€éãªã³ãŒãããŒã¹äžã«æ®ã£ãŠãããã«ïŒæ¥æ¬äºæ¥ã®ç¶ç¶çãªæ¹åã«ãããŠãæ©æ¥ãªå¯ŸåŠãå¿
èŠã§ãïŒMicroservicesç§»è¡ã®åæããé¢ãã£ãŠãã人éãšããŠã¯ïŒãã®éèŠéšã«åæããæãŸãªãã£ãã®ã¯å€§ããªåçã§ãïŒ ã°ããŒãã«å±éãèŠæ®ããŠãããã¯å€§ããªèª²é¡ã«ãªããŸãïŒMonolithã«æ®ããã©ã³ã¶ã¯ã·ã§ã³ç®¡çãšé
éã·ã¹ãã ã¯æ¥æ¬åžå Žã«ç¹åããèšèšã«ãªã£ãŠããŸãïŒãã©ã³ã¶ã¯ã·ã§ã³ç®¡çã¯æ¥æ¬åã®ã¿ãåæãšããŠããïŒè€æ°é貚ã§ã®ååŒïŒçºæ¿åŠçïŒååœç°ãªãçšå¶ãžã®å¯Ÿå¿ã远å ããããšã¯éåžžã«ã³ã¹ãã¯é«ãã§ãïŒé
éã·ã¹ãã ãæ¥æ¬åœå
ã®é
鿥è
ã®ã·ã¹ãã ãšå¯çµåããŠããïŒååœã®ããŒã«ã«é
鿥è
ïŒç°ãªãé
éãªãã·ã§ã³ãžã®å¯Ÿå¿ã¯æ ¹æ¬çãªäœãçŽããªãã«ã¯å®çŸã¯é£ãããªã£ãŠããŸããïŒ ãŸãïŒC2CããŒã±ãããã¬ã€ã¹ãšB2C Shopsã®ã·ã¹ãã ä¹é¢åé¡ããããŸãïŒçŸç¶ã¯å¥ã
ã®ãã©ã³ã¶ã¯ã·ã§ã³ïŒé
éã·ã¹ãã ããããããæã£ãŠããã ãã§ãªãïŒãããã¯ãã®ç®¡çãåãããŠããïŒçµæãšããŠæ¥æ¬ã®ã客ããŸã«å¯ŸããŠãçµ±äžçãªäœéšãæäŸã§ããŠããŸããïŒããã¯ïŒããšããšã®ããžã§ã³ãšããŠç¬ç«ãããµãŒãã¹ãèæ
®ãããŠããããšïŒæ¹åæ§ãå€ããçµ±åããããšæã£ãŠãäžã®Monolithåé¡ã«ããå®è¡ãé£ããã£ãããšãåå ãšããŠæããããŸãïŒ Microservicesã¢ãŒããã¯ãã£èªäœã«ã課é¡ããããŸãïŒåãµãŒãã¹ã®ãªãŒããŒã·ãããšèªç±åºŠãéèŠãïŒãµãŒãã¹éã§ååãªæœè±¡åãè¡ããŠããªãã£ãããšïŒé©åãªãã¡ã€ã³åé¢ãè¡ããŠãããåå²ã®åäœãéåžžã«å°ããããŠããŸã£ãããšãåå ã§ïŒå€ãã®å°ããªïŒäœãæ¹ã埮åŠã«ç°ãªãMicroservicesãæ°å€ãæ§ç¯ãããŠããŸããŸããïŒãã®ããMicroservicesã®éçšã®ã³ã¹ããéåžžã«é«ããªã£ãŠããŸã£ãŠããŸãïŒã¡ã«ã«ãªã¯ã¹ããŒãæãæã£ãŠç©äºãé²ããããçµç¹å€æŽãé »ç¹ã«è¡ããŸããïŒãã®ãã³ã«Microservicesã®ãªãŒããŒã·ããã®ç§»ç®¡ãå¿
èŠã«ãªãïŒå®è£
ã®å·®ç°ã«ãããªã³ããŒãã®ã³ã¹ããé«ããªã£ãŠããŸãïŒ ãããã®å¶çŽã«ããïŒæ¢åã·ã¹ãã ã®å»¶é·ç·äžã§ã°ããŒãã«å±éãé²ããããšã¯ïŒæè¡çã«ãããžãã¹çã«ãéçãããããšãæç¢ºã«ãªããŸããïŒ ã°ããŒãã«åºç€ã®æ¹åæ§ ãã®ãããªå€é·ãšçŸç¶ã®èª²é¡ãããŒã¹ã«ã°ããŒãã«åºç€ã®éçºæ¹éãšããŠããã€ãã®ã¢ãããŒããèæ
®ããŸããïŒãŸãïŒéå»ã®ã¢ã¡ãªã«å±éã®ããã«ãã©ãŒã¯ãšããéžæè¢ãåãããšã¯éåžžã«é£ãããªã£ãŠããŸãïŒMicroservicesåãããå€ãã®ã·ã¹ãã ãè€è£œããŠããã®ã¯çŸå®çã§ã¯ãããŸããïŒå
šãŠããŒãããåæ§ç¯ããããšãèããŸãããïŒãããã³ã¹ããšå¹çã®èгç¹ããéžæè¢ããå€ããŸããïŒçµè«ãšããŠãæ¢åã®ã·ã¹ãã ã®æ¡åŒµãšåæ§ç¯ã®ãã€ããªãããªã¢ãããŒãããéžæããŠããŸãïŒ ãã®ã¢ãããŒãã§ã¯ïŒã©ããŸã§ãæ¡åŒµãšãïŒã©ããŸã§ãåæ§ç¯ããã? ã®ã©ã€ã³ã決ããã®ãéèŠã§ããïŒæ¢åã®ã·ã¹ãã ã®å€ãã¯æ¥æ¬ã®åžå Žã«ç¹åãããã®ã«ãªã£ãŠããïŒãŸãå€ãã®ãµãŒãã¹ãMicroservicesåãããŠããŸãïŒãããå
šãŠãæ¡åŒµããŠããã®ã¯çŸå®çã§ã¯ãããŸãããïŒæ¥æ¬äºæ¥ã¯åŒãç¶ãéèŠã§ããããïŒã°ããŒãã«å±éã¯ããããç¬ç«ããŠé²ããããããšãéèŠã§ããïŒãŸãæªã æ®ãMonolithã«ã°ããŒãã«ããäŸåããããšãé¿ããããšããåŒ·ãæ°æã¡ããããŸããïŒ ãæ¡åŒµããšããŠã¯è€æ°äºæ¥ã®ç«ã¡äžããšãšãã«çºå±ããå
±éåºç€ãäž»ã«æŽ»çšããããšã«ããŸããïŒç¹ã«åŒ·ãå°éæ§ãæ±ããããïŒãããŠæ¡åŒµæ§ãèæ
®ããŠèšèšãããŠããµãŒãã¹ãéžå®ããŠããŸãïŒä»¥äžã§è©³ããè¿°ã¹ãŸããMicroservicesããã®è±åŽãåæã«èããŠããïŒå°ããªçްããªãµãŒãã¹ã«ã¯äŸåããã®ã§ã¯ãªãïŒååãªå€§ãããã€ç¬ç«ããããã¡ã€ã³ã(SaaSãšããŠçœ®ãæããããã¬ãã«) ã«äŸåããããšã決ããŸããïŒãã®åºæºã«ããïŒäŸãã°ïŒIDåºç€ã¯ã°ããŒãã«ã§å
±éã«ïŒãŸã決æžåºç€ã¯ã¡ã«ãã€åºç€ãéããŠStripeã«æ¥ç¶ãã°ããŒãã«ã®é貚ãããŒã«ã«ã®æ±ºæžææ®µã«å¯Ÿå¿ããŠããïŒãšãã£ãããšãé²ããŠããŸãïŒä»ã«ãæ€çŽ¢åºç€ïŒããŒã±ãã£ã³ã°åºç€ãªã©ãæ¢åã®ã·ã¹ãã ãæ¡åŒµããããšã§æŽ»çšããŠããŸãïŒ ãã以å€ã®éšåã¯ãåæ§ç¯ãã®éžæè¢ããšã£ãŠããŸãïŒç¹ã«äžè¿°ããC2CãµãŒãã¹ãšããŠã®ããã©ã³ã¶ã¯ã·ã§ã³ç®¡çããé
éããã¢ã€ãã ã»ãããã¯ã管çãã¯äœãçŽããããããŸããã§ããïŒæ¥æ¬ãšåãåé¡ãé¿ããããã«ïŒ(1) ãããããçã«é·æçãªæ¡åŒµæ§ã容æã«ãã (2) CãšBã®ååãåçã«æ±ãïŒçµ±äžããUI/UXãæäŸããããšãã§ããããšãèæ
®ãïŒãŸãè€æ°ã«åœå±éãå¥ã®åœã«ãããŠæ°ããªããŒã«ã«ããŒã±ãããã¬ã€ã¹ãå®çŸã§ããããã«ããããã« (3) ååœã®é貚ïŒèšèªïŒçšå¶ã»é¢çšïŒæ³èŠå¶ã«æè»ã«å¯Ÿå¿ã§ãã (è€æ°ã§ããããšãåæã«ããïŒä»¥äžã®Tenetsãåç
§) (4) æ¥æ¬ä»¥å€ã®åœã®ååãé
éææ®µãæ±ãããšã«ãªã£ãŠã察å¿ã§ããããã«ããïŒãåæãšããŠæ§ç¯ããŠããŸãïŒ ãŸãåã«äœãçŽãã ãã§ã¯ãŸãæ°ããªå¥åºç€ãèªçããã ãã§ãïŒåæã¯ã°ããŒãã«ã§ã®æåãã¡ã€ã³ãšãã€ã€ãïŒæçµçã«ã¯æ¥æ¬ã®C2CãšB2Cã®åºç€ã眮ãæããŠããïŒãšããæ³å®ã§åãå§ããŠããŸã (å®éã«ãªãªãŒã¹ãŸã§éæããã®ã§ãã®åºç€ãæ¥æ¬ã§ã掻çšããŠããããã®ãããžã§ã¯ããå§åããŠããŸã)ïŒ ã¢ãã€ã«ã¢ããªãšWebã«é¢ããŠãã°ããŒãã«ã§ã¯ç°ãªãUI/UXã¯å¿
é ãªã®ã§äœãçŽãã®éžæã«ãªã£ãŠããŸãïŒå ããŠããã¯ãšã³ããå·æ°ããããšã§APIèªäœãåãæ¿ããããšãã§ãïŒå®è£
èªäœãããè¯ãã§ããŸãïŒ MicroservicesããModular Monolithãž äžè¿°ããMicroservicesã¢ãŒããã¯ãã£ã®æ±ãã課é¡ã«åãçµããããåæ§ç¯ãããããã¯ãšã³ãåºç€ã¯Modular monolithã¢ãŒããã¯ãã£ãšããŠéçºããŠããŸãïŒ Microservicesã®èª²é¡ ã¡ã«ã«ãªã«ãããŠMicroservicesã¢ãŒããã¯ãã£ã®éçšã³ã¹ããé«ããªã£ãŠããŸã£ã倧ããªçç±ã¯ïŒåãµãŒãã¹ã®éçºã®èªç±åºŠãé«ããŠããŸã£ããšããã«ãããŸãïŒãµãŒããŒå®è£
ã¯Goã§ïŒããŒã¿ããŒã¹ãšããŠSpanner/CloudSQL (MySQL)ïŒã€ã³ãã©ãšããŠKubernetesãå©çšããïŒãšããæäœéã®æè¡ã¹ã¿ãã¯ã®çµ±äžã¯é²ããŠããŸããïŒäžæ¹ã§ïŒã¬ããžããªæŠç¥ã¯Polyrepo (1ãµãŒãã¹ = 1 GitHub ã¬ããžããª)ãšããŠïŒåºæºãšãªããã³ãã¬ãŒããæäœéã®å
±éã©ã€ãã©ãªã¯ããã©ïŒã¬ããžããªã®æ§æãå®è£
æ¹éã¯åããŒã ã«å§ãã圢ã«ãªã£ãŠããŸããïŒãã®ããïŒãã¯ãã§èŠããšåãGoã®Microservicesã§ããïŒãã¯ãã§ã¿ããšããªãç°ãªããµãŒãã¹ãéç£ãããŸããïŒäžã€äžã€ã®ãµãŒãã¹ã®éçšã®ã³ã¹ãã¯å°ãããŠãïŒç°ãªããµãŒãã¹ãè€æ°é¢åèŠãå¿
èŠããããšãã®å·®ç°ã«ããå
±éåãã§ããïŒã³ã¹ããé«ããªããšããããšãèµ·ãã£ãŠããŸãïŒ ããã«å ããŠã¡ã«ã«ãªã¯ãšã«ããã¹ããŒãæãæã£ãŠç©äºãé²ãæ¹åæ§ã転æããŠããããçµç¹å€æŽãé »ç¹ã«è¡ããŸãïŒãã®ããMicroservicesã®ãªãŒããŒã·ããã®ç§»ç®¡ãé »ç¹ã«è¡ãå¿
èŠããããŸãïŒç§»ç®¡ã®ãã³ã«ãªã³ããŒããå¿
èŠã§ããå®è£
ã®å·®ç°ã«ãããã®ã³ã¹ããé«ããªããŸãïŒãŸãå
±éåãé²ããã®ãé£ããã§ãïŒ ãŸãç¹ã«Monolithããç§»è¡ãé²ããC2CåŽã¯ãã¡ã€ã³ã®é©åãªåé¢ãã§ããŠããªããšãããå€ãïŒãµãŒãã¹ã®åé床ãäœããšãããå€ããããŸãïŒããã«ããæ©èœè¿œå ã®ããã«è€æ°ã®ãµãŒãã¹ïŒããŒã ã«è·šã£ã倿Žãå¿
èŠã«ãªãïŒã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ãã®å¢å€§ã«ãç¹ãã£ãŠããŸãïŒãµãŒãã¹ããšã®ãªãŒããŒã·ããã匷åãããšããæ¹åæ§ã¯éã«å€ããã®å€æŽãåãå
¥ãã«ãããããšããããšã«ãç¹ãã£ãŠããŸãïŒ ãã®ãããªèª²é¡ã«å¯ŸããŠäžæãMicroservicesã¢ãŒããã¯ãã£ã«ããå®è£
ãé²ããã®ã ã¡ã«ã«ãªShopsã«ããMonorepoã䜿ã£ãã¢ãããŒã ã§ãïŒãã®æ¹åŒã§ã¯Shopsã«é¢ããå
šãŠã®Microservicesã1ã€ã®Repoã«ãŸãšãïŒãµãŒãã¹éã®å®è£
ãæœè±¡åã»çµ±äžåãããšããããšãå®çŸããŠããïŒè€æ°ãµãŒãã¹ã«ããéçšã®ã³ã¹ããåæžããŠããŸãïŒéçºäœéšãšããŠã¯Monolithçã«ïŒè£ã§ã¯ãµãŒãã¹ãåé¢ãããŠãããã€ããã(ããã«ããèé害æ§ã®ã¡ãªãããåŸããã)ïŒãšããäž¡æ¹ã®è¯ãéšåãåãå
¥ããããšãã§ããŠããŸãïŒ äžæ¹ã§ãã®ã¢ãããŒãã§ãã£ãŠã課é¡ã¯ãããŸãïŒããããMonorepoã®ããã®ã€ã³ãã©ãèªååã®ä»çµã¿ã管çç¶æããŠããã®ã¯éåžžã«ã³ã¹ããé«ãã§ã (æ¢åã®Platformãšå€§ããåããŠæ§ç¯ãããããå
±éåºç€ããŒã ãšã®é£æºãé£ãããªã£ãŠããããšãåå ãšããŠæããããŸã)ïŒããããMicroservicesã®ãã¹ãïŒãããã€ïŒéçºç°å¢ã®æ§ç¯ã¯è€éã«ãªããããåŸãŸããïŒäŸãã°ãã¹ãç°å¢ã¯å
šéšã®ãµãŒãã¹ãPRããšã«è€è£œãããšããå¯è±ªçãªã¢ãããŒãããšã£ãŠããŸãïŒãŸããµãŒãã¹ããšã«DBãåãããªã©ãå³å¯ã«è¡ãªã£ãŠããïŒã€ã³ãã©ã®ã³ã¹ããé«ããªã£ãŠããŸã£ãŠããŸãïŒ Modular Monolith ãã®ãããªèæ¯ãããïŒæ°ããåºç€ã®æ§ç¯ã«ã¯Modular monolithã¢ãŒããã¯ãã£ãŒãéžæããŠããŸãïŒåãªãModular monolithã§ã¯ãªãç¹å®ã®Moduleãå¿
èŠãšããã°ç¬ç«ããŠãããã€å¯èœãªåœ¢ã«ããŠããŸã (Service Weaverã®ã³ã³ã»ããã«è¿ã)ïŒ åæã®ã¡ã«ã«ãªã®Monolithã§ã¯é©åãªãã¡ã€ã³åé¢ã»ã¢ãžã¥ãŒã«åé¢ãã§ããªãã£ãããã«ã³ãŒãã®å¯çµåãšããã«ããè€éåãçºçãããšæã£ãŠããŸãïŒãµãŒãã¹ã®å¢çïŒäŸåé¢ä¿ãã¢ãžã¥ãŒã«ããšã«æç¢ºã«æŽçããããšã§åæ§ã®åé¡ã«åœãããªãããã«ããŠããŸãïŒMicroservicesã®ããã«çްããåé¢ããããããšã§è€éã«ãªãã®ãé¿ãïŒååã«æ©èœãåçž®ãããã¢ãžã¥ãŒã«ãäœãããã«ããŠããŸãïŒãŸãå¿
èŠãªãšãã«ç¬ç«ãããããã€ãå¯èœã«ããããšã§Microservicesçãªèé害æ§ã®å©ç¹ãå¯èœã«ããŠããŸãïŒ åæã®éçºãã§ãŒãºã§ã¯äººæ°ãå€ããªãã®ã§åºæ¬ã¯ç¹å®ã®ã¢ãžã¥ãŒã«ã«ãªãŒããŒã·ãããéå®ããããšã¯ããŠããŸãã (ãã¡ããç¹å®ã®é åã«åŒ·ã人ã¯ãã)ïŒçãã³ãŒãããŒã¹å
šäœã«ãªãŒããŒã·ãããæã£ãŠãããããã«ããŠããŸãïŒããã«ããïŒãããã¯ãéçºã®åªå
床ã«ãã£ãŠã¢ãžã¥ãŒã«ã®ã¢ãµã€ã³ãåçã«æ±ºãŸãïŒMicroservicesã§çºçããç¡é§ãªã³ãã¥ãã±ãŒã·ã§ã³èª¿æŽã³ã¹ãããªãããŠããŸãïŒäžæ¹ã§ïŒä»åŸçµç¹ãæ¡å€§ãããšããŠãïŒã¢ãžã¥ãŒã«åäœã§ã®ã¢ãµã€ã³ã¯å¯èœã§ããïŒãã€ãŠã®Monolithã§ããã£ãåé¡ã解決ã§ããäœå°ããããŸãïŒ Monolithã§ããããšã§ïŒã¯ã³ãã€ããªã«ããããŒã«ã«éçºç°å¢ã®æ§ç¯ã¯å®¹æã«ãªãïŒãŸããã¹ãããããã€ãã·ã³ãã«ã«ãªãïŒMicroservicesã«ãã£ãŠçããŠããéçºè² è·ããªããããšã§ããè¯ãéçºäœéšãäœããŠããŸãïŒã€ã³ãã©ãCI/CDåºç€ãPlatform EngineeringããŒã ãæäŸãããã®ããã®ãŸãŸäœ¿ãããšãã§ãïŒShopsã®Monorepoã¢ãããŒãã§é¥ã£ãåºç€éçšã³ã¹ããæããããšãã§ããŠããŸã (ããè©³çŽ°ã¯æ¬¡ã®ãã¹ãã§ @yanolabãã玹ä»ããŸã)ïŒ äžæ¹ã§ãã®æ¹éã¯çµç¹å
šäœã®äžã§ã¯æ°ããïŒæ¢åã®Microservicesã¢ãããŒããšã©ãå
±åããŠããããšãã課é¡ããããŸãïŒçŸå®çã«äžåºŠåé¢ããMicroservicesãå
šãŠMonolithãžãšæ»ããŠããããšã¯ç°¡åã§ã¯ãããŸããïŒãã®ããMicroservicesèªäœã¯ä»åŸãæ®ãããšã«ãªããšæããŸãïŒMicroserviceséçºãšéçšã®ã³ã¹ããæžãããŠããããã«ïŒãµãŒãã¹ã®åå²åäœãããé©åãªã¬ãã«ã«åãããŠããããšãïŒããã«èšãã°Shopsã§å®çŸãããããªMonorepoã¢ãããŒãã«ããçµ±äžåãé«ããŠããããšãéèŠã ãšæã£ãŠããŸãïŒãããŠå°æ¥çãªæ°èŠäºæ¥ã§ããããMicroservicesã¢ãŒããã¯ãã£ãŒãåæã§éžæããããšã¯ïŒç¹å¥ãªçç±ããªãéãã¯ïŒããªãæ¹ããããšæã£ãŠããŸãïŒãã®ã°ããŒãã«åºç€ã®Modular monolithæ§ç¯ãã¿ãŒã³ã暪ã«å±éãïŒå®è£
ãã¿ãŒã³ãå
±éåããŠããããšãèããŠããŸãïŒ æè¡ã¹ã¿ã㯠以äžã¯ãã®åºç€ã®æ§ç¯ã«å©çšããŠããæè¡ã¹ã¿ãã¯ã®äžèЧã«ãªããŸãïŒåºæ¬çã«ã¯ã¡ã«ã«ãªããããŸã§å¹ã£ãŠããã¹ã¿ãã¯ãåæã«å€§ããå€ããªãã§ããããããŸã掻çšããããã«ããŠããŸãïŒ ã€ã³ãã©: åŒãç¶ãã¡ã€ã³ã®ã¯ã©ãŠãã«ã¯Google Cloudãæ¡çšããŠããŸãïŒã¡ã€ã³ã®ãªãŒãžã§ã³ã¯æ±äº¬ã䜿ã£ãŠããŸããïŒå°æ¥çã«ã¯(ç¹ã«ããã©ãŒãã³ã¹ã®èгç¹ãã) å¥ã®ãªãŒãžã§ã³ãå©çšããå¯èœæ§ãèæ
®ããŠããŸãïŒã¢ããªã±ãŒã·ã§ã³ã®å®è¡åºç€ã«ã¯Platform EngineeringããŒã ã管çããKubernetes (GKE) ãå©çšããŠããŸãïŒ ããŒã¿ããŒã¹: ããŒã¿ããŒã¹ã«ã¯AlloyDBãéžæããŸããïŒãããŸã§ã¯ã¡ã«ãã€ãäžå¿ã«Spannerãéžå®ããŠããŸãããïŒ (1) é·æçãªå±éãèæ
®ããæã«Google Cloud å
šãŠã§æ
ããªãå¯èœæ§ãèæ
®ãïŒãªãã¹ãããã¯ã€ã³ãé¿ããããš (2) PostgreSQLã«ããããè¯ãéçºäœéšãšã³ã·ã¹ãã ãå©çšããããšïŒãèæ
®ããŠAlloyDBãéžå®ããŸããïŒä»ã«ãCockroachDBãèããŠããïŒä»åŸã®å±éã«ãã£ãŠã¯ä¹ãæããèæ
®ããå¯èœæ§ããããŸã èšèªã»ãã¬ãŒã ã¯ãŒã¯: ãµãŒããŒã¯GoïŒiOSã¯SwiftïŒAndroidã¯KotlinïŒWebã¯Next.js (TypeScript)ãšããŠããŸãïŒããã¯å€§ããå€ããŠããŸãã Monorepo: ãã詳现ã¯å¥ã®ããã°ããã®ããšæžãããŸããïŒiOS, AndroidïŒWebã¯ããããæ¥æ¬ã®ãµãŒãã¹ã®ã¬ããžããªãMonorepoãšããŠæ¡åŒµããããšã§éçºãããŠããŸãïŒæ¥æ¬ãšã°ããŒãã«ã§å
±æå¯èœãªã¢ãžã¥ãŒã«ãåãåºãïŒCI/CDãå
±éåããããšã§ïŒéçºãšéçšã®å¹çåãããŠããŸãïŒ Tenets ãã®æ°ããªåºç€ãšã¢ããªã®éçºã«ã¯æ¥æ¬ã®ã¿ã§ã¯ãªãã€ã³ãæ ç¹ã®ã¡ã³ããŒãå«ããŠå€ããåå ããŠããŸãïŒããŸããŸãªèæ¯ã®ã¡ã³ããŒãåå ããŠãïŒãããŸã§äžã§ç޹ä»ããŠãããããªæ¹åæ§ãå®çŸããã«ã¯ïŒçãåçã®æéã«ãããã£ãŠæææ±ºå®ãè¡ããããšãéèŠã§ãïŒ ãããå®çŸããããã«ãGlobal Engineering Tenetsããçå®ããŸããïŒTenetsã¯Amazonã® Tenets: supercharging decision-making ãåèã«ããŠããŸãïŒ äž»ãªTenetsãããã€ã玹ä»ããŸã: Design for two : ãœãããŠã§ã¢éçºã«ãããŠããæ©èœã®ãµããŒãã1ãã2ã«å¢ãããããïŒ2ãã3ã«å¢ããæ¹ã容æã§ããããšã¯å®æãšããŠããããšæããŸãïŒäŸãã°ïŒã¢ããªã±ãŒã·ã§ã³ãæ¢ã«2ã€ã®èšèªããµããŒãããŠããå ŽåïŒ3ã€ç®ã®èšèªã远å ããã®ã¯ç°¡åã§ãïŒäžæ¹ãã¢ããªã±ãŒã·ã§ã³ã1ã€ã®èšèªãããµããŒãããŠããªãå Žåã2ã€ç®ã®èšèªã远å ããã«ã¯i18nã®ä»çµã¿ãªã©å€ãã®æºåãå¿
èŠã«ãªããŸãïŒããã¯ã°ããŒãã«å±éã«ãããŠãåæ§ã®ããšãèšããŸãïŒæ¢ã«è€æ°åœã»å°åã«å¯Ÿå¿ããŠããåºç€ã«æ°èŠã®å°åãåœã远å ããã®ã¯ãåäžå°å/åœåãã®ã¢ããªã±ãŒã·ã§ã³ãæ¡åŒµãããããã¯ããã«å®¹æã§ãïŒæ©èœãã·ã¹ãã èšèšã«ãããŠã¯åžžã«2ã«åœã»å°å以äžãæ³å®ããããã«ããŠããŸãïŒ Global by default but enable localization : ã°ããŒãã«å©çšã«åããã·ã¹ãã éçºãé²ããäžæ¹ã§ïŒåã«è€æ°åœãžäºæ¥ãæ¡å€§ããã ãã§ãªãïŒäž»èŠåžå Žã§ã¯ããŒã«ã©ã€ãŒãŒã·ã§ã³æœçã宿œããŸãïŒãã®ããïŒã·ã¹ãã ã¯è€æ°ã®åœã
ãžè¿
éãã€å®¹æã«æ¡åŒµã§ãã€ã€ïŒãã€ç¹å®ã®åœã®èŠä»¶ããµããŒãããæè»æ§ãèæ
®ããå¿
èŠããããŸãïŒé·æçã«ã¯ããŒã«ã©ã€ãŒãŒã·ã§ã³ã®ããçŸå°ã«ãšã³ãžãã¢ãªã³ã°ããŒã ãèšçœ®ããå¯èœæ§ãããïŒåœŒããç¬ç«ããŠããŒã«ã©ã€ãºæ©èœãéçºã§ããããã«ããå¿
èŠããããŸãïŒ Learn and unlearn from the past experience: ä»åæ°èŠã§ãåæ§ç¯ãããéšåãå€ããããŸãïŒãã ãïŒããã¯å®å
šã«æ°èŠã§ããã¹ãã§ã¯ãªãïŒäžã§ç޹ä»ãããããªéå»ã®åŠã³ãéèŠãªè³ç£ãšããŠæŽ»çšããã¹ãã§ãïŒèªåã¯æŠèŠã説æããŸãããïŒããããã®é åïŒã¢ãã€ã«éçºïŒWebéçºïŒãããã¯ãéçºãªã©ããŸããŸãªé åã§èŠçŽãã¹ã課é¡ããããŸãïŒæ°ããæ¡çšããã¡ã³ããŒã«é¢ããŠããããã®æŽ»çšã¯åŒ·ããé¡ãããŸããïŒ Keep each country’s business isolated : æ¢åã®åºç€ããã©ãããã©ãŒã ãæŽ»çšããå Žåã§ããçžäºã«åœ±é¿ãäžããªãããã«ãã¹ãã§ãïŒäŸãã°ïŒã°ããŒãã«ã§çºçãããã°ãã€ã³ã·ãã³ããæ¥æ¬ã®äºæ¥ã«åœ±é¿ãäžãããïŒãã®éãçããããšãé¿ããå¿
èŠããããŸãïŒ ãããã¯ãã¶ã€ã³ããã¥ã¡ã³ããæžãæãªã©å€ãã®å Žé¢ã§æéãšããŠå©çšãããŠããŸã (ç¹ã«Design for Twoã¯åæã§èšããã)ïŒãã¡ããïŒå€ãã®äººãåå ããŠãïŒé·æçãªãããžã§ã¯ããã§ãã以äžã¯çްããªéšåã§ã¯ãºã¬ã¯çºçããŠããŸããïŒå€§ããªæ¹åæ§ãšããŠã¯çãåãæ¹åãåããã®ã§ã¯ãªãããšæã£ãŠããŸãïŒ ä»åŸã®å±æ ä»åã®ãªãªãŒã¹ã§ã¯åºæ¬ãšãªãæ©èœã®å®è£
ãå®äºããç¶æ
ã§ãïŒä»åŸã¯ãã®äžã«è¶å¢ååŒã«ãšã£ãŠéèŠã«ãªãæ©èœïŒäŸãã°äºæ¥è
ååã®äºçŽè²©å£²æ©èœãé宿©èœïŒãªã©ãå®è£
ãã€ã€ïŒå±éåœãã©ãã©ãå¢ãããŠããããšãç®æšãšããŠããŸãïŒæšªå±éã ãã§ã¯ãªãïŒç¹å®ã®åœãžã®ããŒã«ã©ã€ãºãšã°ããŒã¹ãè¡ã£ãŠããå¿
èŠãããïŒããã«åºç€ã掻çšããŠãããã§ãŒãºã«ãªããŸãïŒãŸãäžã§ç޹ä»ããããã«åºç€èªäœã¯æ¥æ¬ã§ã䜿ããããšãæ³å®ããŠããïŒãã®çœ®ãæãã®ãããžã§ã¯ããå§ããŠããŸãïŒããã«ãããããŸã§æ±ããŠããæè¡çãªè² åµãåæã«è¿æžããŠããããšãèããŠããŸãïŒ mercari Gears 2025 2025幎11æ13æ¥ã«ãå®ã«7幎ã¶ããšãªãã¡ã«ã«ãªã°ã«ãŒãã®ããã¯ã«ã³ãã¡ã¬ã³ã¹ãmercari GEARS 2025ããéå¬ãããŸãïŒ@yanolob ãšãšãã«ãBuilding Foundation for Mercariâs Global Expansionããšé¡ããŠç»å£ããããŸãïŒ ã°ããŒãã«ã¢ããªãéçºããã«ãããããªããã®ã¢ãããŒãã«è³ã£ãã®ãïŒã©ã®ãããªã¢ãŒããã¯ãã£ãå®è£
ã§æ¯ããŠããã®ãïŒçµç¹çãªãã£ã¬ã³ãžãšæè¡ã®äž¡é¢ãã詳ãã玹ä»ããŸãïŒè€æ°ãªãŒãžã§ã³å±éã«ãããéçºã»éçšäžã®ãã£ã¬ã³ãžãïŒçµç¹æšªæã§ã®æææ±ºå®ã®å·¥å€«ã«ã€ããŠãå
±æããŸãïŒ ãã²ïŒã»ãã·ã§ã³ãèãã«æ¥ãŠãã ããïŒ åå ç»é²ã¯ãã¡ã ð https://gears.mercari.com/ ææ¥ã®èšäºã¯ @yanolobããã§ããåŒãç¶ã é£èŒäŒç»ïŒã¡ã«ã«ãªåã®äžçå
±éã¢ããªãã¡ã«ã«ãª ã°ããŒãã«ã¢ããªãã®éçºèå°è£ ããæ¥œãã¿ãã ããã
ããã«ã¡ã¯ãCross Border (XB) Engineeringã® @deeeeet ã§ãã å
æ¥ã2025幎9æ30æ¥ã«è¶å¢ååŒäºæ¥ã®æ°æŠç¥ãçºè¡šããã¡ã«ã«ãªåã®äžçå
±éã¢ããªãã¡ã«ã«ãª ã°ããŒãã«ã¢ããªãïŒä»¥äžãã°ããŒãã«ã¢ããªïŒã®æäŸãéå§ããŸããã ããã§ä»åã¯ãã°ããŒãã«ã¢ããªã®éçºãããžã§ã¯ãã®éçºèå°è£ãã玹ä»ããé£èŒäŒç»ãã¹ã¿ãŒãããããŸãã ãããã¯ã¯ããã¯ãšã³ãéçºã®ã¿ã§ã¯ãªããã¢ãã€ã«éçºãWebéçºãSRE & Enablingãªã©ãªã©å€å²ã«ãããã®ã§ã楜ãã¿ã«ã ãã¡ã«ã«ãª ã°ããŒãã«ã¢ããªãã®æŠèŠã ã¡ã«ã«ãªåãšãªãäžçå
±éã¢ããªã§ã æµ·å€ã®è³Œå
¥è
ã¯ãã°ããŒãã«ã¢ããªããéããŠæ¥æ¬ã®ãã¡ã«ã«ãªããšãã¡ã«ã«ãªShopsãã®ååãé²èЧã»è³Œå
¥ããããšãã§ããŸããèšèªã決æžãè€éãªæç¶ããªã©ã®èª²é¡ãè§£æ¶ãããæµ·å€ã®è³Œå
¥è
ã¯æ¥æ¬ã®ãã¡ã«ã«ãªããšåæ§ããããããã€å®å¿ã»å®å
šã«ãè²·ãç©ã楜ãããŸãã2025幎9æ30æ¥ããå°æ¹Ÿã»éŠæž¯ã§æäŸãéå§ããä»åŸãå±éããåœãå°åãé æ¬¡æ¡å€§ããäºå®ã§ãã å
¬éäºå®è¡š ãã¡ãã¯ãåŸæ¥ãåèšäºãžã®ãªã³ã¯éã«ãªããŸãã Title Author Rebuilding Foundation for Global Expansion @deeeet Behind the Infrastructure Powering Global Expansion @yanolab TBD: Multi-domain strategy with Next.js @gary Order management in GOP @takady TBD: Global search strategy @shinpei The journey of item translation @aymeric Platform ãã SRE ã«è»¢çïŒçŸå Žã®å£°ãèããªããæ¹åããŠããïŒ @hatappi Something about global IdP @gia TBD: GOP Android strategy and execution and all in between @Karthi Mirrord + E2E testing @ryotarai TBD: How we overcome Project management challenges (How to plan a product launch in 6 months) @g-bansal TBD: B items integrations strategies in GOP @ahsun Guest post from FT payment platform â Engineering for Multi-Currency and Multi-Provider Payments @ryuyama TBD @manas TBD @vb TBD: GOP App Release Strategy @manoj readability; backend common packages etc @osari.k Scaling iOS Development: Building and Operating Multiple Apps in a Large-Scale Monorepo @shingt TBD: distributed transactions on checkout flow, specially error handling, retry @ahsun TBD: Framework for handling i18n resources in web modular monorepo @gary TBD: Order (Double Master Data Migration); ItemxTransaction (decoupling using sagas/external locking) @andrei Something about global payment and checkout @huhu TBD: Ops development with AI @waiting.lau Taming Agents in the Mercari Web Monorepo @maxi Sync Saga @Shishir TBD: High output teams @Atif TBD: Ordering Features @Shreyasi TBD @Chong (ãã§ã³) TBD @chris ã²ãšã€ã§ãæ°ã«ãªãèšäºãããæ¹ã¯ããã®èšäºãããã¯ããŒã¯ããŠãããã ãšã³ãžãã¢åãå
¬åŒX ããã©ããŒïŒãã§ãã¯ããŠãã ãããïŒ
ã¯ããã« 2025幎床ã®Build@Mercariã«åå ããã¡ã«ã«ãª ããã®MLããŒã ã§ã€ã³ã¿ãŒã³ãããŠããïŒ Ariaãš@Ririkoã§ããç§ãã¡ã¯ã¡ã«ã«ãª ããã®æ±äººã®ãªã¹ã¯äºæž¬ã«åãçµã¿ãŸããããã®èšäºã§ã¯ãã€ã³ã¿ãŒã³ã§åãçµãã ããšã»ææ³ãªã©ã«ã€ããŠæžããŠãããããšæããŸãïŒ èªå·±çŽ¹ä» ïŒ Aria ããã«ã¡ã¯ïŒå€§åŠïŒå¹Žã®ïŒ Ariaã§ããç§ã¯é«æ ¡çã®æBuild@Mercariã«åå ããå€äŒã¿ã§Buildã€ã³ã¿ãŒã³ãããŠããŸãïŒæ©æ¢°åŠç¿ã»AIã«ã€ããŠåŠãã§ã¿ãããšæããã¡ã«ã«ãªããã®MLã«å¿åããŸããã ïŒ Ririko 倧åŠã®åŠéš3幎ã®@Ririkoã§ãïŒå€§åŠã§ã¯é»åæ
å ±å·¥åŠãå°æ»ããŠããŸããæ¥äŒã¿ã«Build@Mercariã«åå ããŸãããæ©æ¢°åŠç¿ãAIã«ä»¥åããèå³ããããä»åã®Buildã€ã³ã¿ãŒã³ã«å¿åããŸãããæ¬æ Œçã«ã€ã³ã¿ãŒã³ã«åå ããã®ã¯ãããåããŠã§ãã èæ¯ ã¡ã«ã«ãª ããã§ã¯ãæ±äººã®å
容ãé©åãããäžé©åãªè¡šçŸãå«ãŸããŠããªããããªã©ãšãã£ããªã¹ã¯ã®ããæ±äººããªãããå
šä»¶ãã§ãã¯ããŠããŸãã ä»åãç§ãã¡ã¯ãæ§ã
ãªæ©æ¢°åŠç¿ææ³ã§æ±äººã®ãªã¹ã¯äºæž¬ã¢ãã«ãäœæããããããã®ã³ã¹ãã»ç²ŸåºŠã»ç®¡çã®ãããããªã©ã®æ€èšŒãè¡ããŸããã ãã£ãã㚠以äžã®ã¢ãã«ã詊ããã³ã¹ãã»ç²ŸåºŠã»ç®¡çã®ãããããªã©ã®æ¯èŒãè¡ããŸããã çµ±èšã¢ãã« ããžã¹ãã£ãã¯ååž° LightGBM NNã¢ãã« BERT LLM åã¢ãã«ã®æ§ç¯ã«ã€ã㊠æŠèŠ æ±äººã®ãªã¹ã¯äºæž¬ã«ãããŠã¯ãå
šäœæ°ã«å¯ŸããŠãªã¹ã¯ã®ããæ±äººæ°ãå°ãªãã§ããã¢ãã«äœæã®éã«æãéèŠãªããšã¯ãªã¹ã¯ã®ããæ±äººãåãããŒããã«æ€ç¥ããããšã§ããã¢ãã«ã誀ã£ãŠãªã¹ã¯ãããšå€æããæ±äººã®æ°(False Positiveæ°)ãããçšåºŠå¢ããŠããŸã£ãŠã§ããã¢ãã«ã誀ã£ãŠãªã¹ã¯ãªããšå€æããæ±äººã®æ°(False Negativeæ°)ããŒãã«ããããšãéèŠã«ãªããŸãã ãŸããçµ±èšã¢ãã«ããã¥ãŒã©ã«ãããã¯ãŒã¯ã¢ãã«ãæ±ãéãèšç·Žæã«æçŽã«åŠç¿ããããšãããŒã¿ã«äžåè¡¡ãããããã«ãã¹ãŠã®æ±äººããªã¹ã¯ãªããšå€æããããã«ãªã£ãŠããŸããŸãããã®ãããæ£äŸ(ãªã¹ã¯ãããæ±äººããŒã¿)ã®æ°ãæ¡åŒµããããæå€±é¢æ°ã«éã¿ã¥ããããããããªã©ããŠåŠç¿ã工倫ããå¿
èŠããããŸãã çµ±èšã¢ãã« ããžã¹ãã£ãã¯ååž°ãšLightGBMãã©ã¡ãã®ã¢ãã«ãçšããå Žåã§ããã³ã³ãã¥ãŒã¿ãŒãæç« ãçè§£ã§ããããååŠçãå¿
èŠã§ãããŸããæç« ã®ããã¹ãããŒã¿ã圢æ
çŽ è§£æã«ãã£ãŠåèªã«åè§£ããŸããäŸãã°ããç«ã¯ã³ã¿ãã§äžžããªãããšããæã¯ããç«ããã¯ããã³ã¿ãããã§ããäžžããããªãããšãã£ãåèªã«åããããŸãã æ¬¡ã«ãTF-IDF(Term Frequency Inverse Document Frequency)ãšããææ³ãçšããŸããTFã¯ææžå
ã§ã®åèªã®é »åºåºŠã衚ããIDFã¯åèªã®åžå°åºŠã衚ããŸããTFãšIDFãæãåãããããšã§ãåèªãæ°å€åããææžå
šäœããã¯ãã«ãšããŠè¡šãããšãå¯èœã«ãªããŸãããã®ãã¯ãã«åã®éã«ã¯ãæ£äŸã«ç¹åŸŽçãªåèªãFeature(ãã¯ãã«ã®åºåº)ãšããŠæœåºããŸãããTF-IDFãçšããããšã§ããã¯ãããã§ãã®ããã«é »ç¹ã«åºçŸããããéèŠåºŠãäœãåèªã§ã¯ãªããç¹å®ã®æç« ã«ã®ã¿çŸããéèŠåºŠã®é«ãç¹åŸŽçãªåèªãéç«ãããããšãã§ããŸãã ãã®ããã«ããŠäœããããã¯ãã«ãå
¥åãšããŠãåã¢ãã«ã¯ãæ±äººã«ãªã¹ã¯ãããå Žåã¯1ããªãå Žåã¯0ã®ã©ãã«ãåºåããããåŠç¿ãããŸããã ããžã¹ãã£ãã¯ååž° ããžã¹ãã£ãã¯ååž°ã¯ãæ©æ¢°åŠç¿ã«ãããŠæãåºæ¬çãªåé¡ã¢ãã«ã§ãçµæã0ã1ããšãã£ãäºå€ã§ããäºè±¡ãäºæž¬ããããã®çµ±èšçææ³ã§ããç¹å®ã®äºè±¡ãèµ·ãã確çãã説æå€æ°ã䜿ã£ãŠèšç®ããŸãããã®ã¢ãã«ã¯ã確çã0ãã1ã®éã«åããããã®ã·ã°ã¢ã€ã颿°ãšããç¹æ®ãªé¢æ°ãçšããã®ãç¹åŸŽã§ãã èšç·ŽããŒã¿ãæçŽã«åŠç¿ããããšãããŒã¿ã«äžåè¡¡ãããããã«ãããŸãåŠç¿ã§ãããã¹ãŠãªã¹ã¯ãªããšå€æããã¢ãã«ã«ãªã£ãŠããŸããŸãããã®ãããä»åã®ããžã¹ãã£ãã¯ååž°ã§ã¯æå€±é¢æ°ã®èšç®æã«ãæ°å°ãªãæ£äŸã®ããã«ãã£ã倧ãããªãããã«éã¿ä»ããããªããèšç®ããŠåŠç¿ãåããŸããããŸãããã€ããŒãã©ã¡ãŒã¿ã®ã°ãªãããµãŒããªã©ã«ããã¢ãã«ã®æ§èœåäžãç®æããŸããã LightGBM LightGBMã¯æ±ºå®æšãããŒã¹ãšããæ©æ¢°åŠç¿ã¢ã«ãŽãªãºã ã§ããç¹ã«ãå€§èŠæš¡ãªããŒã¿ã»ãããæ±ãéã«ããã®é«éæ§ãšé«ãäºæž¬æ§èœãããããŒã¿ãµã€ãšã³ã¹ã®åéã§åºãå©çšãããŠããŸãã LightGBMã«ã¯ããã€ããŒãã©ã¡ãŒã¿ãšåŒã°ããèšå®é
ç®ããããããããŸãããããã®ãã©ã¡ãŒã¿ãé©åã«èšå®ããããšã§ãã¢ãã«ã®æ§èœã¯å€§ããå€ãããŸãããã®ãããã°ãªãããµãŒããšããææ³ã䜿ã£ãŠãæé©ãªãã©ã¡ãŒã¿ã®çµã¿åãããèªåçã«æ¢çŽ¢ããã¢ãã«ã®æ¹åã«åãçµã¿ãŸããã BERT BERTã¯ã2018幎ã«Googleã«ããéçºãããTransformerã®ãšã³ã³ãŒããŒéšåãåºç€ãšããäºååŠç¿æžã¿èšèªã¢ãã«ã§ãã倧éã®ããã¹ãããŒã¿ããåèªã®æèãåæ¹åã§åŠç¿ãããããæå
šäœã®æå³ãæ·±ãçè§£ã§ããŸããããã«ããã質åå¿çãæç« èŠçŽãªã©ãããŸããŸãªNLPã¿ã¹ã¯ã§é«ãæ§èœãçºæ®ããŸãã BERTã¯æ£äŸãšè² äŸã®æ°ã®äžåè¡¡ãªããŒã¿ã»ããã®åŠç¿ãèŠæã§ãããã®ãããLLMãçšããŠåæããŒã¿ãäœæããæ£äŸã®æ°ãå¢ãããŸãããããŒã¿æ¡åŒµã®éã«LLMã«æž¡ããããã³ããã«ã¯å
ã®æ£äŸã®äžããã©ã³ãã ã«éžãã ããŒã¿ãfew-shotãšããŠçµã¿èŸŒã¿ãçæãããããŒã¿ã®æäœã«å€æ§æ§ãçãŸããããã«å·¥å€«ããŸãããããã«ãBERTã®åŠç¿ã«ãããŠéèŠãªãã©ã¡ãŒã¿(ããŒã¯ã³åã®éã®æå€§æåæ°ãããããµã€ãºããšããã¯æ°ãåŠç¿çãªã©)ãã°ãªãããµãŒãã«ããæ¢çŽ¢ããã¢ãã«ã®æ§èœåäžã«åãçµã¿ãŸããã LLM LLMã«åŠç¿ã¯å¿
èŠãªãã®ã§ãããŒã¿ã®ååŠçãªãã§ããã³ããã工倫ããŠã粟床æ¹åãããŸãããåã«ããªã¹ã¯ããããããªãããã®ã©ãã«ã ãã§ãªãããªããã®ããã«å€æããã®ããšããçç±ãåºåãããŸãããLLMã®åºåããã誀ã£ã倿ãäžããçç±ããäžè¶³ããŠããæ
å ±ããªãããåæããè¶³ããªãæç€ºãããã³ããã«è¿œå ãæ¹åããŸããããŸããæ±äººå¯©æ»ã«ã¯ã«ãŒã«ãããããããã®ã«ãŒã«ããã£ããçè§£ããããã¹ãããŒã¿ãèŠçŽãããšã粟床æ¹åã«ã€ãªãããŸããã å®çšäžã®èгç¹ããèããåã¢ãã«ã®é·æã»çæ é·æ çæ ããžã¹ãã£ãã¯ååž°/ Light GBM 2å€ã®ã¯ã©ã¹ã«åé¡ããããã®å¢çç·ã§ããéŸå€ã®èª¿æŽã«ãã£ãŠã©ããŸã§æ€ç¥ãããæ±ºãããã åŠçãéåžžã«æ©ã æ±äººä»¶æ°ãå¢ããŠãéçšã³ã¹ããããŸãå€ãããªã èª¬ææ§ãäœã ã«ãŒã«ãæ¹å®ããããšãã«æ°ããªåŠç¿ããŒã¿ã®çšæãåŠç¿ã«æéãããã BERT 2å€ã®ã¯ã©ã¹ã«åé¡ããããã®å¢çç·ã§ããéŸå€ã®èª¿æŽã«ãã£ãŠã©ããŸã§æ€ç¥ãããæ±ºãããã æèã®çè§£ãåŸæ èª¬ææ§ãäœã ã«ãŒã«ãæ¹å®ããããšãã«æ°ããªåŠç¿ããŒã¿ã®çšæãåŠç¿ã«æéãããã æšè«ã«GPUããŸãã¯å€ãã®CPUã䜿ãã®ã§çµ±èšã¢ãã«ã«æ¯ã¹ãŠéçšã³ã¹ããé«ã LLM 管çãããã³ããã®æŽæ°ã®ã¿ã§ç°¡å ã«ãŒã«ãæ¹å®ãããæãæŽæ°ã容æ éå»ã«ããŒã¿ããªããã®ãžã®å¯Ÿå¿ãå¯èœ ãªããã®ããã«å€æãããã®çç±ãèªç¶èšèªã§èª¬æã§ãã ä»¶æ°ãå¢ãããšãåŠçæéã»éçšã³ã¹ããç·åœ¢çã«å¢ãã æ¯èŒçµæÂ çµ±èšã¢ãã«ã¯è€éãªæèã®åé¡ã«é¢ããŠã®æ±äººã®ãªã¹ã¯æ€ç¥ã¯èŠæã§ãããã®ã®ãä»ååãçµãã ã¿ã¹ã¯ã«ãããŠã¯ãåŠç¿æ¹æ³ã工倫ããããšã«ãããLLMãšåçã®ç²ŸåºŠãåºãããšãã§ããŸããã BERTã«ã€ããŠããåŠç¿ã«äœ¿ãããŒã¿ãæ¡åŒµããŠæ£äŸã»è² äŸã®æ°ãåçšåºŠã«ããããšã«ãããLLMãšåçã®ç²ŸåºŠãåºãããšãã§ããŸããããéçšã³ã¹ããçµ±èšã¢ãã«ã«å¯ŸããŠé«ãã®ã§ãä»åã®æ±äººã®ãªã¹ã¯äºæž¬ã«é¢ããŠã¯BERTãéžæããã¡ãªããããªããšããçµæã«ãªããŸããã éçšã³ã¹ãé¢ã§æ¯èŒãããšãçµ±èšã¢ãã«ã¯å°ããªã€ã³ã¹ã¿ã³ã¹ã§åãã®ã§ãåé·æ§ãèæ
®ããŠãéçšã³ã¹ããäœãããŸãæ±äººä»¶æ°ãå¢ããŠãã³ã¹ããå€åãã«ããã§ããBERTã¯çµ±èšã¢ãã«ã«æ¯ã¹ãŠCPUãããããå¿
èŠãªã®ã§ãå
ã
ã®ã³ã¹ããé«ããªããŸããäžæ¹ãLLMã¯ããŒã¯ã³ããšã®èª²éã®ãããæ±äººä»¶æ°ãå¢ããããšã«ã³ã¹ããç·åœ¢çã«é«ããªããŸãã ãããã®çµæãããæ±äººä»¶æ°ãå°ãªã段éã§ã¯LLMãæè»ã«æŽ»çšã§ããäžæ¹ãæ±äººæ°ãå¢ãããšLLMã§ã¯ãªãã¢ãã«ãžã®åãæ¿ããã³ã¹ãåæžã«ãªãããšãåãããŸãã ã€ã³ã¿ãŒã³ã§ã®åŠã³ã»æ°ã¥ããããš ä»åã®ã€ã³ã¿ãŒã³ãéããŠãããã¹ãããŒã¿ãååŠçããŠçµ±èšã¢ãã«ã«é©å¿ããææ³ãä»ãŸã§åŠã¶æ©äŒããªãã£ãBERTãªã©ã®ã¢ãã«ã«ã€ããŠçè§£ãæ·±ããããšãã§ããŸãããã¢ãã«ã®æ§èœãåäžãããããã«ããã¹ãææ³ã«ã€ããŠãå®éã«æãåãããªããåŠã¶ããšãã§ããŸããããŸããã¢ãã«ã«å€æŽãå ããŠæ§èœåäžãç®æãã ãã§ãªããäžããããããŒã¿ãèªåã®ç®ã§ãã確èªããŠããŒã¿ã®ç¹åŸŽãæŽãããšãéåžžã«éèŠã§ããããšãåŠã³ãŸããã å®éã®æ¥åã«ãããŠã¯ãèªåãèããŠããããšã詊ããŠã¿ãããšæã£ãŠããããšãä»ã®äººã確èªã§ãã圢ã§èšèªåããŠããããšã§ãã³ãã¥ãã±ãŒã·ã§ã³ãã¹ã ãŒãºã«ãªããšããããšãèªèããŸããã å·Šãã@Aria, @Ririko çµããã« æ¬èšäºã§ã¯ãã€ã³ã¿ãŒã³ã§åãçµãã ã¿ã¹ã¯ãææ³ã«ã€ããŠã話ããããŠããã ããŸãããä»åã®ã€ã³ã¿ãŒã³ãéããŠãéçºã«å¿
èŠãªç¥èããŸããã£ãªã¢é¢ã§ã®ç¥èãªã©æ§ã
ãªåŠã³ãåŸãããšãã§ããŸãããäžã¶æãšããæéã¯ãã£ãšããéã§ãããããšãŠãæ¿ãæéãéãããŸããã ã¡ã³ã¿ãŒã®@ku-muãããã¢ããã€ã¹ããã ãã£ã@arr0wãããML teamã®çãããæ¬åœã«ããããšãããããŸããïŒ
ã¯ããã« ã¯ãããŸããŠïŒïŒæã®ïŒã¶æéãBuildã€ã³ã¿ãŒã³ã«åå ããkyoroã§ãã æç³»ã®ç§ã«ãšã£ãŠãBuild@Mercariã¯ããšã³ãžãã¢ãžã®ç¬¬äžæ©ããšãªã£ã倧å€è²Žéãªæé·æ©äŒã§ãããç§ãBuild@Mercariã§åŠãã ããšãçµéšããããšãå
±æããããšã§ãåãããã«ããšã³ãžãã¢ã«ãªããããã©ãéSTEMé ååºèº«ã§èªä¿¡ããªãããããæé·ã®æ©äŒã«æµãŸããŠããªãããšæããŠããæ¹ã
ã«ãBuild@Mercariãšããéžæè¢ãããããšãç¥ã£ãŠã»ãããšæããŸããã ç§ã«äŒŒãããã¯ã°ã©ãŠã³ãããæã¡ã®æ¹ããããããåå ãæ€èšãããŠããæ¹ã
ã®åèã«ãªãã°å¹žãã§ãã ãªãBuild@Mercariã«åå ããã ç§ã¯å€§åŠïŒå¹Žçã§åè¬ããããŒã¿ãµã€ãšã³ã¹ã®ææ¥ããã£ããã«ããã°ã©ãã³ã°ã«èå³ãæã¡ãŸãããããããç§ã®åŠéšã¯å®å
šã«æç³»ã§CSé¢é£ã®ææ¥ããªãã£ãããããã以éã¯ç¬åŠã§åŠç¿ãé²ããŠããŸããã ç¬åŠã§åŠç¿ãé²ããŠãããã®ã®ãå®è·µã®æ©äŒãå°ãªããããŸãæé·ã宿ã§ããŠããªãéšåããããŸãããã€ã³ã¿ãŒã³ã·ãããéããŠå®è·µçã«æé·ã§ãããããšæã£ãŠããŸããããå¿åæç¹ã§äžå®ã®éçºçµéšãå¶äœç©ãæ±ããããããšãå€ãããªããªãåãå
¥ããŠããããªãç¶æ³ãç¶ããŠããŸããããããªæãããã¯ã³ãã¥ããã£çµç±ã§Build@Mercariã®ååšãç¥ããŸãããçŸæç¹ã§ã®çµéšãæµ
ããŠãåå ã§ãããšã³ãžãã¢è²æããã°ã©ã ãšèããŠããã«å¿åãæ±ºããŸããã Build@Mercariã£ãŠã©ããªããã°ã©ã ïŒ æ§èªèªã女æ§ã§ããæ¹ã察象ã«ããœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ã®ã¹ãã«ãã¬ãŒãã³ã°ãšã€ã³ã¿ãŒã³ã·ããã®æ©äŒãæäŸããããã°ã©ã ã§ãã çŸåšSTEMé åã§ã¯å¥³æ§ããã€ããªãã£ãšãªã£ãŠããŸããæ¥çå
šäœã®D&Iãæšé²ããã¹ããã¡ã«ã«ãªã§ã¯ããããåŠç¿æ©äŒãç§ãã¡ã«æäŸããŠãããŠããŸãã Buildãã¬ãŒãã³ã°ã«ã€ã㊠ïŒé±éã§ãã¡ã«ã«ãªãæ³å®ããç°¡æåºåã¢ããªãåäººã§æ§ç¯ããŸãã ãã®èª²é¡ãéããŠãGitã®äœ¿ãæ¹ããAPIéçºãããã³ããšã³ãã®å®è£
ãDockerã«ããã³ã³ããåãŸã§ãWebã¢ããªã±ãŒã·ã§ã³éçºã®åºæ¬ãäžéãåŠã¶ããšãã§ããŸãããã¢ããªæ§ç¯ä»¥å€ã«ããã¢ã«ãŽãªãºã ãšããŒã¿æ§é ãããããŒã¿åæããåŠã¶ã¹ããããçšæãããŠãããéåžžã«å
容ãå
å®ããŠããŸãã éžèã®è©± éžèã§ã¯ãå¿æåæ©ãšã³ãŒãã£ã³ã°ãã¹ããæåºããŸããã³ãŒãã£ã³ã°ãã¹ãã¯ãã³ã³ãã¥ãŒã¿ãµã€ãšã³ã¹ã«é¢ããåºç€ç¥èã確èªããããã«ãªã³ã©ã€ã³ã§å®æœãããŸããBuildãã¬ãŒãã³ã°ããã°ã©ã ã¯ãéåžžã®ã€ã³ã¿ãŒã³ã·ããéžèãšã¯ç°ãªããå€ãã®æ¹ã«ãã£ã¬ã³ãžããŠããã ããããšããæ³ããããã³ãŒãã£ã³ã°ãã¹ãã®é£æåºŠã¯äœãã«èšå®ãããŠããŸãããã®ãããçŸæç¹ã§ã®ã¹ãã«ã«èªä¿¡ããªãæ¹ãå¿åãããããå¿
èŠã¯ãããŸããã ãã®ãã¬ãŒãã³ã°ã®è¯ãã£ãç¹ ïŒã€ç®ã¯ãæ°äººã®ããŒã ã«åãããŠãåèªèª²é¡ã«åãçµããããšã§ããå¹³æ¥ã¯æ¯æ¥ãã°ã«ãŒãå
ã§é²æå
±æã®æéããããã¡ã³ã¿ãŒããã«è³ªåããããä»ã®ã¡ã³ããŒã®é²ã¿å
·åãç¥ãããšãã§ããŸãããããã§èªåã®é
ããèªèããè¯ãæå³ã§çŠããããšãããã¬ãŒãã³ã°ãå®éã§ãã倧ããªèŠå ã§ãããååŠè
ãäžäººã§åŠç¿ããŠãããšãããããªããšããã§ç«ã¡æ¢ãŸã£ãŠããŸãããã®ãŸãŸåŠç¿ãäžæããŠããŸãããšãå€ãã§ãããããã£ãæå³ã§ãããã®ããã«ä»²éããµããŒããããç°å¢ã¯ããšãŠãå¿åŒ·ãã£ãã§ãã ïŒã€ç®ã¯ããåå è
ã¯ïŒå¹Žéç¡æã§Udemyã®è¬çŸ©ãåè¬ã§ãããããšã§ãã åå æç¹ã§ã¯åšèŸºç¥èãã»ãšãã©ãªãã£ãããããšã«ãããã¬ãŒãã³ã°äžã¯ã³ãŒããåããããšã§ç²Ÿäžæ¯ã§ããããããããã¬ãŒãã³ã°çµäºåŸã«Udemyã倧ãã«æŽ»çšããç¹ãšç¹ã ã£ãçè§£ãå°ããã€ã€ãªããŠè
¹èœã¡ãããããªããã®ã³ãŒããå¿
èŠãªã®ãããã©ããªä»çµã¿ã§åããŠããã®ãããçè§£ããããšãã§ããŸããã ãã¬ãŒãã³ã°ã®ææ åå åã®ç§ã¯ git ãš github ã®éãããããããªãã¬ãã«ã§ããããããããã¬ãŒãã³ã°çµäºã®ïŒã¶æåŸã«ïŒäººã§åå ããããã«ãœã³ã§äŒæ¥è³ãããããã¬ãã«ã«æé·ããŠããŸãããBuildãã¬ãŒãã³ã°ã¯ç¬åŠã§äŒžã³æ©ãã§ããç§ã«å€§ããªæé·ãäžããŠãããŸããã Build ã€ã³ã¿ãŒã³ã«ã€ã㊠éžèã®è©± æ§ç¯ããåºåAPIãåäœç¢ºèªã®ãã¹ãã«éã£ããã¬ãŒãã³ã°åå è
ã¯ãïŒã¶æéã®Buildã€ã³ã¿ãŒã³ã«é²ãããšãã§ããŸãã åºæ¬çã«ã¯ããã¬ãŒãã³ã°çµäºåŸã«æåºããã¢ã³ã±ãŒãã«åçããåžæããžã·ã§ã³ãšéšçœ²ãåæã«éžèãé²ã¿ãŸãã ãŸããå°±æ¥åã€ã³ã¿ãŒã³ã«å¿åããŠäžåæ Œãšãªã£ãå Žåã§ããå床Buildã€ã³ã¿ãŒã³ãžå¿åããããšãå¯èœã ããã§ãã Buildã€ã³ã¿ãŒã³ã®éžèã§ã¯ïŒïŒåçšåºŠã®é¢æ¥ãïŒåèšããããŸãããã®é¢æ¥ã¯éçºçµéšãªã©ã®æ·±æããšããããããé
å±å
ã®ãšã³ãžãã¢ãããŒãžã£ãŒãããšã€ã³ã¿ãŒã³ãžã®åå ææ¬²ã®ç¢ºèªãè¡ããŸããã é
å±å
ç§ã¯ã¡ã«ã«ãªã®ã客ããŸã®ãåãåãã管çã·ã¹ãã ãæ§ç¯ããŠããContact CenterããŒã ã«ããã¯ãšã³ããšã³ãžãã¢ãšããŠé
å±ãããŸããã åãçµãã ããš çŸç¶ã®ã·ã¹ãã ã§ã¯ããåãåããã«å¯Ÿããèªåè¿ä¿¡ãéç¥ã¡ãŒã«ã®æèšãããŒãã³ãŒããããŠãããæèšã®å€æŽã³ã¹ãããããããšã課é¡ã§ãããç§ã¯ããã®æèšãããŒã¿ããŒã¹ããååŸã§ããããã«ããã¿ã¹ã¯ã«åãçµã¿ãŸããã å°æ¥çã«ãã®æ©èœãæ¡åŒµããã管çç»é¢ããæèšã«å€æŽãå ããããããã«ããããšã§ãå®éã«ãåãåããã«å¯Ÿå¿ããéãšã³ãžãã¢ã®æ¹ã§ãæèšã®å€æŽãå¯èœãšãªããéçšã³ã¹ãåæžãã倿Žã¹ããŒãã®åäžãæåŸ
ã§ããŸãã 倧ããåããŠïŒã€ã®ãã§ãŒãºã§ã¿ã¹ã¯ã«åãçµã¿ãŸããã 1. DBèšèš ã©ã®æèšãããŒã¿ããŒã¹ã«ç§»è¡ãããããæèšã䜿ãããå Žé¢ãããã®å€æŽå¯èœæ§ãèæ
®ããªããæ€èšããŸããã æåã¯æ·±ãèããã«ãæ¢åã®ä»ã®DBèšèšãåèã«èšèšããŠããŸãããããŒã ã®æ¹ã«èšèšãã¬ãã¥ãŒããŠããã ããéããªãããã§ãã®å¶çŽãå
¥ããã®ããšãã質åã«å¯ŸããŠããã«çããããªãã£ãçµéšãããèªåã®èšèšæ ¹æ ã®çãã«æ°ã¥ãããšãã§ããŸããã DBèšèšã®ã¿ãªãããèšèšãæ¹éã«å¯äžã®æ£è§£ã¯ãªãããšã³ãžãã¢éã§è°è«ããäžã§èªåäžäººã§ã¯æ°ä»ããªãã£ãç¹ã«æ°ã¥ãããšã§ãæé©ãªè§£ãå°ãåºãããããšãåŠã³ãŸãããè°è«ãåæ»ã«é²ããããã«ããåžžã«ãªãèªåããã®æ¹éãè¯ããšæã£ãã®ããä»ã«èããããæ¹éã¯ãªãã®ãæ¯èŒæ€èšããäžã§ãèšèšã®æå³ãæ ¹æ ãæç¢ºã«ãã€éèŠæ§ãåŠã³ãŸããã 2. DBãžã®æèšæ¿å
¥ å®éã«ããŒã¿ããŒã¹ãžæèšãæ¿å
¥ããæ®µéã§ã¯ãç§»è¡ãã倧éã®æèšãæ¢åã®æèšãšäžèšäžå¥ã®ãããèµ·ããªããããæ£ç¢ºãªã¯ãšãªãäœæããäœæ¥ãçºçããŸããã ãŸããSpanner CLIã®ä»æ§äžãæèšã«å«ãŸãã空è¡ãSQLæã®çµäºãšèªèããŠããŸããããå
šãŠã®ç©ºè¡ãæ¹è¡æåã«å€æŽããå¿
èŠããããéåžžã«ãã¹ãçºçããããäœæ¥ã§ãããäœæããSQLæã®æçµç¢ºèªã¯å€§å€éªšã®æããäœæ¥ã§ãããæçµç¢ºèªãããŠããã ããããŒã ã®æ¹ã
ãæ¥åžžã®å¿ããæ¥åã®æäžãæéãå²ããŠããã ããŠããããšãããããŸããã 3. æèšååŸã®å®è£
詳现èšèšã®è©± å®è£
æã®å€§å¹
ãªææ»ããåé¿ããããã詳现èšèšãè©°ããŠããå®è£
ã«å
¥ããŸããã詳现èšèšãç«ãŠãã«ã¯ãïŒå¹Žåã®ã³ã³ããã¹ããããæ¢åã³ãŒãã®æµããçæéã§ææ¡ããå¿
èŠããããæãæéãããããŸããããŸãããããžã§ã¯ãåæã»ã©èŠç©ããã®èª€å·®ã倧ãããªããšãããã äžç¢ºå®æ§ã³ãŒã³ ãã®ã話ãè峿·±ãã£ãã§ãã æåã«ç§ãç«ãŠã詳现èšèšã¯èŠç©ãããçããããå°ãå
容ãè©°ããããã¬ãã¥ãŒãããã ããŸããããã®çµæãåŸã®å®è£
å·¥çšã§ã¯è¿·ããæãåããããšãã§ããŸãããéçºããã»ã¹ã®äžã§èšèšãçãã«ãããšãã®åã®èŠç©ããã®èª€å·®ãå®è£
ã«åŒãç¶ãããŠããŸããšããããšã身ããã£ãŠåŠã¶ããšãã§ããŸããã ããŒã ã§ã¯ãArchitecture Decision RecordããšåŒã°ããæææ±ºå®èšé²ã«èšèšæ¹éãæ®ããŠããŸãããããªããããããèšèšã«ãªã£ãã®ããããä»ã®æ¡ã¯ãã£ãã®ãïŒããªã©ã®è°è«ã決å®äºé
ãèšé²ããŠããããšã§ãä»åŸæ°ããæ©èœãå®è£
ããããšããæã«ãéå»ã®èšèšããã®ãŸãŸäœ¿çšã§ããããåèã«ããŠæ¡åŒµããããšãã§ããå©ç¹ããããšæããŠããã ããŸãããããã«ãœã³ã®ããŒã éçºçµéšãšã¯æ¯ã¹ãã®ã«ãªããªããçŸå Žã®ããŒã éçºããåŠã¶ããšãã§ããŸããã ãã¹ãã³ãŒãã®è©± ãã¹ãã³ãŒããçµã¿ç«ãŠãã®ã¯ä»åãåããŠã§ãããä»ãŸã§ã¯æ£åžžã«åäœããŠããããšã確èªããã ãã§æºè¶³ããŠããŸããããã³ãŒãã®å質ãä¿å®æ§ãé«ããéèŠãªææ®µã§ããããšãåŠã³ãŸãããGoç¹æã®ãããŒãã«é§åãã¹ãããããã¹ãé§åéçºããæ£åžžã«å€ãè¿ããããã ãã§ã¯ãªããæž¡ãå€ãªã©ãå€ããæããšã©ãŒããã¡ããšè¿ãããããªã©ããå¹
åºããã¹ãã±ãŒã¹ã®æ³å®ããå¿
èŠã§ããããšãåŠã³ããã¹ãã³ãŒãã®å¥¥æ·±ããç¥ããŸããã Goã®è©± Contact CenterããŒã ã§ã¯ããã¯ãšã³ãéçºèšèªã«Goãæ¡çšãããŠããŸãããGoã«è§Šããã®ã¯ä»åã®ã€ã³ã¿ãŒã³ãåããŠã ã£ããããéçºãé²ããªããå€ãã®Goç¬èªã®æ§æãèãæ¹ãåŠã¹ãŸããã å
šäœãéããŠåŠãã ããš ãšã³ãžãã¢ã®ä»äº ã€ã³ã¿ãŒã³ãéããŠå®åã«å
¥ã£ãããšã§ããšã³ãžãã¢ã«æ±ããããããšã¯ã³ãŒããæžãåã ãã§ã¯ãªãããšã匷ã宿ããŸãããç¹ã«å°è±¡çã ã£ãåŠã³ãã以äžã®ïŒã€ã§ãã ïŒã€ç®ã¯ããããã°ã©ãã³ã°ã¯ãã³ãŒããâæžãâæéãããã³ãŒããâèªãâæéã®æ¹ãå€ããã ãšããããšã§ããæ©èœãæ°ãã远å ããã«ããŠãããŸãã¯æ¢åã®ã³ãŒããèªã¿è§£ããŠãã©ããã©ã倿Žãã¹ãããçè§£ããå¿
èŠããããŸãã ïŒã€ç®ã¯ãéçºã«ã¯æéãããããã®äžã§ããã«åªå
é äœãã€ããŠã¿ã¹ã¯ãé²ããŠããããä»äºã§ã¯æ±ãããããšããããšã§ããããŒã ã«é²æãäŒããéããããŸã çµãã£ãŠãŸããããšäŒããã®ã§ã¯ãªãããçŸç¶ã§ã%é²ãã§ããŸãããããŸã§ã«ãæ¥ããã£ãã®ã§ãæ®ããåããããã®ããŒã¹ã§é²ãã°ãããšãæ¥çšåºŠãããããã§ãããšããããã«ã鲿ãšäºæž¬ãã»ããã§äŒããå ±åã®ä»æ¹ãããŒã ãšããŠã®åããããã«ãã€ãªãããšããã話ããèãããå匷ã«ãªããŸããã ïŒã€ç®ã¯ãä»äºãããŒã ã§é²ããäžã§æè¡åãšåããããããäŒããåãã倧åãšããããšã§ããPRãäœæããéãã¬ãã¥ãŒããåŽã®ç®ç·ã«ç«ã£ãŠãæå³ãèæ¯ãäžå¯§ã«æžãããšã§ãã£ãããïŒonïŒã§ã®è³ªåã«ãããŠãããã ããããããããŸããããšèšãã®ã§ã¯ãªããããã«ã€ããŠèª¿ã¹ããããã詊ããããã©ããã®æç¹ã§è©°ãŸã£ãŠããŸãããšãããµãã«ãèªåã®æèããã»ã¹ãæŽçããŠäŒããããšã§ãããç確ãªã¢ããã€ã¹ããããããšæããŸããã ã¢ãŒããã¯ã㣠ã¢ãŒããã¯ãã£ã«é¢ãã話ã®äžã§ãã¡ã«ã«ãªãã¢ããªã·ãã¯ãªæ§æãããã€ã¯ããµãŒãã¹åãžãšç§»è¡ããŠãã£ãèæ¯ãããã®éçšã§èµ·ããæè¡çã»çµç¹çãªå€åã«ã€ããŠäŒºããŸããã ç¹ã«å°è±¡çã ã£ãã®ã¯ããã€ã¯ããµãŒãã¹åã«ãã£ãŠåã¢ãžã¥ãŒã«ãèªåŸçã«æ©èœããããã«ãªã£ãããšã§ãéçºããŒã ããããããç¬ç«ããŠåããããã«ãªããçµç¹æ§é ãã®ãã®ã«ãå€åããã£ããšããç¹ã§ãã ãŸããæ¢åã³ãŒãã®æµããææ¡ããéã«ãããã¡ã€ã³é§åèšèšãããã¯ãªãŒã³ã¢ãŒããã¯ãã£ããšãã£ãèãæ¹ãæããŠããã ããŸããã ããããèšèšææ³ã¯ãåã«ãããããªã³ãŒããæžããããã§ã¯ãªããé·æçã«å®å®ããã·ã¹ãã ãäœãããã®èãæ¹ã§ããããšãåŠã³ãŸããã ã¡ã«ã«ãªæå 瀟å
ååŒ·äŒ ç€Ÿå
å匷äŒã掻çºã§ãç§ã¯OpenAI瀟ã®è¬åž«ã«ãããã¬ãŒãã³ã°ããã°ã©ã ã«åå ããŸãããäŒè©±ãããAIãããæç€ºãç¥èãã¢ã¯ã·ã§ã³ãã®èгç¹ãã现ããèšå®ã§ããã«ã¹ã¿ã GPTã®æŽ»çšäºäŸã宿Œåœ¢åŒã§åŠã³ãŸããã æ®æ®µãããã³ã«ã¹ã¿ã GPTã¯åçã®æ
å ±éãå€ããäœã質åã«å¯Ÿããåçã®æ¬è³ªãªã®ãèŠå€±ããã¡ã ã£ããããããªãã¹ãäžå¿
èŠãªéšåãåãèœãšããã·ã³ãã«ã§ååŠè
ã«ãšã£ãŠãããããã説æãå¿ãããããšããããã人éããããåŸèŒ©ããæ
ããããããªãšã³ãžãã¢ãšããŠæ¯ãèãããšããæç€ºããã«ã¹ã¿ã GPTãäœæããŸãããã€ã³ã¿ãŒã³æéäžãã®GPTãžã®è³ªåã§ããã¹ããŒãã£ãŒã«çåãè§£æ¶ããªããéçºã§ããããšããããå®éã«ç€Ÿå
å匷äŒã§ã®åŠã³ã®æ©æµãåããŸãããããããæ§ã
ãªå匷äŒã«åå ã§ããç°å¢ãéåžžã«é
åçã§ãããšæããŸããã éçºææ³ ããŒã ã§ã¯ãã¹ã¯ã©ã ããšããéçºææ³ãåãå
¥ããããŠããŸãããã¹ããªã³ããšåŒã°ããæ°é±éã®åäœã§éçºæéãçãåºåããæ¯åãä»åã®ã¹ããªã³ãã§ã¯ãããããããšããç®æšãããŒã ã§ãããŠããéçºã«å
¥ã圢ã§ããã ã¹ããªã³ãæéäžã¯æ¯æã®Daily ScrumïŒæäŒïŒã§ããŒã å
ã§é²æã課é¡ãå
±æããããã¿ã¹ã¯ã®é²è¡ãåžžã«å¯èŠåããªããããŒã å
šäœã®éçºãåã«é²ããŠããããšãå°è±¡çã§ããã ãã®ä» ã€ã³ã¿ãŒã³æéäžãContact CenterããŒã ã®æ¹ã
ããã¬ãŒãã³ã°ã§æ
åœããŠããã ããã¡ã³ã¿ãŒãããšäœåºŠãã©ã³ãã«è¡ãããŠããã ããŸãããããã£ãªã¢ã®è©±ãããæ¥æ¬äººããŒã ãšå€åœäººããŒã ã®éããããã¡ã«ã«ãªã®æãšä»ããããšã³ãžãã¢ã®æé·ã¹ãããããšãã£ãããŒãã«ã€ããŠãå®éã«åããšã³ãžãã¢ã®æ¹ã
ããçŽæ¥ã話ã䌺ãããšãã§ããŸãããæ®æ®µãªããªãèãããšãã§ããªããããªããªã¢ã«ãªçŸå Žã®è©±ãèãã«è§Šããããšãã§ããããšã§ãèªåèªèº«ã®ãã£ãªã¢ãåãæ¹ãèãããã£ããã«ããªãã倧å€è²ŽéãªåŠã³ãšãªããŸããã çµããã« ã¡ã«ã«ãªãšé
å±å
ããŒã ã®çãããž Build@Mercariãšããæé·æ©äŒãæäŸããŠãããã¡ã«ã«ãªããããŠã€ã³ã¿ãŒã³ã§åãå
¥ããŠãã ãã£ãContact CenterããŒã ã®ã¡ã³ã¿ãŒãããã¯ãããšããã¡ã³ããŒã®çããã«å¿ããæè¬ã®æ°æã¡ãè¿°ã¹ãããšæããŸããçãæéã§ãããããã«ã¯æžããããªãã»ã©ããããã®ããšãåŠã¹ãŸãããæ¬åœã«ããããšãããããŸããã ããããåå ããããšèããŠããæ¹ãž ã»ãŒãŒãã ã£ãç§ããããŸã§å€ãã®ããšãåŠã³æé·ããããšãã§ããã®ã¯Build@Mercariã®ãããã§ããããä»ã®èªåã®ã¹ãã«ã«èªä¿¡ããªããŠãããšã³ãžãã¢ãšããŠæé·ããããšèããŠãããªãããã²Build@Mercariãžåå ããŠæ¬²ããã§ãããŸããBuildã€ã³ã¿ãŒã³ãå°±æ¥åã€ã³ã¿ãŒã³ã§å®éã«ã¡ã«ã«ãªã®ãµãŒãã¹ã«è§Šããããšã§åŸãããåŠã³ã¯éåžžã«å€§ããã§ãããã²Buildãã¬ãŒãã³ã°ã§çµãããã«ãæçµŠã€ã³ã¿ãŒã³ã·ãããŸã§é²ãã§æ¬²ããã§ãã â»ãã®äœéšèšã¯2025幎床ïŒä»å¹ŽåºŠïŒã®ããã°ã©ã å
容ã§ããæ¥å¹ŽåºŠä»¥éã®ããã°ã©ã ã«ãããŠã¯å
容ã倿Žã«ãªãå¯èœæ§ããããŸãã®ã§ããäºæ¿ãã ããã
ã¡ã«ã«ãªããã§ QA Engineering manageãããŠãã @____rina____ ã§ãã æ¬èšäºã§ã¯ããããžã§ã¯ãããŒã ã§å®æœãããªããµã€ãã«ã€ããŠãã¹ã¯ã©ã ãã¹ã¿ãŒãšããŠã¯ãŒã¯ã·ã§ãããã¶ã€ã³ãæ
åœããçµéšãå
±æããŸãã ãªã¢ãŒãã¯ãŒã¯ãç¶ç¶ããäžã§ã察é¢ã§ã®ãªããµã€ããã©ã®ããã«èšèšããåååå è
ãžã®é
æ
®ãã©ã®ããã«å®è·µãããã«ã€ããŠè©³ãã解説ããŸãã ãã®èšäºããèªè
ãåŠã¹ãããšïŒ é·æãããžã§ã¯ãã®å¹æçãªãµããããææ³ïŒã¿ã€ã ã©ã€ã³ãµããããïŒ AIãæŽ»çšããã¯ãŒã¯ã·ã§ãããã¶ã€ã³ã®å®è·µäŸ åååå è
ãžã®é
æ
®ãšå¿ççå®å
šæ§ã®ç¢ºä¿æ¹æ³ 5ã°ã©ãŠã³ãã«ãŒã«ã掻çšãã質ã®é«ãè°è«ã®å®çŸæ¹æ³ 察é¢ã§ã®ããŒã ãã«ãã£ã³ã°ã®éèŠæ§ãšå¹æ ãªã¢ãŒãã¯ãŒã¯ç°å¢ã§ã®ã³ãã¥ãã±ãŒã·ã§ã³æè¡ç課é¡ãšè§£æ±ºç ã¢ããã°ææ³ã«ãã察é¢ã¯ãŒã¯ã·ã§ããã®å¹æãšéèŠæ§ å·çè
èªèº«ã®åŠã³ïŒ ã¹ã¯ã©ã ãã¹ã¿ãŒãšããŠã¯ãŒã¯ã·ã§ãããã¶ã€ã³ãæ
åœããçµéšãéããŠãåå è
ã®å¿ççå®å
šæ§ã確ä¿ããããšã®éèŠæ§ãæ¹ããŠå®æããŸãããç¹ã«ãåååå è
ãžã®äžå¯§ãªèª¬æãèŠèŠçãªè³æã®æŽ»çšã段éçãªé²è¡ããã¯ãŒã¯ã·ã§ããã®æåã«çŽçµããããšãåŠã³ãŸããããŸããAIãæŽ»çšããå¹ççãªã¯ãŒã¯ã·ã§ããèšèšã®å¯èœæ§ã宿ã§ãã人éãªãã§ã¯ã®åµé æ§ãé
æ
®ãšçµã¿åãããããšã§ããã广çãªã¯ãŒã¯ã·ã§ãããèšèšã§ããããšã確èªããŸããã é嬿ŠèŠ ä»å宿œããã®ã¯ãã¡ã«ã«ãªããã§äºæ¥è
åããµãŒãã¹ãéå§ããã«ããããäºæ¥è
ããææ°æã城åããä»çµã¿ãæ§ç¯ãããããžã§ã¯ãããŒã åãã®ãªããµã€ãã§ãããã®ããŒã ã®ã¡ã³ããŒããçŠå²¡åžå
ã®äŒå Žã«éãŸãã5æéã«ããã£ãŠãªããµã€ããéå¬ããŸãããæ®æ®µã¯ãªã¢ãŒãã§æ¥åãé²ããŠããã¡ã³ããŒã§ããããã®æ¥ã¯å
šåœããã¡ã³ããŒãäžå ã«äŒãã察é¢ãªãã§ã¯ã®ç±éãšäžäœæãæããªããããããžã§ã¯ãã®ãããŸã§ãšããããã«ã€ããŠãã£ãããšèªãåã貎éãªæéãšãªããŸããã åå è
ã¯PMããšã³ãžãã¢ãEMããã¶ã€ããŒãQAãã10åãè¶
ããã¡ã³ããŒãåå ããåååå è
ãå«ããŠå€æ§ãªããã¯ã°ã©ãŠã³ããæã€ã¡ã³ããŒãéãŸããŸããã èæ¯ã»ç®ç ä»åã®ãªããµã€ããäŒç»ããèæ¯ã«ã¯ãé·æã«ãããææ°æãããžã§ã¯ãããµãããããä»åŸã®æ¹åãããŒã ã®é£æºåŒ·åãå³ããããšããæãããããŸããããªã¢ãŒãã¯ãŒã¯ãç¶ãäžãæ¥ã
ã®ã³ãã¥ãã±ãŒã·ã§ã³ã¯ã©ãããŠãããã¹ãããªã³ã©ã€ã³äŒè°ã«åããã¡ã§ããã ããããã察é¢ã§éãŸããæ®æ®µã¯è©±ããªããããªæ·±ãè°è«ããã«ãžã¥ã¢ã«ãªäº€æµãéããŠãããŒã ãšããŠã®çµæåãé«ããããšãäžå¯æ¬ ã ãšèããŸããã ææ°æãããžã§ã¯ãã§ã¯ç§ãã¹ã¯ã©ã ãã¹ã¿ãŒãåããŠãããä»åã®ãªããµã€ãã¯ã¯ãŒã¯ã·ã§ãããã¶ã€ã³ããå
šäœã®é²è¡ãŸã§ãäžè²«ããŠèšèšã»éå¶ãæ
åœããŸãããç¹ã«æèããã®ã¯ãåååå è
ãå®å¿ããŠåå ã§ããç°å¢ãæŽããããšã§ããã ã¯ãŒã¯ã·ã§ãããã¶ã€ã³ã®å·¥å€« AIãæŽ»çšããã¢ãžã§ã³ãäœæãšã¢ã€ã¹ãã¬ã€ã¯èšèš ä»åã®ãªããµã€ãã®æºå段éã§ã¯ãAIãç©æ¥µçã«æŽ»çšããŸããããŸããã¯ãŒã¯ã·ã§ããå
šäœã®ã¢ãžã§ã³ãäœæã«ãããŠãAIã«ææ°æãããžã§ã¯ãã®ç¹æ§ãåå è
ã®æ§æãç®çãªã©ãå
¥åããæé©ãªé²è¡ã¹ã±ãžã¥ãŒã«ã®ææ¡ãåããŸãããAIãææ¡ããæéé
åãã»ãã·ã§ã³æ§æãããŒã¹ã«ãå®éã®åå è
æ°ãäŒå Žã®å¶çŽãèæ
®ããŠèª¿æŽãå ããããšã§ãå¹ççã§å¹æçãªã¢ãžã§ã³ããäœæã§ããŸããã ç¹ã«å°è±¡çã ã£ãã®ã¯ãã¢ã€ã¹ãã¬ã€ã¯çšã®ã¯ã€ãºäœæã§ããAIã«çŠå²¡ã®æåãç®ã«ããäºå®ã®å»ºç¯ç©ã«é¢ããåé¡ãçæããŠããããåå è
ã®æ»åšããã£ãšæ¥œããããå
容ã«ããŸããã åååå è
ãžã®é
æ
®ïŒäžå¯§ãªãã§ãã¯ã€ã³ãšèª¬æ ã¯ãŒã¯ã·ã§ãããã¶ã€ã³ã«ãããŠæãéèŠèŠããã®ã¯ãåããŠã¯ãŒã¯ã·ã§ããã«åå ããã¡ã³ããŒãžã®é
æ
®ã§ãããåå è
ã®äžã«ã¯ãä»ç®ã䜿ã£ãã¯ãŒã¯ã·ã§ããããã°ã«ãŒããã£ã¹ã«ãã·ã§ã³ã«äžæ
£ããªæ¹ãããŸããããã®ãããåã»ãã·ã§ã³ã®éå§æã«ã¯å¿
ãäžå¯§ãªèª¬æãè¡ããåå è
ãè¿·ããªãããé
æ
®ããŸããã åã»ãã·ã§ã³ã§ã®å
·äœçãªé
æ
® ã¿ã€ã ã©ã€ã³ãµããããã§ã¯ãå
·äœçãªæé ãèŠèŠçãªè³æãšãšãã«èª¬æããŸãããã°ã«ãŒãã³ã°äœæ¥ã§ã¯ãæœè±¡çãªæç€ºã§ã¯ãªãå
·äœçãªäŸã瀺ãããšã§ãåå è
ãè¿·ããã«äœæ¥ãé²ãããããã工倫ããŸããã åã»ãã·ã§ã³ã®éå§æã«ã¯å¿
ãç®çãæé ãæåŸ
ããææç©ãæç¢ºã«äŒãã質åããããé°å²æ°ãäœãããšã§ãåå è
å
šå¡ãå®å¿ããŠã¯ãŒã¯ã·ã§ããã«åå ã§ããç°å¢ãæŽããŸããã åœæ¥ã®æµã ãªããµã€ãã¯ãåå è
å
šå¡ãæå€§éã«éäžããæŽ»çºãªè°è«ãã§ãããããç¶¿å¯ã«ãã¶ã€ã³ãããããã°ã©ã ã§é²è¡ããŸããã ã¢ã€ã¹ãã¬ã€ã¯ã®æå³ãšç®çã®èª¬æ ã¯ãŒã¯ã·ã§ããã®åé ã§ã¯ããŸããã¢ã€ã¹ãã¬ã€ã¯ãšã¯äœããããªãã¢ã€ã¹ãã¬ã€ã¯ãå¿
èŠãªã®ããã«ã€ããŠãåå è
å
šå¡ã«äžå¯§ã«èª¬æããŸããããã®é
æ
®ãç¹ã«éèŠããã®ã¯ãç§èªèº«ãéå»ã«ã¯ãŒã¯ã·ã§ããã«åå ããéãçªç¶ã²ãŒã ãå§ãŸã£ãŠããããããæå³ãããããããªãããšæ··ä¹±ããçµéšããã£ãããã§ãã ã¢ã€ã¹ãã¬ã€ã¯ãåãªãå ŽãåãŸããããã®æéã§ã¯ãªãããã®åŸã®è°è«ã®è³ªãå·Šå³ããéèŠãªèŠçŽ ã§ããããšãçè§£ããŠãããããã以äžã®4ã€ã®ç®çãæç¢ºã«äŒããŸããïŒ åå è
å士ã®ç·åŒµãã»ãã : å察é¢ãä¹
ãã¶ãã®å¯Ÿé¢ã§çããããã¡ãªããè§£æ¶ããå¿ççå®å
šæ§ãé«ãã å Žã®é°å²æ°ãæãããã : ããžãã£ããªç©ºæ°ãäœãåºãããã®åŸã®è°è«ã掻çºã«ãªãåå°ãç¯ã èŠªè¿æãé«ãã : å
±éã®äœéšãéããŠããäºããžã®çè§£ãæ·±ããããŒã ãšããŠã®ç¹ããã匷åãã éäžåãé«ãã : 軜ãã¢ã¯ãã£ããã£ãéããŠãåå è
ã®æèããªããµã€ãã®ããŒããžãšèªç¶ã«åŒã蟌ã ãã®èª¬æã«ãããåå è
ã¯ã¢ã€ã¹ãã¬ã€ã¯ã®éèŠæ§ãçè§£ããç©æ¥µçã«åå ããããšãã§ããŸããããã®äºåã®é
æ
®ããæ¬¡ã®ã¢ã€ã¹ãã¬ã€ã¯ã»ãã·ã§ã³ã§ã®èªç¶ãªåå ã«ã€ãªãããŸããã ã¢ã€ã¹ãã¬ã€ã¯ïŒç·åŒµãã»ãããäžäœæãè²ãæé ã¢ã€ã¹ãã¬ã€ã¯ãšããŠãäºåã«AIãæŽ»çšããŠäœæããçŠå²¡ã«ã¡ãªãã ã¯ã€ãºããã¹ã¿ãŒãããŸãããã¢ã€ã¹ãã¬ã€ã¯ã®ç®çã¯ãåå è
å士ã®ç·åŒµãã»ãããå Žã®é°å²æ°ãæããããèŠªè¿æãé«ããããšã§ãããäºãã®æå€ãªäžé¢ãç¥ããããªè³ªåãæããããããšã§ãç¬ã声ãçµ¶ããªãåãããªé°å²æ°ãäœãåºãããšãã§ããŸããã ç¹ã«ãã¯ãŒã¯ã·ã§ãã圢åŒã«äžæ
£ããªã¡ã³ããŒãããèªç¶ãªç¬ã声ãèãããç·åŒµããŠãã衚æ
ãåããã§ããæ§åãå°è±¡çã§ããããã®ã¢ã€ã¹ãã¬ã€ã¯ãéããŠãåå è
å
šå¡ãåãå俵ã«ç«ã¡ã次ã®ã»ãã·ã§ã³ã«åããæºåãæŽããŸããã 5ã°ã©ãŠã³ãã«ãŒã«ã®å
±æ ã¢ã€ã¹ãã¬ã€ã¯ã®åŸãã¯ãŒã¯ã·ã§ãããåæ»ã«é²ããããã®ã 5ã°ã©ãŠã³ãã«ãŒã« ããåå è
å
šå¡ã§å
±æããŸããããã®ã«ãŒã«ã¯ãä»å¹Žç§ãåå ãã瀟å€ã€ãã³ãã§è¬åž«ã®æ¹ã䜿çšããŠãããã®ã§ãéå¶è
ãšããŠåå ããç§ããã®å¹æã宿ããä»åã®ãªããµã€ãã§æ¡çšããããšã«ããŸããã ã»ãã èŽã åããšãã åŸ
〠æãã å®éã«äœéšè
ãšããŠåå ããããšã§ããããã®ã«ãŒã«ãåå è
ã®å¿ççå®å
šæ§ãé«ãã質ã®é«ãè°è«ãçã¿åºã广ã宿ã§ããŸãããä»åã®ãªããµã€ãã§ããåå è
å
šå¡ãåã䟡å€èгã§ã¯ãŒã¯ã·ã§ããã«èšãããšãã§ããŸããã ã¿ã€ã ã©ã€ã³ã«ãããããžã§ã¯ãã®ãµãããã ã¢ã€ã¹ãã¬ã€ã¯ã§å Žãæž©ãŸããã5ã°ã©ãŠã³ãã«ãŒã«ãã§åå è
å
šå¡ã®èªèãããã£ããšããã§ãã¡ã€ã³ã³ã³ãã³ãã§ãããã¿ã€ã ã©ã€ã³ã䜿ã£ããããžã§ã¯ãã®ãµããããããžãšç§»ããŸãããææ°æãããžã§ã¯ãã¯é·æã«ããããããéå»ã®åºæ¥äºãæç³»åã§æŽçããå
±éèªèãæã€ããšãéåžžã«éèŠã ãšèããŸããã ã¹ããã1ïŒã§ãããšãšæããããšãæžã ãŸããããŒã«äžã®æš¡é çŽã«ãããžã§ã¯ãã®ã¿ã€ã ã©ã€ã³ãåŒããåã¡ã³ããŒãå°è±¡ã«æ®ã£ãŠããã§ãããšãæããããšãä»ç®ã«æžãåºãã該åœããææã«è²Œãä»ããŠãããŸããããã®ããã»ã¹ã§ã¯ããŸãäºå®ãšããŠã®ãã§ãããšããæžãåºããããã«å¯ŸããŠãæããããšããè€æ°æžãåºããšããæç¢ºãªæé ã瀺ããŸããã äºåæºåãšããŠããããŸã§ã®è°äºé²ãNotebookLMã«èªã¿èŸŒã¿ãé³å£°åºåãµããªãŒãäœæããŸããããã®ãµããªãŒãåå è
å
šå¡ã§èãããšã§ããããžã§ã¯ãã®å
šäœåãå
±éèªèãšããŠæã€ããšãã§ããããå
·äœçã§æ·±ãè°è«ã«ã€ãªãããŸããã ä»ç®ã«ã¯è²åããæ¡çšããã§ãããšã¯é»è²ãæããããšã¯ãã®ä»ã®è²ã§åé¡ããããšã§ãèŠèŠçã«æ
å ±ãæŽçããããããŸãããã¢ããã°ãªææ³ã ãããããåå è
ãçŽæ¥æãåãããŠæ
å ±ãæŽçã§ããããžã¿ã«ã§ã¯åŸãããªãç©ççãªäœéšãéããŠãããæ·±ãè°è«ãçãŸããŸããã ã¹ããã2ïŒä»ç®ã貌ã ã¿ã€ã ã©ã€ã³äžã«ãéèŠãªãã€ã«ã¹ããŒã³ãèšå®ããååå è
ã該åœããææã®ä»ç®ã貌ãä»ããŠãããŸããã ãã®ã¹ãããã§ã¯ãã§ãããšã«ã€ããŠç°¡åã«èª¬æããæéãèšããŸãããããã«ãããä»ã®ã¡ã³ããŒãç¥ããªãã£ãåºæ¥äºããç°ãªãèŠç¹ã§ã®æãæ¹ãå
±æããããšãã§ãããããžã§ã¯ãã®å€é¢çãªçè§£ãæ·±ãŸããŸããã ç¹ã«å°è±¡çã ã£ãã®ã¯ãæžãã人ãèªã¿äžããããšã§ããããããã£ãããããããã£ãããšæ¬¡ã
ãšæãåºãæ¹§ãäžãããä»ç®ãã©ãã©ãå¢ããŠãã£ãããšã§ãããã®æ®µéã§åå è
å
šå¡ã®ç±éãäžæ°ã«äžãããã¯ãŒã¯ã·ã§ããã®é°å²æ°ã倧ããå€ãããŸããã ã¹ããã3ïŒã°ã«ãŒãã³ã°ãã ã¿ã€ã ã©ã€ã³ã«æ²¿ã£ãŠæžãåºãããä»ç®ããé¢é£æ§ã®ãããã®å士ã§ãŸãšããäœæ¥ãè¡ããŸãããåããããªèª²é¡ããåãææã®åºæ¥äºãåãããŒã ã«é¢é£ãããã®ãã°ã«ãŒãåããããšã§ããããžã§ã¯ãå
šäœã®èª²é¡ãããæç¢ºã«ãªããŸããã ã¹ããã4ïŒè©±ãæ·±æããããä»ç®ã«ã·ãŒã«ã貌ã ã°ã«ãŒãã³ã°ãããä»ç®ã®äžãããããã«è©³ããè°è«ããããããã¯ã課é¡ã«ã·ãŒã«ã貌ãããšã§ãåªå
é äœä»ããæ·±æãã®å¯Ÿè±¡ãæç¢ºã«ããŸããããã®ããã»ã¹ãéããŠããããžã§ã¯ãã®æåäœéšã課é¡ã転æç¹ãªã©ãèŠèŠçã«æç¢ºã«ãªããåå è
å
šå¡ãåãèŠç¹ã§ãããžã§ã¯ãã®å
šäœåãææ¡ã§ããããã«ãªããŸããã ã°ã«ãŒããã£ã¹ã«ãã·ã§ã³ ã¿ã€ã ã©ã€ã³ã®ãµããããåŸãæœåºããããããã¯ãåºã«ã°ã«ãŒãã«åãããã°ã«ãŒããã£ã¹ã«ãã·ã§ã³ã宿œããŸãããåã°ã«ãŒãã«ã¯45åéã®æéãèšããç¹å®ã®èª²é¡ãããŒãã«ã€ããŠæ·±æãããå
·äœçãªèª²é¡ã®æœåºã次ã®ãã¯ã¹ãã¢ã¯ã·ã§ã³ãå°ãåºãããšã«æ³šåããŸããã ãã¯ã¹ãã¢ã¯ã·ã§ã³ã®æœåºãšåªå
床決ã ã°ã«ãŒããã£ã¹ã«ãã·ã§ã³ã§åºãããå€ãã®ã¢ã€ãã¢ã課é¡ã®äžãããæãéèŠã§å®è¡å¯èœãªããã¯ã¹ãã¢ã¯ã·ã§ã³ããç¹å®ãããã®åªå
é äœã決å®ããŸããããã®æ®µéã§ã¯ãåã¢ã¯ã·ã§ã³ã®å®çŸå¯èœæ§ã圱é¿åºŠãèæ
®ããããŒã å
šäœã§åæã§ããåªå
é äœãèšå®ããããšãã§ããŸããã ãªããµã€ãèªäœã®ãµãããã ä»åã®ãªããµã€ããã©ãã ã广çã ã£ãããè©äŸ¡ãããããããµããããã®ãµãããããã宿œããŸãããæ©ãã«å
šå¡ãããœã³ã³ãéããŠããªããµã€ãã«éäžã§ããç°å¢ãäœã£ãããšããçŠå²¡ãšããå Žæãéžãã ããšã§æ®æ®µåå ãé£ããã¡ã³ããŒãåå ã§ããããšããç¹ã«è¯ãã£ãç¹ãšããŠæããããŸãããé·æéã®éå¬ã«ãé¢ããããè°è«ãéåããããšãªã掻çºã«é²è¡ã§ããã®ã¯ããªã¢ãŒãã¯ãŒã¯ã§ã¯å®çŸå°é£ãªå¯Ÿé¢ãªãã§ã¯ã®éäžåãšäžäœæã®è³ç©ã§ããã ãŸãšã ä»åã®ãªããµã€ãã¯ãææ°æãããžã§ã¯ãã®çŸç¶ã課é¡ãæŽçããä»åŸã®ã¢ã¯ã·ã§ã³ã«ã€ãªããã ãã§ãªããããŒã ãšããŠã®çµæåãé«ãã貎éãªæ©äŒãšãªããŸãããã¹ã¯ã©ã ãã¹ã¿ãŒãšããŠã¯ãŒã¯ã·ã§ãããã¶ã€ã³ãæ
åœããçµéšã¯ãä»åŸã®ãããžã§ã¯ãéå¶ã«ã倧ããªåŠã³ãšãªããŸããã ãããªææïŒ é·æãããžã§ã¯ãã®å¹æçãªãµããããææ³ïŒã¿ã€ã ã©ã€ã³ãµããããïŒã®å®è·µ AIãæŽ»çšããã¯ãŒã¯ã·ã§ãããã¶ã€ã³ã®å¹ææ€èšŒ åååå è
ãžã®é
æ
®ãšå¿ççå®å
šæ§ã®ç¢ºä¿ã«ãã質ã®é«ãè°è«ã®å®çŸ 5ã°ã©ãŠã³ãã«ãŒã«ã掻çšããããŒã å
šäœã®äŸ¡å€èŠ³çµ±äž å¯Ÿé¢ã§ã®ããŒã ãã«ãã£ã³ã°ã«ããä¿¡é Œé¢ä¿ã®åŒ·å
ã¡ã«ã«ãªããã§ QA Engineering manageãããŠãã @____rina____ ã§ãã æšå¹Ž2024幎11æã«éå¬ããã Agile Testing Days ãšããã§åå ããã¯ãŒã¯ã·ã§ããã«ã€ããŠç޹ä»ããŸãã Agile Testing Daysãšã¯äœã ã Agile Testing Days ãšã¯ããã€ãã®ãããã ã§æ¯å¹Žéå¬ãããŠããã«ã³ãã¡ã¬ã³ã¹ã§ããåå è
å±€ã¯ãã¹ã¿ãŒãã¢ãžã£ã€ã«ãã¹ã¿ãŒãQAãšã³ãžãã¢ããã¹ããªãŒãããã¹ããªãŒãã¡ãŒã·ã§ã³ãšã³ãžãã¢ãšãã£ãQAããã¹ãã«é¢ãããšã³ãžãã¢ã«å ãããã£ãããããŒããœãããŠã§ã¢ãšã³ãžãã¢ãã¢ãžã£ã€ã«ã³ãŒããã¹ã¯ã©ã ãã¹ã¿ãŒããããã¯ããªãŒããŒãããŒã ãªãŒããªã©æ§ã
ãªæ¹ã察象ã®ã«ã³ãã¡ã¬ã³ã¹ã§ããä»ååå ããæ¥æ¬èªè©±è
ã®åå è
ã¯æ°åã ã£ãããšããšãŒãããã®åå è
ãå€ãã£ãããã§ãã³ãã¥ãã±ãŒã·ã§ã³ã¯è±èªã§ãããªããŸããã Agile Testing Daysã§ã¯ã1æ¥ã®ã¯ãŒã¯ã·ã§ãããš3æ¥éã®ã«ã³ãã¡ã¬ã³ã¹ã§æ§æãããŠããŸããã«ã³ãã¡ã¬ã³ã¹ã§ã¯ãããŒããŒããã¯ãããã»ãã·ã§ã³ãããã«ãã£ã¹ã«ãã·ã§ã³ãã¯ãŒã¯ã·ã§ãããªã©ãéå¬ãããŸãããŸããã»ãã·ã§ã³ã®åéã«ã¯ã³ãŒããŒãã¬ã€ã¯ãã©ã³ããªã©ããæäŸãããæã®ãžã§ã®ã³ã°ããå€ã®é³æ¥œã€ãã³ããŸã§ãäžžäžæ¥ã€ãã³ããæ¥œããããã®ä»æããããããçšæãããŠããŸããã ãã«ã³ãã¡ã¬ã³ã¹äŒå Žã¯ã¢ãžã£ã€ã«ãã¹ãã®ç¬¬äžäººè
ãšãèšãã Lisa Crispin ã«äŒãããšãã§ããããããããã®æèè
ã«äŒããããåãæ©ã¿ãæã£ããšã³ãžãã¢ãšäº€æµã§ããããããšãŠãåºæ¿çãªã€ãã³ãã§ããã ãã¹ããŒã«ãŒã¯ã·ãã¢ãšã³ãžãã¢ã«éãããã¯ãããŠç»å£ãããæ¹ã®ã»ãã·ã§ã³ãªã©ãå¹
åºãç»å£è
ã®ããããã®çºè¡šãèãããšãã§ããŸããã Getting a grip on exploratory testing with test charters ãEwald WassinkSconewileæ°ãšRob van Sttenbergenæ°ã«ãããæ¢çŽ¢çãã¹ãã®ã¯ãŒã¯ã·ã§ããã§ããæ¢çŽ¢çãã¹ãã®ã¯ãŒã¯ã·ã§ããã¯åœå
ã§ãæã
èŠãããããã«ãªããŸããã ããã®ã¯ãŒã¯ã·ã§ããã¯ããã€ãã®ããŒãã«ã«åãããŠã°ã«ãŒãã¯ãŒã¯ãããŸãããç§ã®ã°ã«ãŒãã¯4åã§ã2åã¯ãã€ãããã®åå ã§ãè±èªã§ã³ãã¥ãã±ãŒã·ã§ã³ãããŸããã æ¬¡ã«ã¯ãŒã¯ã·ã§ããã®æµãã玹ä»ããŸãã ã¯ãŒã¯ã·ã§ããã®æµã 以äžã®ãããªæµãã§ã¯ãŒã¯ã·ã§ããããã¶ã€ã³ããŠããŸããã è¬åž«ã®èªå·±ç޹ä»ãšã¯ãŒã¯ã·ã§ããã®èª¬æ ããªãŒã¹ã¿ã€ã«ã§æ¢çŽ¢çãã¹ãããã 2ã§èŠã€ããäžå
·åã®çŽ¹ä» ãã¹ããã£ãŒã¿ãŒãå©çšããæ¢çŽ¢çãã¹ã ã°ã«ãŒããã£ã¹ã«ãã·ã§ã³ãšçºè¡š ç»å£è
ã®èæ¡ãããã¬ãŒã ã¯ãŒã¯ãå©çšããæ¢çŽ¢çãã¹ã ã°ã«ãŒããã£ã¹ã«ãã·ã§ã³ãšçºè¡š 1. è¬åž«ã®èªå·±ç޹ä»ãšã¯ãŒã¯ã·ã§ããã®èª¬æ è¬åž«2人ã®èªå·±ç޹ä»ããããŸãããæµ·å€ã®ããŒããŒããªã©ã¯åœå
ã§ãèŠãæ©äŒããããŸããããèªå·±ç޹ä»ãããªãå°è±¡ããã£ãã®ã§ãå°ãæå€ã§ããã圌ãã®ããã¯ããŒã³ãªã©ãç¥ãããšãã§ããŸããã 2. ããªãŒã¹ã¿ã€ã«ã§ãã¹ããå®è¡ãã 以äžã®URLã«ã¢ã¯ã»ã¹ããŠãå人ã§ããªãŒã¹ã¿ã€ã«ã§ãã¹ããããŸããã https://www.eviltester.com/page/tools/thepulper/ 顿ã¯Webãµã€ãã§ãåã
ã«äžå
·åãåºããŠãããŸãããã¹ãèšèšã¯ããã«ãçµéšããŒã¹ã§ãã¹ããå®è¡ããŸãã HTMLãšã³ã³ãŒããè¡ãããŠããªããããå
¥åãããå€ããã®ãŸãŸHTMLãšããŠè¡šç€ºãããäžå
·å HTMLãšã³ã³ãŒããããŠããªãããã«ãå
¥åå€ãšinput formã®è¡šç€ºãå€ãã£ãŠããŸãäžå
·å æ¥ä»ãå
¥åããæ¬ã«å€§ããªæ°åããããããã«Number Format ExceptionãçºçããŠããŸã£ãããããäžå
·åãšãããã©ããã¯ä»æ§æ¬¡ç¬¬ 3. çºèŠãããäžå
·åã®å
±æ ãåå è
å
šå¡ã§ãæ¢çŽ¢çãã¹ãäžã«çºèŠããäžå
·åã«ã€ããŠçºè¡šããŸãããç§ã¯èªèº«ãå ±åããããšããŠããäžå
·åããæ¢ã«ä»ã®åå è
ã«ãã£ãŠå ±åæžã¿ã§ããã確信ãæãŠãŸããã§ãããããã§ã念ã®ããé£åžã®æ¹ã«äžå
·åã®ç»é¢ãèŠããªãããããã®ãã°ã«ã€ããŠå ±åããããšæã£ãŠããã®ã§ãããæ¢ã«çºè¡šãããæ¹ã¯ããŸããïŒããšç¢ºèªããŸããããããšããã®æ¹ã¯ç§ã®çºè¡šããã©ããŒããŠãã ãããå®å¿ããŠçºè¡šã«èšãããšãã§ããŸããã 4. æ¢çŽ¢çãã¹ããšãã¹ããã£ãŒã¿ãŒã®è§£èª¬ ããã§ã¯ãæ¢çŽ¢çãã¹ããšã¯äœãããããŠãã¹ããã£ãŒã¿ãŒãšã¯äœãã«ã€ããŠè§£èª¬ããããŸãããè¬åž«ããã¯ãèåãªãœãããŠã§ã¢ãã¹ãç ç©¶è
ã§ãã Cem Kaner æ°ã®èšèãåŒçšãã€ã€ãããã¹ããã£ãŒã¿ãŒã¯ããã¹ãã®ãŽãŒã«ãæç¢ºã«ããããã®èšç»ã§ããããšãã説æããããŸããã 以äžã¯ãã¹ããã£ãŒã¿ãŒã®äŸã§ãã define your goal; charter template target where are you exploring? resources what resources do you need ? information what kind of information do you want to discover 5. ãã¹ããã£ãŒã¿ãŒãçšããæ¢çŽ¢çãã¹ã é£ã®åžã®æ¹ãšãã¢ã«ãªããå
ã»ã©ã®ãã¹ã察象ã®Webã¢ããªã±ãŒã·ã§ã³ã«å¯ŸããŠãä»ç®ã䜿ã£ãŠãã¹ããã£ãŒã¿ãŒãäœæããŸããããã¢ã¯ãŒã¯åŸãã°ã«ãŒãå
šäœã§ããããã®ãã¢ãã©ã®ãããªèãã§ãã¹ãé
ç®ãéžã³ããã¹ããã£ãŒã¿ãŒãäœæããããå
±æããè°è«ããŸããã 6. BRIEFãã¬ãŒã ã¯ãŒã¯ã®ææ¡ è¬åž«ãããElizabath Hendricsonæ°ãæå±ãããã¹ããã£ãŒã¿ãŒã«ã€ããŠã®èª¬æããããŸãããç§ã¯ãã¹ããã£ãŒã¿ãŒã«ã€ããŠã圌女ã®èæžã§ç¥ã£ãŠã¯ãããã®ã®ãæ¹ããŠèª¬æãåããããšã§ãèªèº«ã®æ±ããŠããéåæãæç¢ºã«ãªããŸãããããã¯ãåãå
¥ãæ¡ä»¶ïŒAcceptance CriteriaïŒãæžãéãã€ãŸããã¹ãèšèšæã«ãæ
å ±ããã¹ã芳ç¹ããèšè¿°ããŠããç¹ã§ããã ãããŠãè¬åž«ããæå±ããæ°ãããã¬ãŒã ã¯ãŒã¯ãBRIEFãã®èª¬æããããŸããã BRIEFã¯ãBehaviorïŒè¡åïŒãResultïŒçµæïŒãImpedimentsïŒé害ïŒãExpectationïŒæåŸ
ïŒãFeelingïŒææ
ïŒ ã®é æåãåã£ããã®ã§ãããã®ãã¬ãŒã ã¯ãŒã¯ãçšããããšã§ãæ¯ãèãã軞ãšãããã¹ããã£ãŒã¿ãŒãäœæããããšãã§ããŸããæåŸã«ããã®BRIEFãã¬ãŒã ã¯ãŒã¯ã䜿ã£ãŠãã¢ã¯ãŒã¯ãè¡ãããã®åŸãä»ã®ã°ã«ãŒããšå
¥ãæ¿ãã£ãŠãã£ã¹ã«ãã·ã§ã³ãè¡ããŸããã ãã¢ã¯ãŒã¯ã§äœ¿ã£ãä»ç® ãã®ã¯ãŒã¯ã·ã§ããã§ç¹ã«çŽ æŽããããšæããã®ã¯ãè¬åž«èªèº«ãèæ¡ãããã¬ãŒã ã¯ãŒã¯ãBRIEFããæŽ»çšããŠããç¹ã§ããæ¢çŽ¢çãã¹ãã®ã¯ãŒã¯ã·ã§ããã§ã¯ãæãåããæŒç¿ãåå è
åå£«ã®æèŠäº€æããã¹ããã£ãŒã¿ãŒã®äœæãªã©ã¯ããè¡ãããŸããããããä»åã®ããã«æ°ãããã£ãŒã¿ãŒã®ãã¬ãŒã ã¯ãŒã¯ãå®éã«è©Šãæ©äŒã¯åããŠã§ãéåžžã«ææçŸ©ã§ãããå人çã«ããBRIEFã®ãã¬ãŒã ã¯ãŒã¯ã¯æ®æ®µç§ããã¹ããèããéã®æèåè·¯ã«è¿ãããšãŠããã£ããããŸããã Journey From Manual to Automation Pythonic Tester ç¶ããŠãMateusz Adamczakæ°ãšMichal Pilarskiæ°ã«ããããã¹ãèªååã®ååŠè
ã察象ãšããã¯ãŒã¯ã·ã§ããã«ã€ããŠã玹ä»ããŸãããã®ã¯ãŒã¯ã·ã§ããã¯ãã³ãºãªã³åœ¢åŒã§è¡ãããåå è
ã¯èªèº«ã®PCã䜿ã£ãŠå®éã«èªåãã¹ããäœæããŸããã ã¯ãŒã¯ã·ã§ããã®æµã ã¯ãŒã¯ã·ã§ããã§ã¯ä»¥äžã®ãããªæµãã§ã¯ãŒã¯ã·ã§ããããã¶ã€ã³ããŠããŸããã å¿
èŠãªããŒã«ãšãªããžããªã®ããŠã³ããŒã Scrachã䜿ã£ãŠã¢ãã¡ã®äœæ Pythonã®ã³ãŒãã«ã³ã³ããŒããã ãã¹ãã³ãŒãã®äœæ ã°ã«ãŒããã£ã¹ã«ãã·ã§ã³ãšçºè¡š ç»å£è
ã®èæ¡ãããã¬ãŒã ã¯ãŒã¯ãå©çšããæ¢çŽ¢çãã¹ã ã°ã«ãŒããã£ã¹ã«ãã·ã§ã³ãšçºè¡š ãã¡ããã²ãšã€ãã€ç޹ä»ããŸãã 1. å¿
èŠãªããŒã«ãšãªããžããªã®ããŠã³ããŒã GitLabã®ãªããžããªãPythonãJetBrainsãããŠã³ããŒãããŸãã GitLab – GitLab.com – Files · ATD_workshop_manual2auto · Michal Pilarski / python_kids · GitLab Python.org – Python.org JetBrains – PyCharm – https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=macM1&code=PCC 2.Scratchã䜿ã£ãã¢ãã¡ãŒã·ã§ã³åç»äœæ Scratchã䜿ã£ãŠã¢ãã¡ãŒã·ã§ã³åç»ãäœæããŸãããæåã«è¬åž«ãç»é¢å
±æããªããäœãæ¹ã説æããåå è
ã¯ããã«å£ã£ãŠäœæ¥ãé²ããŸãããScratchã¯ãåäŸåãã®ããã°ã©ãã³ã°åŠç¿ããŒã«ãšããŠæ¥æ¬ã§ã人æ°ããããçŽæçãªæäœã§ã¢ãã¡ãŒã·ã§ã³ãäœæã§ããŸãããã®ãããããã°ã©ãã³ã°ååŠè
ã§ãåé¡ãªãåãçµãããšãã§ããŸãããè¬åž«ã®æç€ºã«åŸãããã£ã©ã¯ã¿ãŒãååŸã«åãããããé³ã鳎ãããããšãã£ãç°¡åãªåäœãäœæããŸããã 3. Pythonã³ãŒããžã®å€æ Scratchã§äœæããã¢ãã¡ãŒã·ã§ã³ã宿ããã®ã§ã次ã¯ãããPythonã®ã³ãŒãã«å€æããŸã 倿ã«å¿
èŠãªã³ãŒãã¯äºåã«çšæãããŠããŸããã ãŸãã¿ãŒããã«ã§ python -V ãå®è¡ããŠPythonã®ããŒãžã§ã³ã確èªããæ¬¡ã« pip install -r requirements.txt ãå®è¡ããŠå¿
èŠãªã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããŸãããã®åŸãScratchã§äœæãã kitty.sb3 ãã¡ã€ã«ã倿ããããšã§ãPythonã®ã³ãŒããçæãããŸããã è¬åž«ããåºæ¬çãªPythonã³ãŒãã®èª¬æãããããã®åŸã¯åå è
èªèº«ã§ã³ãŒãã®å®è£
ãè¡ããŸãããç§ã®äœæããã¢ãã¡ãŒã·ã§ã³ã«ã¯èæ¯ããªãã£ããããçæãããã³ãŒãã®6è¡ç®ãã³ã¡ã³ãã¢ãŠãããå¿
èŠããããŸããã 4. ãã¹ãã³ãŒãã®äœæ ãããããã¹ãã³ãŒãã®äœæã§ããå
ã»ã©ã³ã³ããŒãããã³ãŒãã«å¯ŸããŠãã¹ãã³ãŒããå®è£
ããŸãã ãè¬åž«ãç°¡åãªãã¹ãã®ãµã³ãã«ã³ãŒãã玹ä»ããŠãããŸããããã®ãµã³ãã«ã³ãŒãã¯ãScratchã§äœæããã¢ãã¡ãŒã·ã§ã³ã®åãããã¹ããããã®ã§ãpytestã©ã€ãã©ãªã䜿çšããŠããŸãããäŸãã°ããã£ã©ã¯ã¿ãŒãæå®ãããäœçœ®ã«ç§»åããããšãæ€èšŒãããã¹ãããç¹å®ã®é³ã鳎ãããšãæ€èšŒãããã¹ããªã©ããããŸãããè¬åž«ãã³ãŒããç»é¢å
±æããªãã説æããŠãããã®ã§ãç§ãã¡ãèªèº«ã®PCã§åãããã«ã³ãŒããæžãåããŸããããšã©ãŒãçºçããç®æã¯ããšã©ãŒã¡ãã»ãŒãžãèªã¿ãªããä¿®æ£ããããè¬åž«ã«è³ªåãããããŠè§£æ±ºããŸããããã®åŸãã¿ãŒããã«ã§pytestã³ãã³ããå®è¡ããŠãã¹ããå®è¡ãããã¹ããæåããããšã確èªããŸããã詳现ãªãã¹ãã³ãŒãã«ã€ããŠã¯ããã²GitLabã®ãªããžããªïŒ[GitLabã®ãªããžããªURL]ïŒã«ã¢ã¯ã»ã¹ããŠç¢ºèªããŠãã ãããã¯ãŒã¯ã·ã§ããã§äœ¿çšãããã¹ãŠã®ãã¹ãã³ãŒããé¢é£è³æãå
¬éãããŠããŸãã®ã§ããã¹ãã³ãŒãã®å
šäœåãææ¡ããããå®éã«ãã¹ããå®è¡ãããããããšãã§ããŸãã ãã®ã¯ãŒã¯ã·ã§ããã®ç¹çãã¹ãç¹ã¯ããŸãååŠè
ã®åå è
ãå®éã«åãããã°ã©ã ãäœæã§ããããšã§ããScratchãæŽ»çšããããšã§ãåå è
ãåãããã°ã©ã ãèªãäœããããã«ãããšããã¢ã€ãã¢ã¯éåžžã«çŽ æŽããããšæããŸãããéåžžã®èªåãã¹ãã«é¢ãããã³ãºãªã³ã§ã¯ãå€ãã®å Žåãäºåã«çšæãããããã°ã©ã ã«å¯ŸããŠãã¹ãã³ãŒããæžãããšãäžè¬çã§ããããããä»åã®ã¯ãŒã¯ã·ã§ããã§ã¯ãåããã®ããŒãããèªåã§äœãããã®ãã¹ãã³ãŒããŸã§æžããšããäžé£ã®æµãããæ°æéãšããçãæéã§äœéšã§ããç¹ãçŽ æŽããããšæããŸãããã¯ãŒã¯ã·ã§ããã®æéå
ã§ãã¹ãŠã®ãã¹ãã³ãŒããå®è£
ããããšã¯ã§ããŸããã§ããããåå è
å
šå¡ãäœããã®åœ¢ã§ãã¹ãã³ãŒããå®è£
ããããšãã§ããŸãããååŠè
åãã«Scratchã§ã¢ããªäœæãäœéšããããããPythonã³ãŒãã«å€æããèªèº«ãäœæãããããã¯ãã³ãŒãã«å¯ŸããŠãã¹ãã³ãŒããå®è£
ãããšããã¯ãŒã¯ã·ã§ããã®ãã¶ã€ã³ã¯ãæ¬åœã«çŽ æŽããããšæããŸããã ãããã« ä»åã®èšäºã§ã¯åå ãã2ã€ã®ã¯ãŒã¯ã·ã§ããã«ã€ããŠã玹ä»ããŸãããã©ã¡ãã®ã¯ãŒã¯ã·ã§ããããçæéã§ææã宿ã§ãããããªå·¥å€«ãåããããŠããããã®å
容ãšãšãã«å€§å€å匷ã«ãªããŸãããã¯ãŒã¯ã·ã§ããã®ãªãŒããŒã®æ¹ã
ã«ã¯ãçŽæ¥ãäŒãããŠæè¬ã®æ°æã¡ããäŒããããã²ãã®çŽ æŽãããã»ãã·ã§ã³ãæ¥æ¬ã«ããã¿ããªã«ãåºãããã®ã§ããµã€ãã®URLãªã©ãå
¬éããŠãè¯ãã確èªãããŠããã ããŸããã ãç§èªèº«ãé·å¹Žè±èªã«èŠææèããããã¯ãŒã¯ã·ã§ãããžã®åå ã¯ãä»ã®åå è
ãè¬åž«ã®æ¹ã
ã«ãè¿·æããããŠããŸãã®ã§ã¯ãªãããšããäžå®ããããŸãããããããåãå¿ãæã€ä»²éãã¡ãšãäºãã®äŒãããå
容ãçè§£ããããšããå§¿å¢ã«è§Šãããã®ãã¡ã®äžäººãšã¯æ°é±éåŸã«ç§ã®äœãè¡ãžå¶ç¶æ
è¡ã«æ¥ããšã®ããšã§ãé£äºã®çŽæãŸã§ã§ããŸããããŸããåå è
ã®äžã«ã¯ç¬¬äºå€åœèªãšããŠè±èªãåŠãã§ããæ¹ãããããã§ãã¿ããªãçå£ã«è³ãåŸããŠãããå§¿å¢ãå°è±¡çã§ããã ãçµæãšããŠãç§èªèº«ãéåžžã«æ¥œããåŠç¿ã§ããæéãéããããšãã§ããŸãããåãã°ã«ãŒãã«ãªã£ãåå è
ã®æ¹ã
ãããšãŠã芪åã§å©ããããŸãããç§ã¯è±èªãåŸæã§ã¯ãããŸããããAgile Testing Daysã§ã¯ããŒããŒããã¯ãããæ°å€ãã®ã»ãã·ã§ã³ãã¯ãŒã¯ã·ã§ãããããã«ãã£ã¹ã«ãã·ã§ã³ãéå¬ãããç»å£è
ã®çµéšã«åºã¥ããçºè¡šãå€ããå
±æã§ããå
å®¹ãæ°å€ããããŸããã ãã»ãã·ã§ã³ä»¥å€ã®æéã«ãé£äºãæäŸãããåå è
åå£«ãæ¥œãã亀æµã§ããå ŽãèšããããŠããã3æ¥éãéããŠå€ãã®æ¹ã
ãšè©±ãããšãã§ããŸããã ãä»å¹Žã® Agile Testing Daysã®åå åä» ãå§ãŸããŸããããã®ããã°ããã£ããã«ãèªè
ã®ã¿ãªããŸãã¯ãŒã¯ã·ã§ããã詊ããŠã¿ãããæµ·å€ã®ã«ã³ãã¡ã¬ã³ã¹ãžã®åå ã«ææŠããŠã¿ãããšæã£ãŠããã ãããããšãŠãããããã§ãã
ã¯ããã« ããã«ã¡ã¯ã2025幎床ã®Build@Mercariã«åå ããŠãçŸåšã¯ã¡ã«ã«ãªã®CS Tool Teamã§ã€ã³ã¿ãŒã³ãããŠãã@Aokaãšç³ããŸãããã®èšäºã§ã¯ãç§ãBuild@Mercariã«åå ããææ³ãæé·ããããšã«ã€ããŠæžããŠãããããšæããŸãã Build@Mercariã£ãŠäœïŒ Build@Mercariãšã¯ããããŸã§ããŸããŸãªäºæ
ã§æ©äŒãå·¡ã£ãŠããªãã£ãæ¹ãç¹ã«STEMåéã»ITåéã«ããããã€ããªãã£ã§ããæ§èªèªã女æ§ã®æ¹ã
ãäžå¿ãšããŠãã¹ãã«ãã¬ãŒãã³ã°ãšã€ã³ã¿ãŒã³ã·ããã®æ©äŒãæäŸããããã°ã©ã ã§ãã ãã¬ãŒãã³ã°ã®è©± éžè Build@Mercariã®éžèã¯æžé¡ãšã³ãŒãã£ã³ã°ãã¹ãã®çµæã§é²ã¿ãŸããä»ã®å€ãã®ã€ã³ã¿ãŒã³ã·ãããšã¯ç°ãªãã颿¥ããªãã®ãç¹åŸŽçã§ããã æžé¡å¯©æ»ã§ã¯ããããŸã§ã®èªåã®çµéšãBuild@Mercariã«åå ãããçç±ãªã©ãèšå
¥ããŸãããã³ãŒãã£ã³ã°ãã¹ãã«ã€ããŠã¯ãããã°ã©ãã³ã°èšèªã®åºç€ææ³ãçè§£ããŠããã°è§£ããåé¡ãäžå¿ã§ãç«¶æããã°ã©ãã³ã°ã®ãããªé«åºŠãªåé¡ã§ã¯ãããŸããã§ããã éžèã¯å¿æçç±ãšã³ãŒãã£ã³ã°ãã¹ãã®çµæãç·åçã«å€æããŸãããå¿æçç±ãéèŠèŠãããŠããããã§ãã 忥ã®ãªãªãšã³ããŒã·ã§ã³ 忥ã®ã¿ãªãã©ã€ã³ã§ã®éå¬ã§ãã¡ã³ã¿ãŒãåãããŒã ã®åå è
ãšãªãã©ã€ã³ã§äº€æµããæ©äŒããããŸããããŸããGitHubã䜿ã£ã課é¡ãã¿ããªã§é²ããŠãäœ¿ãæ¹ã«æ
£ããããšãã§ããŸããããªãã©ã€ã³ã§äº€æµã§ããããšãäºé±éã®ãã¬ãŒãã³ã°æéãéããŠå¿ã®æ¯ããšãªããã¢ãããŒã·ã§ã³ãç¶æããããšãã§ããŸããã ãã¬ãŒãã³ã°ã§ãã£ãããš ãã¬ãŒãã³ã°ã§ã¯ãœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ã«å¿
èŠãªåºç€ç¥èãäžéãåŠã³ãŸããã ãã¬ãŒãã³ã°æéäžã¯ã5ã6人ã®ããŒã ã«ããããã¡ã³ã¿ãŒã®æ¹ãã€ããŠãã ãã圢ã§ãåèªã課é¡ã«åãçµã¿ãŸããã課é¡ã®å
容ã¯ä»¥äžã®éãã§ãåSTEPãé²ããªãããæçµçã«ã¯ã¡ã«ã«ãªã®ãããªååãç»é²ã§ããWebã¢ããªãäœããŸããã STEP1 Git STEP2 Setup environment STEP3 Algorithms and Data Structures STEP4 Develop API STEP5 Database STEP6 Writing Tests STEP7 Docker STEP8 Continuous Integration(CI) STEP9 (Stretch) Frontend STEP10 (Stretch) Run multi service EXTRA1 (Stretch) Data Analysis ãã¬ãŒãã³ã°å
容ã¯å
¬éãããŠããã以äžã®ã¬ããžããªãã確èªã§ããŸãã https://github.com/mercari-build/mercari-build-training/tree/main ã€ãŸã¥ããæã«ã¡ã³ã¿ãŒã®æ¹ã
ã«Slackã§è³ªåãããã課é¡ã®åSTEPããšã«ã¬ã¯ãã£ãŒãããŠãã ãã£ãããšãæåããµããŒãã®ãããã§ãæåŸãŸã§æ¥œããéçºãç¶ããããšãã§ããŸããã åŠãã ããš ããã°ã©ã æéäžã¯ããããã®ããšãåŠã³ãŸããããç¹ã«ä»¥äžã®ç¥èãã€ãããšæããŸãã Git, Githubã䜿ã£ãããŒã éçºã®åºç€ Backendéçºã®æµã DockerãCIãªã©ã€ã³ãã©ã®ç¥è ãã®ãã¬ãŒãã³ã°ãéããŠã®äžçªã®å€§ããªæé·ã¯ãéçºããããšã«å¯Ÿããå¿ççãªããŒãã«ãäžãã£ãããšã ãšæããŠããŸããåå ããåã¯ãããã³ããšã³ãã®éçºããããããšããªãã£ãã®ã§ãããããã³ããšã³ãããã€ã³ãã©ãŸã§ã®åºç€ç¥èã身ã«ã€ããããšã«ãããæ°ããæè¡ã«ã€ããŠåŠç¿ããéããéçºã§ã€ãŸã¥ããæã«ã©ã®é åã®ç¥èãæ·±ããŠããã°ããã®ã倿ã§ããããã«ãªããŸããã ãŸããããã°ã©ã ã®åå è
ã¯Udemy Businessã1幎éç¡æã§äœ¿ãããšãã§ããŸããã¯ãããŠåŠã¶ç¥èãå€ããªããåºç€ããäœç³»çã«åŠç¿ããããšãã§ããã®ã§ãéåžžã«åœ¹ã«ãã¡ãŸããã é£ããã£ãããš å®è£
ãå§ããåã«ãæ°ããæŠå¿µãçè§£ããå¿
èŠãããããªããã®æè¡ãå¿
èŠãªã®ããšãããšããããçè§£ããªããã°ãªããªãã£ãããšã倧å€ã§ãããçè§£ãæµ
ããŸãŸé²ããŠããŸããšãåŸã§ã€ãŸããããšãå€ãã£ããããåºç€ç¥èã身ã«ã€ããããã«Udemyã®åç»ãèŠèŽããããAIãšã®å£æã¡ãéããŠæŠå¿µãæŽçãããããŠçè§£ããªããé²ããŸããã ç¹ã«ãSTEP4ã®APIéçºã§ã¯ãPythonèšèªã䜿çšããŠRESTful APIãå®è£
ããã®ã§ããããããã°äœæ¥ã«èŠåŽããŸããããšã©ãŒãçºçããéã«ãã©ã®éšåã§ãªããšã©ãŒãèµ·ããŠããã®ããç¹å®ããã®ãé£ããæããŸããããããããã®çµéšãéããŠãããã°ã¹ãã«ã®éèŠæ§ãçæãããšãšãã«ããã°ã«å¯Ÿããèæ§ãã€ãããšæããŸãã ãŸããSTEP7ã®Dockerã®éšåã倧å€ã§ãããåããŠã³ã³ããæè¡ã«è§Šãããããä»®æ³åã®æŠå¿µããå§ãŸããã€ã¡ãŒãžãšã³ã³ããã®æŠå¿µãDockerfileã®æžãæ¹ãŸã§ããã¹ãŠãæ°ããç¥èã§ãããç¹ã«ãäŸåé¢ä¿ã®ç®¡çã¯çè§£ããã®ã«æéãããããäœåºŠããšã©ãŒãšåãåããªããå°ããã€å®è£
ãé²ããŸããããŸããå
¬åŒããã¥ã¡ã³ããèªã倧åããåŠã³ãŸãããã¯ããã¯ãšãŠãèªã¿ã¥ããæããŸããããçè§£ããã®ã«å€§å€åœ¹ã«ç«ã€ããšã宿ããŸããã èªèº«ã®å€å ããã°ã©ã ãéããŠãæè¡åã®åäžã¯ãã¡ããã®ããšãæ§ã
ãªæ¹ãšã®é¢ãããéããŠèªåèªèº«ã«å€§ããªå€åããã£ããšæããŠããŸãã åå è
ã®æ¹ã
ã®ããã¯ã°ã©ãŠã³ãã¯å€æ§ã§ãæ
å ±ç³»åŠéšã®äººã«éãããæç³»åŠéšãçŸè¡ç³»åŠéšã®äººããŸã髿 ¡çãã瀟äŒäººãŸã§å¹
åºãå¹Žéœ¢å±€ã®æ¹ãããã£ããããŸãããç§ã®ããã«Webéçºãåå¿è
ã®æ¹ãå€ãã£ãã§ãã ç§ããã®ããã°ã©ã ãä¿®äºã§ããæã倧ããªèŠå ã¯ãäžç·ã«åç£ç¢ç£šãåãã仲éãããããã ãšæããŠããŸãããäºãã«æãåããªããé 匵ãé°å²æ°ããšãŠãå¿å°ãããä»ã®åå è
ã®æ¹ã
ã®é²æã¯è¯ãåºæ¿ã«ãªããŸããã ãŸããããã°ã©ã ã®åæ¥ã«ã¯ç€Ÿå¡ã®æ¹ã
ã®ãã£ãªã¢ã«é¢ãããã¬ãŒã³ããŒã·ã§ã³ããããçŽæ¥è³ªåã§ããæ©äŒãããã ããŸãããåºç£ãåè²ãŠãšä»äºã®äž¡ç«ã転è·ã«é¢ããã話ãªã©ã貎éãªã話ãèãããšãã§ããèªåèªèº«ã®ãã£ãªã¢ã«ã€ããŠæ·±ãèããæéãšãªããŸããã Buildã€ã³ã¿ãŒã³ã®è©± éžè ãã¬ãŒãã³ã°æéçµäºåŸãäžå®ã®åºæºãæºãããåå è
ã¯ãã€ã³ã¿ãŒã³ã·ãããžã®å¿åè³æ ŒãåŸãããšãã§ããŸãã éžèããã»ã¹ã§ã¯é¢æ¥ã宿œãããäž»ã«ãã¬ãŒãã³ã°ãéããŠåŸãåŠã³ãæ°ã¥ãããããŸã§ã®æè¡çãªçµéšããããŠã¡ã«ã«ãªã®ããªã¥ãŒã«å¯Ÿããçè§£ãå
±æã«ã€ããŠè³ªåãããŸããã éžèééåŸã«ã¯ãå®éã®ã€ã³ã¿ãŒã³ã·ããéå§åã«äºåé¢è«ã®æ©äŒãèšããããŠããŸãããã®é¢è«ã§ã¯ãé
å±äºå®ã®ããŒã ã«ã€ããŠã®èª¬æããäžå®ãªç¹ã®çžè«ãªã©ãã§ãããããå®å¿ããŠã€ã³ã¿ãŒã³ã·ãããã¹ã¿ãŒãããããšãã§ããŸããã ãã£ãããš ã¿ã¹ã¯ã¯ãã«ã¹ã¿ããŒãµããŒãæ¥åã§äœ¿çšããã瀟å
ããŒã«ã§ããCS Toolã®PHPã§èšè¿°ãããŠããæ¢åãšã³ããã€ã³ããGoèšèªãšãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã§åæ§ç¯ãããšãããã®ã§ããã éçºã®èæ¯ãšããŠãCS Toolã®å€ãã®æ©èœã¯å€ãã¢ããªã¹ãªã¢ããªã±ãŒã·ã§ã³ãšããŠéçšãããŠããŸããå€ãBackendã¯PHPã§æžãããŠãããçŸåšãããä¿å®æ§ã®èгç¹ãªã©ãããæ°ãããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã«ç§»è¡ããåãçµã¿ãé²ããããŠããŸãã çŸåšCS Toolã§ã¯ãéçºæ¹éãšããŠæ¢åæ©èœã®ç§»è¡äœæ¥ãé²ããªãããæ°æ©èœã«ã€ããŠã¯æ°ãããµãŒãã¹ã§éçºãããšããã«ãŒã«ããããä»åç§ã¯åè
ãæ
åœããŸããã åŠãã ããš æ°ããæè¡(Go, Kubernetes, gRPC) ã¢ãŒããã¯ãã£ã®æŠå¿µãå®éã®ãµãŒãã¹éçšã§ã©ã®ããã«æŽ»çšãããŠããããçè§£ããããšãã§ããŸããã Test QA Releaseã®å·¥çš å®éã®éçºçŸå Žã§ã®å質管çããã»ã¹ãçµéšã§ããŸãããåäœãã¹ãã®æžãæ¹ãããQAã®ã±ãŒã¹ã®äœæãšå®æœããªãªãŒã¹ãŸã§äžé£ã®æµããåŠã¶ããšãã§ããŸããã ã³ãŒãã®å¯èªæ§ãèãã èªåã ããçè§£ã§ããã³ãŒãã§ã¯ãªããããŒã ã¡ã³ããŒå
šå¡ãçè§£ã§ããã³ãŒããæžãããšã®éèŠæ§ãåŠã³ãŸããã倿°åã颿°åã®åœåãã¬ããžããªå
ã§ã³ãŒãã®äžè²«æ§ãä¿ã€ããšãªã©å®åã§éèŠãªãã€ã³ããåŠã¶ããšãã§ããŸããã ã³ãŒãã®æ¡åŒµæ§ãæèãã å°æ¥çãªæ©èœè¿œå ã仿§å€æŽã«å¯Ÿå¿ããããã³ãŒãèšèšã«ã€ããŠåŠã³ãŸãããå°æ¥çã«ãåããšã³ããã€ã³ãã«æ°ãããã£ã«ã¿ãŒã远å ãããªã©ããæã«ãã³ãŒããæžãããããèããŸããã ãŸããèªèº«ãæžãéšåãæ¢åã®ãšã³ããã€ã³ãã®å®è£
ãšé¢ãã£ãŠãããã䜿ã颿°ã䌌ãŠããããããšãã«ãã³ãŒããåå²ãããããŸãšãããããããšã®éèŠæ§ãåŠã³ãŸããã AIã®æŽ»çš ã¡ã«ã«ãªã§ã¯ãAIã®æŽ»çšãç©æ¥µçã«é²ããããŠãããéçºã«ã¯Cursorãªã©ã®AIã³ãŒãã£ã³ã°ããŒã«ã䜿ãããšãã§ããŸããããã ãããã¿ããã«AIã«é Œãã®ã§ã¯ãªããç¥èããã£ãäžã§ãçæãããã§ãããçããäºæ³ããŠããå
¥åããããšã§ããã广çã«ããŒã«ã掻çšããããšã倧åã ãšåŠã³ãŸããã ã€ã³ã¿ãŒã³ãéããŠãä»ãŸã§è§Šããæ©äŒã®ãªãã£ãå€§èŠæš¡éçºãªãã§ã¯ã®ç¥èãæè¡ãå€ãåŠã¶ããšãã§ããŸãããç¹ã«ãåè¿°ã®ã³ãŒãã®å¯èªæ§ã®ç¹ã§ã¯ãã³ãŒãã®ã¿ãªãããPRãQAã·ãŒããäœæããéã«ããããŒã ã®äººãçè§£ãããããã¬ãã¥ãŒããããããã©ãããæèããŠæžãããšã®éèŠæ§ãåŠã³ãŸããã ãŸãã³ãŒãã¬ãã¥ãŒãéããŠãéçºã«å¿
èŠãªã³ãŒãã®æžãæ¹ãå
·äœçã«åŠã¶ããšãã§ããŸãããèªåã®å®è£
ããã¹ããã©ã¯ãã£ã¹ãã©ãããæ§ã
ãªèŠç¹ããè©äŸ¡ããŠããã ããŸããã ç¹ã«å°è±¡çã ã£ãã®ã¯ãåã«ãã®æžãæ¹ã®æ¹ãè¯ããšæããŠããã ãã ãã§ãªãããªããã®æžãæ¹ãæšå¥šãããã®ããšããçç±ãŸã§äžå¯§ã«èª¬æããŠããã ããããšã§ããäŸãã°ããšã©ãŒãã³ããªã³ã°ã®å®è£
ã§ã¯ããã èµ·ãããããšã©ãŒãåŠçããã ãã§ãªããé©åãªãã°åºåããŠãŒã¶ãŒãåããããããšã©ãŒã¡ãã»ãŒãžãèæ
®ããå¿
èŠãããããšãåŠã³ãŸããã 亀æµãéããåŠã³ ããŒã ã§ã¯å®æçã«å匷äŒãéå¬ãããŠãããããŒã ã«åœ¹ã«ç«ã¡ãããªæè¡ãç¥èŠãç©æ¥µçã«å
±æããæåããããŸãããé£ããå
容ãå€ãã£ãã§ãããCursorã®MCP serverã«ã€ããŠã®åã¯ç¹ã«è峿·±ãã£ãã§ãã ããŒã ã«ã¯å°æ¹ã«äœãã§ããã¡ã³ããŒãå€ãããŸããããæ®æ®µã¯Slackã§é話ãç¹ãã§ã³ãã¥ãã±ãŒã·ã§ã³ãåãã宿çã«åºç€Ÿæ¥ãèšããŠãªãã©ã€ã³ã§ã®äº€æµæ©äŒãäœã£ãããããŒã ãã«ãã£ã³ã°ã€ãã³ããéå¬ããããšãããŒã ã®ã³ãã¥ãã±ãŒã·ã§ã³ãç©æ¥µçã«åãããšãããŠããããšãå°è±¡çã§ããã å°ã£ãæã¯ãã€ã§ãçžè«ã«ä¹ã£ãŠããã ãããã¢ããã°ã©ãã³ã°ãç©æ¥µçã«ããŠãã ãããŸãããç¹ã«ã課é¡ãããæã«æåãè¶³åãæããã®ã§ã¯ãªããç§ã«ãšã£ãŠããåŠç¿æ©äŒã«ãªãããã«ãµããŒãããŠãã ãã£ãã®ããšãŠãå°è±¡çã§ããã ãŸããã¡ã³ã¿ãŒã©ã³ãã1on1ã§ã®ç€Ÿå¡ã®æ¹ã
ãšã®äº€æµãéããèªèº«ã®ãã£ãªã¢ã«ã€ããŠèãããšãŠãããæ©äŒã«ãªããŸãããæ°åå
¥ç€Ÿã®æ¹ã®ã話ãããä»ã®äŒç€Ÿãçµéšãããæ¹ã®ã話ãŸã§è²ã
ãªããã¯ã°ã©ãŠã³ãããæã¡ã®æ¹ãšã®äŒè©±ãéããŠèŠéãåºãããŸããããŸããããããã®å€§åŠç掻ã«é¢ããŠå
·äœçãªã¢ããã€ã¹ãããã ããæ®ã2幎åã®å€§åŠç掻ãã©ã®ããã«éããã®ãèããæ©äŒã«ãªããŸãããåå ããŠãã ãã£ã瀟å¡ã®æ¹ã
ã«æ¹ããŠæè¬ç³ãäžããŸãã çµããã« ä»åã®Build@Mercariãšã€ã³ã¿ãŒã³ã§ã®çµéšãéããéçºã«å¿
èŠãªå¹
åºãç¥èã身ã«ã€ããããšãã§ããŸããããŸããæè¡çãªé¢ä»¥å€ã§ãå€ãã®åŠã³ããããŸããããã®å幎éã§åŸãåŠã³ãç³§ã«ãäžæµã®ãšã³ãžãã¢ãç®æããŠãããã«åãã€ããŠããããã§ãã ãã®ããã°ã©ã æéäžãå€ãã®æ¹ã
ã«ãµããŒãããŠããã ãããããã§ããããŸã§æé·ããããšãã§ããŸãããBuild@Mercariã®ã¡ã³ã¿ãŒã®çããããã€ã³ã¿ãŒã³æéäžã«ã¡ã³ã¿ãŒãããŠãã ãã£ã @a-uki ãããã¯ãããšããCS ToolããŒã ã®çããã«æ¬åœã«æè¬ã®æ°æã¡ã§ãã£ã±ãã§ããããããšãããããŸããã â»ãã®äœéšèšã¯2025幎床ïŒä»å¹ŽåºŠïŒã®ããã°ã©ã å
容ã§ããæ¥å¹ŽåºŠä»¥éã®ããã°ã©ã ã«ãããŠã¯å
容ã倿Žã«ãªãå¯èœæ§ããããŸãã®ã§ããäºæ¿ãã ããã
ã¯ããã« 5æäžæ¬ãNATO Cooperativeâ¯Cyberâ¯Defenceâ¯Centreâ¯ofâ¯ExcellenceïŒCCDCOEïŒãäž»å¬ããäžçæå€§çŽã®ãµã€ããŒé²è¡æŒç¿ Lockedâ¯Shieldsâ¯2025 ãéå¬ãããŸãããä»å¹Žã¯ çŽ40â¯ãåœã»çŽâ¯4,000â¯åãåå ãã17â¯ã®å€åœç±ãã«ãŒããŒã ãåœå®¶ã¬ãã«ã®ICTã€ã³ãã©ãé²åŸ¡ããã·ããªãªã«æã¿ãŸããã æšå¹Žã«åŒãç¶ããã¡ã«ã«ãªã¯ä»å¹ŽãLocked Shieldsã«åå ããŸãããä»åã¯ã»ãã¥ãªãã£ããŒã ãã3人ã®ã¡ã³ããŒãåå ããŸãããæ¬èšäºã§ã¯åœéå
±åæŒç¿ã®æåç·ã§åŸãããç¥èŠãå
±æããŸãã ããŒã æ§æãšåå æŠèŠ ä»å次ã®3åãåå ããŸããã Yutoâ¯Iso:äž»ã«æ¥æ¬ã®é²è¡å¯Ÿè±¡ã®å
šæ
å ±ã·ã¹ãã ã®ä¿å
šããã³éèŠã·ã¹ãã ã®äŸµå®³é²æ¢ãæ
åœããŸããã Hirokiâ¯Akamatsu: ãã©ãããã©ãŒã ããã³Webã¢ããªã±ãŒã·ã§ã³ã®è匱æ§ãã³ãã£ã³ã°ã»ä¿®æ£ãæ
åœããŸããã Sanaâ¯Okumura: 䟵害å
åã®åæã蚌跡ã®ç¢ºèªã»å ±åãæ
åœããŸããã ã¡ã«ã«ãªã®ã¡ã³ããŒã¯æ»æã®å
åã®æ€ç¥ã»èšŒè·¡ç¢ºèªããããŠè匱æ§ã®ç¹å®ã»ä¿®æ£ãè¡ããŸããã åãçµã¿å
容 Lockedâ¯Shieldsã§ã¯é²è¡å¯Ÿè±¡ã®å€æ°ã®æ
å ±ã·ã¹ãã ãé«åºŠãªãµã€ããŒæ»æãåããŸããä¿è·å¯Ÿè±¡ã®å
šãŠã®æ
å ±ã·ã¹ãã ãèªåçã«èª¿æ»ããä»çµã¿ãIsoãéçºããåã·ã¹ãã ã®ä¿è·ã»åŸ©æ§ã«ãããåŽåã倧ãã軜æžãããŸãããããã«ãããè匱æ§ã®äºåç¹å®ã»æ»æãåããã·ã¹ãã ã®è¿
éãªå埩ã«è²¢ç®ããŸããã ãŸããLocked Shieldsã§ã¯AIæ©èœãå«ãæ§ã
ãªãµãŒãã¹ã»èªèšŒåºç€ã»ãããã¯ãŒã¯ããããŠããããéçšããããã®ãã©ãããã©ãŒã ãååšããŠããŸãããAIãWebã¢ããªã±ãŒã·ã§ã³ããã³ã³ã³ããæè¡ã«å¯Ÿå¿ã§ãã人æãšããŠAkamatsuãè€æ°ã®Webã¢ããªã±ãŒã·ã§ã³ã®å
ç¢åã»ã³ã³ããã®å®å
šãªãããã€æ§ç¯ãªã©ãæ¯æŽããŸããã ãããŠãæ»æè
ã¯æ§ã
ãªæ»æãã¿ãŒã³ã§æ
å ±ã·ã¹ãã ãžã®äŸµå®³ã詊ã¿ãŸããOkumuraã¯è€æ°ã®èšŒè·¡ã確èªããããšã§æ£ç¢ºã«æ»æã®åœ±é¿ç¯å²ãç¹å®ã»å ±åããæ»æã®æ€åºããå°ã蟌ãã«è²¢ç®ããŸããã åŸãããåŠã³ãšææ æŒç¿å
ã§ã¯ãããããèªèº«ã®å°éé åãæŽ»ãããªããåãçµã¿ãŸããããLocked Shieldsã§ã¯OTïŒOperational TechnologyïŒç³»ã®ã·ã¹ãã ãªã©çµéšã®ãªãé åã®æ»æã«çŽé¢ããããšããããåŠã³ã€ã€å€æ°ã®æ»æããã·ã¹ãã ãé²è¡ããŸããã ãŸãæè¡é¢ä»¥å€ã§ããæ§ã
ãªå°éåéã®æŒç¿åå è
ãšãšãã«ãããããã®ç¥èãçµéšã掻ãããªããããµã€ããŒã»ãã¥ãªãã£é²è¡ã«ãããåæ»ãªã³ãã¥ãã±ãŒã·ã§ã³ãšååé¢ä¿ãç¯ãæ¹æ³ãå®è·µçã«åŠã¶ããšãã§ããŸããã ãããã« Locked Shieldsã¯ä»ã«é¡ãèŠãªãã»ã©ã®å€§èŠæš¡ãªæŒç¿ã§ãããä»åã®åå ãã¡ã«ã«ãªã®ã¡ã³ããŒã«ãšã£ãŠéåžžã«è²ŽéãªçµéšãšãªããŸãããåã¡ã³ããŒãããããã®å°éæ§ãæå€§éã«çºæ®ããåã·ã¹ãã ãžã®æè¡çãªæ¯æŽã暪æçã«è¡ããŸãããèªååã«ããã·ã¹ãã 調æ»ã»ä¿å
šããããŠè€éãªç°å¢äžã§ã®è¿
éãªè匱æ§å¯Ÿå¿ã圱é¿ç¯å²ç¹å®ãšãã£ãå®è·µçãªã¹ãã«ã磚ããšãšãã«ãæ°ããªæ»æææ³ãé²åŸ¡æŠç¥ã«ã€ããŠãå€ãã®åŠã³ãåŸãŸããã ç¹ã«ãåœå¢ãè¶ãã倿§ãªå°éå®¶ãšã®é£æºãéããŠããµã€ããŒé²è¡ã«ãããã³ãã¥ãã±ãŒã·ã§ã³ãšååäœå¶ã®éèŠæ§ãåèªèããŸãããå»äžå»ãšå€åããç¶æ³ã®äžã§ãè¿
éãã€æ£ç¢ºã«æ
å ±ãå
±æããå
±éã®ç®æšã«åãã£ãŠååããããšã®é£ãããšããããä¹ãè¶ããéã®éææãèã§æããããšãã§ããŸããã æ¬æŒç¿ã§åŸãç¥èŠãçµéšã¯ãã¡ã«ã«ãªã®ãµãŒãã¹å
šäœã®ã»ãã¥ãªãã£åŒ·åãã€ã³ã·ãã³ã察å¿èœåã®åäžããããŠå°æ¥ã®ãµã€ããŒè
åšãžã®åãã«å€§ããè²¢ç®ãããã®ãšç¢ºä¿¡ããŠããŸããã¡ã«ã«ãªã¯ä»åŸãããã®ãããªåœéçãªåãçµã¿ãžç©æ¥µçã«åå ãããµã€ããŒã»ãã¥ãªãã£æè¡ã®åäžãšãå®å
šã»å®å¿ãªãµãŒãã¹æäŸã«åªããŠãŸãããŸãã åºå
ž: https://x.com/ModJapan_jp/status/1920770496632627647
ããã«ã¡ã¯ãSREããŒã ã® @foostan ã§ãã åŒç€Ÿã¯2025幎7æ11~12æ¥ã«éå¬ããã SRE NEXT 2025 ã«ãPLATINUMã¹ãã³ãµãŒãšããŠåè³ããããŒã¹åºå±ããã³ã»ãã·ã§ã³çºè¡šãè¡ããŸãããæ¬èšäºã§ã¯åœæ¥ã®æ§åãšã¢ã³ã±ãŒãã®åéçµæãã玹ä»ããŸãã ããŒã¹åºå± åŒç€ŸãšããŠã¯ä¹
ãã¶ãã®ããŒã¹åºå±ã§ãããç§å人ãšããŠã¯åããŠã®çµéšãšãªããŸããã2æ¥ã«æž¡ã200人以äžã®æ¥èšªè
ã«ãè¶ãããã ããSREã«é¢ããã話ããããããããŠããã ããŸãããããããšãããããŸããããã®ããã«å
±éã®è©±é¡ã§çãäžãããæ©äŒã¯éåžžã«è²Žéã§ããè¯ãçµéšãšãªããŸããããªãæã
ã®ããŒã¹ã§ã¯èªç±èšè¿°åœ¢åŒã§ä»¥äžã®2çš®é¡ã®ã¢ã³ã±ãŒããè¡ããŸããã SREããã£ãŠããŠè¯ãã£ãç¬éã¯ïŒ SREã«é¢ããæ¥åã§AIã«ä»»ãããããšã¯äœã§ããïŒ è©³çŽ°ã¯åŸè¿°ããŸãããæšä»ã®AI婿޻çšã®çãäžããã¯SREã®é åã§ã倧ããªåœ±é¿ãåããŠãããåœæ¥ã¯AIã«é¢ãã話é¡ãå°œããããšã¯ãããŸããã§ããã æ¥èšªè
ãã¢ã³ã±ãŒãã«çããŠããã ããæ¹åãã«ããã«ãã£ã®é
åžãè¡ã£ãŠããŸãããç¹ã«ããŽå
¥ãã®ããŒãã£ããã¯ä»åã®ã€ãã³ãåãã«çšæãããã®ã§ãããé«è©ãããã ããŠäœããã§ãããä»åŸã®ã€ãã³ãã§ãæ©äŒãããã°é
åžããããšæããŸãã®ã§ãã®éã¯åãåã£ãŠããã ãããšå¹žãã§ãã ã»ãã·ã§ã³çºè¡š åŒç€Ÿã® yakenji ããããè€éãªã·ã¹ãã ã«ãããUser Journey SLOã®å°å
¥ããçºè¡šãããŠããã ããŸãããæã
ãã©ã®ãããªçµç·¯ã§User Journey SLOãå°å
¥ãããããã©ã®ããã«éçšããŠããã®ãããŸãä»åŸã®å±æã«ã€ããŠå
±æããŠãããŸãã ãªãæ¬çºè¡šã®å
容ã¯2024幎æ«ã®ããã° https://engineering.mercari.com/blog/entry/20241204-keeping-user-journey-slos-up-to-date-with-e2e-testing-in-a-microservices-architecture/ ã«ãèšèŒããããŸãã®ã§ããããããã°ãã¡ããã芧ã«ãªã£ãŠããã ãããšå¹žãã§ãã ã¢ã³ã«ã³ãã¡ã¬ã³ã¹ãžã®åå åœæ¥ã®ã³ã³ãã³ãã¯ã©ããè峿·±ãããŸããŸãªæ¹ã®çºè¡šãèããããåããŒã¹ãå·¡ã£ãŠã話ã䌺ãããšã§SREããŒã ãšããŠä»åŸã©ãããŠãããèãããããŸãã©ã®ãããªæè¡ã®é²æ©ãããã®ãèããããšéåžžã«æ¥œããã£ãã§ããç¹ã«1æ¥ç®ã®æåŸã«è¡ãããã¢ã³ã«ã³ãã¡ã¬ã³ã¹ã§ã¯ãå
·äœçãªããŒãããšã«ã°ã«ãŒãã«åãããŠãã£ã¹ã«ãã·ã§ã³ãè¡ãããšã§ãå瀟ã®ãããŸã§ã®çµéšãæããç¥ãè¯ãæ©äŒãšãªããŸããã ç§ã¯ãSREãšãã®çµç¹é¡åãã®ã°ã«ãŒãã«åå ãããŠããã ããŸãããæ®æ®µã¯ãšã³ãžãã¢ãªã³ã°ãããŒãžã£ãŒãšããŠããŒã ãçµç¹ç·šæã«ã€ããŠèããæ©äŒããããããSREãçµç¹ã«ã©ãçµã¿èŸŒãŸããã¹ãããéå»ã®äºäŸãçŸåšæ±ããŠããåé¡ãªã©ãèªåã®èŠç¹ããã§ã¯èŠããªãã£ãæèŠãç¥ãããšãã§ããŸãããçµç¹ã®èŠæš¡ããã§ãŒãºã眮ãããŠããç¶æ³ã«å¿ããŠSREã®çµç¹ãããããã«ããã¹ãå§¿ãååšããããšãæ¹ããŠèªèããŸããã ã¢ã³ã±ãŒãçµæ æã
ã®ããŒã¹ã§è¡ã£ãã¢ã³ã±ãŒãçµæããŸãšããŸããã®ã§ãåç
§ããã ããã°å¹žãã§ããåçµæãåããããªå
容ã®ã°ã«ãŒãã«åé¡ãããããã®å²åãåºããŠããŸãããªãèšèŒããŠããå
容ã¯å
¬éçšã«æç« ã倿ŽããŠãããŸãã®ã§ãäºæ¿ãã ããã SREããã£ãŠããŠè¯ãã£ãç¬éã¯ïŒ åèšã§53ä»¶ã®æèŠãããã ããŸããã ãã©ãã«ã·ã¥ãŒãã£ã³ã°: 24.6% å€§èŠæš¡ã¢ã¯ã»ã¹ãšãªãã€ãã³ããç¡äºä¹ãåã£ãæãé害ãè¿
éã«è§£æ¶ã§ããæã®éææãæãå€ãæããããŸãããé£ããé害ãããã«ããã¯ã®ç¹å®ã»è§£æ¶ãåå äžæã®ãã°ä¿®æ£ãªã©ã®æè¡çãªèª²é¡ã解決ããæã®åã³ã倧ããããã§ãããŸããã€ã³ã·ãã³ã察å¿ãããŒã®æ¹åãéçºããŒã ã®æèåäžãªã©ãçµç¹å
šäœã®æé·ã宿ã§ããç¬éãè¯ãã£ãç¹ãšããŠæããããŠããŸãã èªåå/ãã€ã«åæž: 21.1% ã€ã³ãã©ãéçšã®èªååã«ãã£ãŠæåäœæ¥ãäžèŠã«ãªã£ãããé«éã«ãããã€ã§ããããã«ãªã£ãããšã«éææãæãããšãã声ãå€ãèŠãããŸãããã³ãŒãã«ããã€ã³ãã©ç®¡çããªãŒãã¹ã±ãŒãªã³ã°ã®å°å
¥ããªãªãŒã¹ãããŒã®æ¹åãªã©ãéããŠãçç£æ§åäžãèªåŸçãªã·ã¹ãã æ§ç¯ãå®çŸã§ããç¹ãè¯ãã£ãããšãšããŠæããããŠããŸãã éçºäœéšåäž: 14.0% éçºè
ãããæ¥œã«ãªã£ãããšãã£ã声ããã£ãæããçç£æ§ã®åäžã宿ã§ããæã«ãããããæãããšããæèŠãå€ãå¯ããããŸãããéçºããŒã å
šäœã®ãã£ãã·ãã£ãé«ããåãçµã¿ããç¶ç¶çã«æ¥œããåããç°å¢ã¥ãããã§ããŠããããšããè¯ãã£ãç¹ãšããŠæããããŠããŸãã ããžãã¹è²¢ç®: 12.3% ã³ã¹ãåæžããªãœãŒã¹ã®æé©åã«ãã£ãŠãäºæ¥ãžã®å
·äœçãªè²¢ç®ã宿ã§ãããšãã声ãæããããŸããããŸããããžãã¹ãžã®é¢å¿ã»æèã®é«ãŸããªã©ãæè¡é¢ã ãã§ãªãäºæ¥èŠç¹ã§ã®è¡åãææãè©äŸ¡ããåããåºãã£ãŠããããšãå°è±¡çã§ãã ããŒã¿æŽ»çš: 10.5% ãã¬ãŒã¹ãã¡ããªã¯ã¹ã®å°å
¥ã«ãããã·ã¹ãã ã®ç¶æ
ãå¯èŠåã»å®éåã§ããããã«ãªã£ãããšã倧ããªææãšããŠæããããŸããããªãã¶ãŒãããªãã£ã®åŒ·åãSLI/SLOã®å°å
¥ãªã©ãéããŠãèšæž¬ãçµ±èšçãªå€æãè¡ãæåãåºãããããŒã¿ã«åºã¥ããæ¹åãæææ±ºå®ãå¯èœãšãªã£ãŠããŠããããã§ãã SREã«é¢ããæ¥åã§AIã«ä»»ãããããšã¯äœã§ããïŒ åèšã§100ä»¶ã®æèŠãããã ããŸããã ã€ã³ã·ãã³ãã¬ã¹ãã³ã¹: 22.2% ã€ã³ã·ãã³ãã®äžæ¬¡å¯Ÿå¿ããšã©ãŒèª¿æ»ã®èªååãAIã«ä»»ããããšãã声ãå€ãèŠãããŸããããŸããã°ã®åéã»èŠçŽãéå»ã®ãã¹ãã¢ãŒãã ãšã®é¡äŒŒã±ãŒã¹ã®æ€çŽ¢ãåå察å¿ã®å€ææ¯æŽãã€ã³ã·ãã³ãã¬ããŒãã®äžæžãäœæãšãã£ãæ¥åãªã©ã人æã«ããäœæ¥ã®è² è·ã®è»œæžã«æåŸ
ãå¯ããããŠããŸãã åæ/äºæž¬: 16.0% é害ããšã©ãŒã®åå 調æ»ã圱é¿ç¯å²ã®ææ¡ãåçºé²æ¢çã®ææ¡ãšãã£ãåæã»æ¹åãã§ãŒãºã«ãããŠAIã®æ¯æŽãæåŸ
ãããŠããããã§ãããŸããã¢ããããŒããæ§æå€æŽã«äŒŽã圱é¿èª¿æ»ãããã«ã¯äºæ¥èšç»ãBillingããŒã¿ããã®å°æ¥äºæž¬ãšãã£ãæ¥åã«ãAIãæŽ»çšããããšããããŒãºãèŠãããŸããã ã¢ããããŒã: 11.1% ã·ã¹ãã ãã³ãŒãã®ä¿å®ãæ¹åã«é¢ããŠAIã®æŽ»çšãæã声ãå€ãæããããŸãããç¹ã«EOL察å¿ããã¢ããããŒãäœæ¥ã®èªååã»å¹çåã«å¯ŸããæåŸ
ãé«ãŸã£ãŠããŸãã ããã¥ã¡ã³ããŒã·ã§ã³: 10.5% ãã¹ãã¢ãŒãã ãé害ã¬ããŒããªã©ãå®åçãã€æ
å ±æŽçãèŠããã¿ã¹ã¯ã«å¯ŸããŠAIã®æ¯æŽãæ±ãã声ãæããããŸããããŸãã瀟å
åãã®èª¬æè³æãããã·ã¥ããŒãã®èªåçæãããã¥ã¡ã³ãã®æ€çŽ¢ãèŠçŽãšãã£ãæ
å ±ã®å¯èŠåã»åå©çšæ§ã®åäžã«é¢ããŠãAIãžã®æåŸ
ãå¯ããããŠããŸãã ã¢ãã¿ãªã³ã°/ã¢ã©ãŒã: 9.9% ã¢ã©ãŒãã®ããªã¢ãŒãžãåå 調æ»ãåªå
床ã®å€æããªãªãŒã¹åŸã®èªåã¢ãã¿ãªã³ã°ãå€éšãµãŒãã¹ã®é害éå ±ã®ææ¡ãªã©ãAIã«ãããªã¢ã«ã¿ã€ã æ§ãšç¶²çŸ
æ§ãæåŸ
ãããŠããŸãã倿ã察å¿ãããè¿
éãã€ç¢ºå®ã«ããã·ã¹ãã ã®å®å®æ§ãé«ããããã®åºç€ãæŽããããããšãæãŸããŠããããã§ãã ãããã« æ¹ããŠæ¥å ŽããŠãã ãã£ãçæ§ããŸãåŒç€Ÿã®ããŒã¹ã«ç«ã¡å¯ã£ãŠããã ããçæ§ã«æè¬ãç³ãäžããŸãããŸãæ¬ã€ãã³ããéå¬ããéå¶ããŠããã ããçæ§ãæ¬åœã«ããããšãããããŸãããåŒç€ŸãšããŠãä»åŸã®çºå±ã«è²¢ç®ããŠãããŸãã®ã§ãŸãæ¥å¹Žããããããé¡ãããããŸãã ããŸã: ããã«ãã£ãŒããŒãã£ããã®çºæ³šæ¹æ³ ä»åäœæããããã«ãã£ãŒããŒãã£ããã«ã€ããŠã¯ã¯ãªãªãã£ã®é«ããã®ã補äœããŠããã ããŸãããéèŠã¯äžæã§ãããããã«ãã£ãŒããŒãã£ããã®çºæ³šã«ã€ããŠã¯çŽè¿ã§ã¯ããŸãæ
å ±ããªãããã§ããã®ã§ãã¡ãã«ãŸãšããŠãããŸãã ä»åçºæ³šããã®ã¯YUZU Keycapsãã( https://yuzukeycaps.com/ )ã§ãããã¡ãã§ã¯æè¯å°å·ãšåŒã°ããæ¹æ³ãå©çšããŠãããç±ãšå§åã«ãã£ãŠæµžéãããŠè²ãã€ããããèä¹
æ§ãé«ãå¥ãããããšããããŸããããã®æ¹æ³ã¯å¢çãæ»²ããŠããŸãããšãããã®ã§ãããšãŠãããããªä»äžããã§ããã çºæ³šã¯ä»¥äžã®ç»é¢ããè¡ããŸãã ãŸãã¯ã¬ã€ã¢ãŠããéžã³ãŸããããã«ãã£ãŒããŒãã£ããçšã®ã¬ã€ã¢ãŠãã¯çšæãããŠããªãã®ã§ãé©åœãªãã®ãéžã³ã«ã¹ã¿ãã€ãºããŠãããŸãã1Uãµã€ãºã®ãã®ãäžè¬çãªã®ã§Ortholinearã®ãã®ãéžã¶ãšããšã®äœæ¥ãå€å°æ¥œã«ãªããŸãã ãOptionsã ããã¬ã€ã¢ãŠããã«ã¹ã¿ãã€ãºã§ããŸããä»åã¯ãã¹ãŠåãããŒã«ãããã®ã§ ãAdd/remove keysã ãéžæããŠè©³çްã®ç·šéç»é¢ã«ç§»ããŸãã ããã§ã¯ãã¹ãŠã®ããŒãèªç±ã«éžæããããšãã§ããŸããåè¡ R1 ~ R4 ãèªç±ã«éžã¹ãŸããããã«ãã£ãŒããŒãã£ããã¯EscãšããŠã€ããããšãæ³å®ãããããR1ã§ããããšãå€ãã§ãããªãä»åé
åžããã¡ã«ã«ãªã®ããã«ãã£ãŒããŒãã£ããã¯Mã«ã€ããããšãæ³å®ããŠR4ã«ããŸããã 説æçšã«äœæããR1 10×5ã®ãã®ããã¡ãã«çœ®ããŠãããŸãã https://yuzukeycaps.com/keyboards/121dfa73-a55e-492c-870a-2b94e490d040 次ã«ããŒãã£ããã®ãã³ãã¬ãŒããäœæããŠãããŸããã²ãšã€ã²ãšã€èšå®ããããšãã§ããŸããããã³ãã¬ãŒããäœæããŠãããšåŸã®äœæ¥ã楜ã«ãªããŸãã åŸã§ããŽãé
眮ã§ããããã« ICON ã¿ã€ãã§ãã³ãã¬ãŒããäœæããŸãããªããããã©ã«ãã®ã¢ã€ã³ã³ãšããŠã¢ããããŒãããç»åãéžæããããšã¯ã§ããªãããã§ãããªã®ã§ããã§ã¯é©åœãªãã®ãéžæããŠãããŸãã æ¬¡ã«ããŒãéžæããŠã詳现ã®ç·šéç»é¢ãéããŸãããSelect iconããéžæãããšã¢ã€ã³ã³ãéžæããç»é¢ã«ãªãã®ã§ã»ã¬ã¯ããã©ãŒã ã®å³åŽã®ã¢ããããŒããã¿ã³ããå©çšããããŽãã¡ã€ã«ãéžæããŸããç»åã®äœææ¹æ³ã«ã€ããŠã¯äžèšã«èª¬æããããŸããåºæ¬çã«ã¯2è²ã®ã¿ãã䜿ããªãã®ã§æ³šæãå¿
èŠã§ã(éžã¹ãã«ã©ãŒã¯è±å¯ã«ãããŸããèªåã§èªç±ã«è²ãäœãããšãã§ããŸãã)ã https://fkcaps.notion.site/Custom-image-upload-e5e214dc80c047ada20d97d3418eb2de ãªããã®ç»é¢ããããŽã®äœçœ®ããµã€ãºã®åŸ®èª¿æŽã¯ã§ããŸãããåãäœæ¥ããã¹ãŠã®ããŒã«å¯ŸããŠããããšã«ãªãã®ã§ãããã§ã¯äœãããã«æžãããã«ãã³ãã¬ãŒãã調æŽããããšãããããããŸãã ããšã¯ã²ããããã®ç¹°ãè¿ãã§ããã¢ããããŒãããããŒã¿ã¯My Iconsããéžæã§ããããã«ãªã£ãŠããã®ã§2åç®ä»¥éã¯å€å°ã¯æ¥œã§ãããªãç§ãçºæ³šãããšãã¯jsonãã¡ã€ã«ã§å
¥åºåããããšãã§ããã®ã§ãjsonãã¡ã€ã«ãç·šéããŠãã®ç¹°ãè¿ãäœæ¥ããã£ãšæ¥œã«ããããšã¯ã§ããŸãããããã®èšäºã®å·ç段éã§ã¯ãããã§ããªããªã£ãŠããŸããã ããŒã¿ã宿ããããADD TO CARTãã«é²ã¿çºæ³šããŠå®äºã§ããããŒã¿ãã§ãã¯åŸã«è£œé ãããæå
ã«å±ãã®ã«ã¯2~3é±éã»ã©ããããŸãã®ã§äœè£ãæã£ãŠçºæ³šããããšãããããããŸãã 以äžã§ããããã«ãã£ãŒããŒãã£ããäœæã®åèã«ãªãã°å¹žãã§ãã
ããã«ã¡ã¯ãã¡ã«ãã€QAããŒã ã®@uni0110ã§ãã ç§ã¯6æã«ã¹ã³ããã©ã³ãã®ãšãã£ã³ãã©ã§éå¬ããã EuroSTARã«ã³ãã¡ã¬ã³ã¹ ã«åå ããŸãããEuroSTARã¯äžççã«æåãªQAã«ã³ãã¡ã¬ã³ã¹ã®äžã€ã§ãä»å¹Žã¯4æ¥éã«ããã60以äžã®ãã¥ãŒããªã¢ã«ãã»ãã·ã§ã³ãããŒããŒããè¡ãããŸãããçŽ350瀟ãã1000人以äžãåå ããå€§èŠæš¡ãªã«ã³ãã¡ã¬ã³ã¹ã§ãã ããŒãã¯AI on Trial ä»å¹Žã®ã«ã³ãã¡ã¬ã³ã¹ã§æã泚ç®ãããããŒãã¯AIã§ãããåå è
ãšã®äŒè©±ã§ãããããªãã®äŒç€Ÿã§ã¯AIãã©ã®ããã«æŽ»çšããŠããŸããïŒããšãã質åãæãå€ããè°è«ãçãäžãããŸããã åœæãã¡ã«ãã€QAããŒã ã¯èªååã«AIãæŽ»çšããŠããã以å€ã®å·¥çšã§ã¯ããŸããŸãªããŒã«ã詊ããŠããæ®µéã§ããããã®ãããç§èªèº«ãAIã«é¢ãããããã¯ã«æãæåŸ
ããŠããŸããã å
šã»ãã·ã§ã³ã®åå以äžãAIé¢é£ã®ãããã¯ã§ãå
容ã¯ããããç°ãªããŸããããã©ã®ã»ãã·ã§ã³ãå
±éããŠåŒ·èª¿ããŠããã®ã¯ãAIãããããå¹çæ§ãå©äŸ¿æ§ããããAIã®èª€çšãäžç¢ºå®æ§ã«å¯Ÿããæ³šæãã§ããã忥ã®ãã¥ãŒããªã¢ã«ã§ãããå®éã«äœéšã§ããã®ã§ãç°¡åã«å
±æããããšæããŸãã Test by Human vs. by AI 忥ã®ãã¥ãŒããªã¢ã«ã§ã¯ã人éãšAIãããããåãå
容ã®ãã¹ãã宿œããŸããããã®çµæã人éã«ãããã¹ãã§ã¯ã·ã¹ãã ã«æœåšãããã°ãçºèŠãããŸããããAIãäœæã»å®è¡ãããã¹ãã±ãŒã¹ã§ã¯ãã°ãèŠã€ããããšãã§ããŸããã§ããã ãã®éãã¯ã人éã ããã§ããæ¹å€çãªæèã§ãã人ããã¹ãã±ãŒã¹ãäœæããéã«ã¯ããŸã仿§ãææ¡ãããã©ã®ãããªæ¹ä¿®ãè¡ãããããããç¹å®ã®ã±ãŒã¹ã§ã¯ã©ããªããããšãã£ãçåããã£ãããã¥ãŒã¿ãŒã«è³ªåãã解決ããŸããããã®ããã»ã¹ãéããŠãäžèŠãªã±ãŒã¹ãåé€ããå¿
èŠãªã±ãŒã¹ã远å ããããšã§ããã¹ãã±ãŒã¹ã宿ãããŸããã ããããAIã®å Žåã¯ãã©ã®AIããŒã«ã䜿çšããŠãå
¥åãããæç€ºã«åŸã£ãŠãã¹ãã±ãŒã¹ãäœæããã ãã§ããã°ãçºèŠããã±ãŒã¹ã¯äœæã§ããŸããã§ããã ãã®ããšãããåªããQAãšã³ãžãã¢ã«ãªãããã«ã¯ãã¯ãªãã£ã«ã«ã·ã³ãã³ã°ã«åºã¥ããç©æ¥µçãªã³ãã¥ãã±ãŒã·ã§ã³èœåãå¿
èŠã§ãããšçæããŸããã QAãèŠãAI ãã®ãã¥ãŒããªã¢ã«ä»¥å€ã«ãAIãæã£ãŠãã以äžã®åŒ±ç¹ã®ãããAIã䜿ãæã¯ååæ°ãã€ããªããšè¡ããªããšããå
容ã®ã»ãã·ã§ã³ãå€ãã£ãã§ãã ãã©ã€ãã·ãŒïŒã»ãã¥ãªã㣠ãã€ã¢ã¹ ãã«ã·ããŒã·ã§ã³ äžæ
£ããªäººã«ããèª€çš é床ãªèªåå ãããŸã§ã®å
容ã ãšãã«ã³ãã¡ã¬ã³ã¹å
šäœãAIã«å¯ŸããŠæ¹å€çãªèŠæ¹ãããŠããããã«æããããããããŸããããã©ã®ã»ãã·ã§ã³ãAIãäœæ¥ã«åœ¹ç«ã€ããŒã«ã§ããããšãåæãšããŠãããããAnti-AIçãªé°å²æ°ã§ã¯ãããŸããã§ããã ãã ãèŠæå¿ãäœåºŠãäžããçç±ã¯ãç§éã®ããŒã«ãQAã ããã§ããQAã¯ä»ã®ãšã³ãžãã¢ããŒã«ãšã¯ç°ãªããåé¡ããªã¹ã¯ãçºèŠãã圹å²ãæ
ã£ãŠããŸãããã®ãããAIã«å¯ŸããŠãå³ããèŠæå¿ãæããªããã°ãå質ãæãªãããå¯èœæ§ãããããã§ãã çµããã« AIã«é¢ãããã¹ããã©ã¯ãã£ã¹ãæåŸ
ããŠåå ããã«ã³ãã¡ã¬ã³ã¹ã§ããããæåŸã«ã¯èªåã¯è¯ãQAãšã³ãžãã¢ãªã®ãããã£ãšã§ããããšã¯ãªããããšãã£ã課é¡ã°ããæã¡åž°ãããšã«ãªããŸããããŸããQAãšã³ãžãã¢ãšããŠAIã«è² ããªãç§ã ãã®äŸ¡å€ã«ã€ããŠèãç¶ããŠããŸãã ããããããŸããŸãªå Žæããåå ãã倿§ãªQAãšã³ãžãã¢ãšè©±ãäžã§ãçãåãæ©ã¿ãæ±ããŠããããšãåãããè¯ãåºæ¿ãåããŸããã ç¹ã«AIã«ã€ããŠã¯ãåãªã䟿å©ãªããŒã«ã§ãããsilver bulletã§ã¯ãªãããšã念é ã«çœ®ããŠæŽ»çšããŠãããããšæ¹ããŠæããŸããã
Search Infra Teamã®mrkm4ntrã§ãã ç»åæ€çŽ¢ã«Elasticsearchã®ãã¯ãã«æ€çŽ¢(kNNæ€çŽ¢)ãæŽ»çšããŠããŸããããããåŸæ¥ã®ããŒã¯ãŒãæ€çŽ¢ãšæ¯èŒããŠãåçã®ãªãœãŒã¹ã§åŠçã§ããQPSïŒQueries Per SecondïŒã倧å¹
ã«äœããšãã課é¡ããããŸãããããã§ãElasticsearch 8ãåºã«ãkNNæ€çŽ¢ã®ããã©ãŒãã³ã¹ãã©ããŸã§æ¹åã§ããã®ãã調æ»ããŸããã kNNæ€çŽ¢ã®æ§æãšèª²é¡ ä»åã®æ€èšŒã§äœ¿çšããkNNæ€çŽ¢ã®ã¯ãšãªæ§æã¯ä»¥äžã®éãã§ãã { "size": 100, "query": { "knn": { "image_embedding": { "vector": [ 0.1, 0.2, ... (128次å
ã®ãã¯ãã«) ], "k": 100, "num_candidates": 100, "filter": { "term": { "status": "on_sale" } } } } } } ãã®ã¯ãšãªã¯ããstatusããã£ãŒã«ãããon_saleãã«äžèŽããããã¥ã¡ã³ãã®äžãããäžãããããã¯ãã«ïŒimage_embeddingïŒã«é¡äŒŒããäžäœ100ä»¶ã®ããã¥ã¡ã³ããæ€çŽ¢ãããã®ã§ãããã¯ãã«ã®æ¬¡å
æ°ã¯128ã§ãã æ€èšŒåœåã¯Elasticsearch 8.12.1ã䜿çšããŠãããasync-profilerãçšããŠCPUãããã¡ã€ã«ãååŸããçµæã以äžã®ç®æãããã«ããã¯ãšãªã£ãŠããããšã倿ããŸããã ç¹ã«ç®ç«ã€ã®ã¯ãèµ€æ ã§å²ãŸãã jint_disjoint_arraycopy ãš jlong_disjoint_arraycopy ã§ãããããã®ã¡ãœããã¯ã OffHeapQuantizedByteVectorValues.vectorValue ããåŒã³åºãããŠãããJVMã®ããŒãå€ïŒã€ãŸããã¡ã€ã«ã·ã¹ãã ãã£ãã·ã¥äžïŒã«æ ŒçŽãããŠãããã¯ãã«ããŒã¿ãJVMã®ããŒãå
ã«ã³ããŒããåŠçãè¡ã£ãŠããŸãã Luceneã§ã¯é«éãªkNNæ€çŽ¢ãå®çŸããããã«Panama Vector APIãæŽ»çšããŠããŸãããã®APIã¯ãã¯ãã«èšç®ã§ããã»ããµã®SIMDåœä»€ïŒAVXåœä»€ïŒã䜿çšããæŒç®å¹çãåäžããããã®ã§ãããããããã¯ã¿ãŒããŒã¿ãäžåºŠJVMããŒãå
ã«ã³ããŒããŠããPanama Vector APIã«æž¡ãç¡é§ãçºçããŠãããããããã©ãŒãã³ã¹ã倧ããå¶çŽãããŠããŸãã ãã®ããã«ããã¯ã軜æžããå¯èœæ§ãããä¿®æ£ãLuceneã«æœãããŠããããšãåãããŸãããå
·äœçã«ã¯https://github.com/apache/lucene/pull/13339 ã®å€æŽã§ãJVMããŒãå€ã¡ã¢ãªããçŽæ¥Panama Vector APIã«æž¡ãå®è£
ã«æ¹åãããŠããŸãã Elasticsearch 8.17.1ãžã®ã¢ããããŒããšããã©ãŒãã³ã¹ã®å€å äžèšã®æ¹åãæ¢ã«å«ãŸããElasticsearch 8.17.1ã«ã¢ããããŒãããããã©ãŒãã³ã¹ãæ€èšŒããŸããã æ€èšŒç°å¢ Elasticsearch Version: 8.17.1 k: 100 num_candidates: 100 ãã¯ãã«ã®æ¬¡å
æ°: 128 ãªã¢ã«ã¿ã€ã ãªããã¥ã¡ã³ãã®è¿œå /æŽæ°/åé€ ãã£ã«ã¿ãªã³ã°ã®æç¡ãšåºŠåããããã©ãŒãã³ã¹ã«äžãã圱é¿ãè©äŸ¡ããããã以äžã®3ã€ã®ã±ãŒã¹ã§åäžã®ã¹ããã¯ã§æããQPSãããã©ãŒãã³ã¹ãšããŠèšæž¬ããŸããã ãã£ã«ã¿ãªã: ãã£ã«ã¿ãªã³ã°ãªã ç·©ããã£ã«ã¿ïŒloose filterïŒ: çŽ50%ã®ããã¥ã¡ã³ãããã£ã«ã¿æ¡ä»¶ã«äžèŽ çµã蟌ã¿ãã£ã«ã¿ïŒselective filterïŒ: çŽ10%ã®ããã¥ã¡ã³ãããã£ã«ã¿æ¡ä»¶ã«äžèŽ ãã£ã«ã¿ãªãã®ã±ãŒã¹ã«ãããŠãasync-profilerã§CPUãããã¡ã€ã«ãåååŸãããšãããflame graphããPanama Vector APIã®çè·¡ãæ¶ãã代ããã«èµ€æ ã§å²ãã dot7u ãšããã¡ãœããã衚瀺ãããããã«ãªããŸããã ããã¯ãElasticsearch 8.15ãããLuceneã®Panama Vector APIã§ã¯ãªããããå¹ççãªElasticsearchç¬èªã®ãã¯ãã«åã¢ãžã¥ãŒã«ã䜿çšãããããã«ãªã£ãããã§ã ( https://www.elastic.co/search-labs/blog/vector-similarity-computations-ludicrous-speed ) ããã®ç¬èªå®è£
ã§ã¯ãäžèŠãªããŒã¿ã³ããŒã¯ããããçºçããŸããã 8.12.1ãš8.17.1ã®ããã©ãŒãã³ã¹ã®æ¯èŒã¯ä»¥äžã§ãã 8.12.1 8.17.1 ãã£ã«ã¿ãªã 350 450 ç·©ããã£ã«ã¿ïŒloose filterïŒ 50 70 çµã蟌ã¿ãã£ã«ã¿ïŒselective filterïŒ 30 40 Elasticsearch 8.17.1ã«ã¢ããããŒãåŸãå
šäœçã«ããã©ãŒãã³ã¹ãæ¹åããŸãããããã£ã«ã¿ããã®ã±ãŒã¹ã§ã¯äŸç¶ãšããŠãã£ã«ã¿ç¡ãã®ã±ãŒã¹ãšæ¯ã¹ããšããã©ãŒãã³ã¹ãäœãç¶æ
ã§ãã çµã蟌ã¿ãã£ã«ã¿ãªã³ã°æã®HNSWã°ã©ãæ¢çŽ¢ã®æé©å çµã蟌ã¿ãã£ã«ã¿ïŒselective filterïŒãé©çšããå Žåã®CPUãããã¡ã€ã«ã確èªãããšãããèµ€æ ã§å²ãŸããéšåã® HNSWGraphSearcher.search ã®åŠçæéã倧å¹
ã«å¢å ããŠããããšãããããŸããã ããã¯è¿åã®ããŒãããã§ãã¯ããéã«ãé¡äŒŒåºŠã®èšç®ãè¡ããã諊ããŠæ¬¡ããã§ãã¯ããåæ°ãå¢å ããŠããããšãæå³ããŸãã ã€ãŸããHNSWã°ã©ãã®æ§é äžããã£ã«ã¿æ¡ä»¶ã«åèŽããããã¥ã¡ã³ããå°ãªãå Žåãã°ã©ãã®ãªã³ã¯ãå¹ççã«èŸ¿ãããšãã§ããªãããã«çºçããåé¡ã§ããé¡äŒŒåºŠãé«ãæ¹åã«ã°ã©ããæ¢çŽ¢ããŠãããã£ã«ã¿æ¡ä»¶ã«åèŽããããã¥ã¡ã³ããèŠã€ãããªãå Žåã倧ããè¿åããããæ»ã£ããããå¿
èŠãçããæ¢çŽ¢å¹çãäœäžããŸãã ãã®åé¡ã解決ããããã«ãACORNãšåŒã°ããã¢ã«ãŽãªãºã ( https://arxiv.org/pdf/2403.04871 ) ãææ¡ãããŠãããæ§ã
ãªãã¯ãã«æ€çŽ¢ãšã³ãžã³ãæ¡çšããŠããŸããLuceneã®upstreamã§ããACORN颚ã®ã¢ã«ãŽãªãºã ãå®è£
ãããŠããããããã®PR ( https://github.com/apache/lucene/pull/14160 ) ãcherry-pickããŠè©Šãããšãããç¹ã«çµã蟌ã¿ãã£ã«ã¿ã®å Žåã«å€§ããªããã©ãŒãã³ã¹æ¹åãèŠãããŸããã 8.17.1 8.17.1 + ACORN ãã£ã«ã¿ãªã 450 450 ç·©ããã£ã«ã¿ïŒloose filterïŒ 70 80 çµã蟌ã¿ãã£ã«ã¿ïŒselective filterïŒ 40 120 ãšã¯ãããç·©ããã£ã«ã¿ïŒloose filterïŒã®å Žåã¯ããŸãæ¹åãããŠããŸããã ç·©ããã£ã«ã¿ãªã³ã°æã®BitSetåæã®æé©å ç·©ããã£ã«ã¿ïŒloose filterïŒãé©çšããå Žåã®CPUãããã¡ã€ã«ã確èªãããšãããèµ€æ ã§å²ãã éšåã§ãã AbstractKnnVectorQuery.createBitSet ã®åŠçæéã倧éšåãå ããŠããããšãããããŸããã ãã£ã«ã¿ãåºå®ã§ãkNNæ€çŽ¢ã«æå®ãããã¯ãã«å€ã®ã¿ã倿ŽããŠããå Žåããã£ã«ã¿ã®çµæã®BitSetã¯ã¯ãšãªãã£ãã·ã¥ã«ä¿åãããããããã£ã«ã¿èªäœã®ã³ã¹ãã¯ã»ãŒç¡èŠã§ããã¯ãã§ãã ã³ãŒããè§£æããçµæãcreateBitSetã¡ãœããå
ã§ããã£ã«ã¿ã®BitSetãšliveDocsã®BitSetãåæããæ°ããBitSetãäœæããŠããããšã倿ããŸãããLuceneã®Segmentã¯immutableã§ãããããåé€ãããããã¥ã¡ã³ãã管çããããã«å¥ã®ããŒã¿æ§é ïŒliveDocsïŒãå¿
èŠã«ãªããŸããliveDocsãBitSetã§è¡šçŸãããŠããããã£ã«ã¿ã®BitSetãšliveDocsã®BitSetãåæããéã«ãBitSetã®äžèº«ãiterateããŠããŸãããç·©ããã£ã«ã¿ã®å Žåããã£ã«ã¿æ¡ä»¶ã«åèŽããããã¥ã¡ã³ããå€ãããããã®åŠçã«å€§ããªã³ã¹ããããã£ãŠããŸããã ããããã°ã©ãã蟿ãéã«ãèŠã€ããããã¥ã¡ã³ãããã£ã«ã¿ã«åèŽãããããã§ãã¯ããã ãã§ããã°ãBitSetãåæããå¿
èŠã¯ãããŸããããŸããã«ãŒãã£ããªãã£ïŒBitSetå
ã§1ãç«ã£ãŠãããããæ°ïŒãèšç®ããå ŽåããiterateããŠåæããå¿
èŠã¯ãªããFixedBitSetã®intersectionCountã¡ãœããã䜿çšããããšã§é«éã«èšç®ã§ããŸãã ãããã®ç¹ãä¿®æ£ããçµæãç¹ã«ç·©ããã£ã«ã¿ã䜿çšããå Žåã®ããã©ãŒãã³ã¹ã倧å¹
ã«æ¹åããŸããã 8.17.1 + ACORN 8.17.1 + ACORN + BitSetåææé©å ãã£ã«ã¿ãªã 450 450 ç·©ããã£ã«ã¿ïŒloose filterïŒ 80 200 çµã蟌ã¿ãã£ã«ã¿ïŒselective filterïŒ 120 170 ãã®ä¿®æ£ã¯Luceneã®upstreamã«PRãšããŠéããŸãã( https://github.com/apache/lucene/pull/14771 ) ããããããã®å°ãåã«è¿œå ãããŠããä¿®æ£ ( https://github.com/apache/lucene/pull/14674 ) ã«ãŠæ¹åãããŠãããããã®PRã¯äžèŠã§ãããæ£ç¢ºã«ã¯ããã®PRãã®ãã®ã¯cherry pickããŠè©ŠããŠããŸãããã applyMask ã®édefaultå®è£
ã¯å¥PRã§å¯Ÿå¿ãããŠããããããããèŠèœãšããŠããŸããã FieldExistQueryã«ããããã©ãŒãã³ã¹äœäžã®è§£æ¶ æ¹ååŸã®CPUãããã¡ã€ã«ã確èªãããšãããäŸç¶ãšããŠcreateBitSetå
ã® Lucene99ScalarQuantizedVectorsReader$QuantizedVectorValues.advance ã®åŠçæéãæ®ã£ãŠããŸããã ããã¯ããã£ã«ã¿ã«Luceneå
éšã§è¿œå ãããFieldExistQueryã«ãããã®ã§ããããšãããããŸãããã€ã³ããã¯ã¹å
ã®ãã¹ãŠã®ããã¥ã¡ã³ãã«kNNã®å¯Ÿè±¡ãšãªããã¯ãã«ãã£ãŒã«ããååšããããã§ã¯ãªãå Žåããã®ååšããã§ãã¯ãã远å ã®åŠçãå¿
èŠã«ãªããŸããä»åã®ã±ãŒã¹ã§ã¯ãåã蟌ã¿åŠçã§ãšã©ãŒãçºçããå Žåã«ãã¯ãã«ãååšããªãããã¥ã¡ã³ããååšããŠããŸããã ãããã®ããã¥ã¡ã³ããã€ã³ããã¯ã¹ã«å«ããªãããã«ä¿®æ£ãããšãããããã©ãŒãã³ã¹ãããã«æ¹åããŸããã 8.17.1 + ACORN + BitSetåææé©å 8.17.1 + ACORN + BitSetåææé©å + FieldExistQueryã®é€å€ ãã£ã«ã¿ãªã 450 450 ç·©ããã£ã«ã¿ïŒloose filterïŒ 200 250 çµã蟌ã¿ãã£ã«ã¿ïŒselective filterïŒ 170 200 äžè¬ã«FieldExistQueryã¯å¯Ÿè±¡ã®ããã¥ã¡ã³ãã®fieldãå
šãŠãã§ãã¯ããå¿
èŠãããããé«ã³ã¹ãã§ããFieldExistQueryãšä»åã®ãã£ã«ã¿ã¯Query Cacheã®å¯Ÿè±¡ã®ããå
šãŠã®ããã¥ã¡ã³ãããã§ãã¯ããŠããããã§ã¯ãªãã¯ãã§ãããQuery Cacheã®å¯Ÿè±¡ãšãªããªããããªãµã€ãºã®ã»ã°ã¡ã³ãã®ã¿ã察象ã ã£ããšããŠããç·©ããã£ã«ã¿ã®å Žåã¯é«ã³ã¹ãã§ãã£ããšèããããŸãã ãããã« Elasticsearch 8ã®kNNæ€çŽ¢ã«ãããŠããã£ã«ã¿ãªã³ã°æã®ããã©ãŒãã³ã¹ãæ¹åããããã«ã以äžã®æœçã宿œããŸããã Elasticsearch 8.17.1ãžã®ã¢ããããŒã: Elasticsearchç¬èªã®ãã¯ãã«åã¢ãžã¥ãŒã«ã䜿çšããããšã§ããã£ã«ã¿ãªãã®ã±ãŒã¹ã«ãããããã©ãŒãã³ã¹ãåäžãããŸããã ACORN颚ã¢ã«ãŽãªãºã ã®å°å
¥: çµã蟌ã¿ãã£ã«ã¿é©çšæã®HNSWã°ã©ãæ¢çŽ¢ãæé©åããŸããã BitSetåæã®æé©å: ç·©ããã£ã«ã¿é©çšæã®BitSetåæåŠçãå¹çåããŸããã ãã¯ãã«ãã£ãŒã«ãã®ååšãã§ãã¯ã®æé€: ãã¯ãã«ãã£ãŒã«ããååšããªãããã¥ã¡ã³ããã€ã³ããã¯ã¹ããæé€ããããšã§ãäžèŠãªååšãã§ãã¯ãåæžããŸããã ãããã®æ¹åã«ããããã£ã«ã¿ãªã³ã°ã®æç¡ã«é¢ããããkNNæ€çŽ¢ã®ããã©ãŒãã³ã¹ã倧å¹
ã«åäžãããããšãã§ããŸããã以äžãæçµçãªçµæã§ãã æ¹åå æ¹ååŸ ãã£ã«ã¿ãªã 350 450 ç·©ããã£ã«ã¿ïŒloose filterïŒ 50 250 çµã蟌ã¿ãã£ã«ã¿ïŒselective filterïŒ 30 200 ãã¯ãã«ãã£ãŒã«ãã®ååšãã§ãã¯ä»¥å€ã®æ¹åã¯å°æ¥ã®Elasticsearchã®ãªãªãŒã¹(9.0.4以é?)ã«å«ãŸããäºå®ã§ãã ãããã®æ¹åã¯ãElasticsearchã®kNNæ€çŽ¢ãHybrid Searchãªã©ã«æŽ»çšããããé«åºŠãªæ€çŽ¢ãµãŒãã¹ã®æäŸã«ç¹ãããã®ãšèããŠããŸãã
ããã«ã¡ã¯ãã¡ã«ã〠Payment Core Teamã§2ã¶æéã€ã³ã¿ãŒã³ã·ããããã@taichiã§ãã ãã®èšäºã¯ã Merpay & Mercoin Tech Openness Month 2025 ã®22æ¥ç®ã®èšäºã§ãã ã¯ããã« ç§ã¯4æã®äžæ¬ãã6æã®äžæ¬ã®éã ããã¯ãšã³ããšã³ãžãã¢ãšããŠã¡ã«ãã€ã®ã€ã³ã¿ãŒã³ã·ããã«åå ããŸãããä»åã¯ã€ã³ã¿ãŒã³æéäžã«åãçµãã ã¿ã¹ã¯ãæ¯ãè¿ãã ããã§åŸãåŠã³ããŸãšããããšæããŸãã ãã®èšäºãã ã¡ã«ãã€ã®ã€ã³ã¿ãŒã³ã«ææŠããŠã¿ãããšèããŠããæªæ¥ã®Hackerã®åèã«ãªãã°å¹žãã§ãã åãçµãã ã¿ã¹ã¯ ç§ãæ
åœããã¿ã¹ã¯ã¯å€§ããåãããš3ã€ãããŸãã å€éšããŒãããŒãžã®æ¥ç¶ã«é¢ããCredentialã®ç®¡çæ¹æ³ã®å€æŽ Re-archäžã®ãœãŒã¹ã³ãŒããžã®Pub/Subåºç€çµ±å å人æ
å ±é£èªåããªã·ãŒã®å®è£
以äžã§1ã€ãã€è©±ããŠãããŸãã å€éšããŒãããŒãžã®æ¥ç¶ã«é¢ããCredentialç®¡çæ¹æ³ã®å€æŽ èæ¯ ç§ãæå±ããPayment CoreããŒã ã§ã¯ã決æžåºç€ãã€ã¯ããµãŒãã¹ã§ãããPayment Serviceãã®éçºãæ
åœããŠããŸãããã®ãµãŒãã¹ã¯ãã¡ã«ã«ãªãã¡ã«ãã€ãã¡ã«ã³ã€ã³ãå±éãã倿°ã®ãã€ã¯ããµãŒãã¹çŸ€ããåç
§ãããŠãããã°ã«ãŒãå
šäœã®æ±ºæžãã¡ã€ã³ã«ãããã³ã¢ãªè²¬åãæ
ã£ãŠããŸãã ã¡ã«ãã€ã§ã¯æ±ºæžæ©èœã®äžéšã§å€éšããŒãããŒããŸã®APIãæŽ»çšããŠããããããã®Credentialãé©åã«ç®¡çããå¿
èŠããããŸãã ç§ãã¿ã¹ã¯ã«åãçµããŸã§ã®éçšã§ã¯ã æ°ãã远å ããCredentialãæå·åãSpannerã«SQL raw queryãå©ãããšã§ä¿åããŠããŸããã åŸæ¥ã®éçšæ¹æ³ã¯ä»¥äžã«ç€ºãå±éºæ§ãšé¢åããæããŠããŸãã å çåºè¿œå ã®ãã³ã«SQLã¯ãšãªãå©ãå¿
èŠããã å çåºè¿œå åŸã«SQLã¯ãšãªãçºè¡ãå¿ããå¯èœæ§ããã ãã£ãããš äžèšã®èª²é¡ã解決ããããã«ã 以äžã®ãããªèšèšãšå®è£
ãè¡ããŸããã å€éšããŒãããŒã®å çåºããŸã®ãã¹ã¯ãŒãã®æ ŒçŽå
ãGoogle Secret Managerã«å€æŽ Spannerã«çŽæ¥ãã¹ã¯ãŒããä¿åãã, Secretã®KeyãšVersionã ããæ ŒçŽãã Secretã®æ
å ±ãå
¥åãšããŠæž¡ãã ãã§, SQLãèµ°ã£ãŠSecretã®KeyãšVersionãSpannerã«ä¿åããK8sã®Jobãã³ãã¬ãŒããäœæ SecretManagerãéããŠå çåºããŸã®ãã¹ã¯ãŒããååŸã§ããããã«ClientCodeãä¿®æ£ æåã¯CLIãäœã£ãŠããŒã ã«æäŸããããšãèããŸãããã ã¡ã³ããã³ã¹ã®è² è·ãæ°ãã«çºçããããšã K8sã®Jobåºç€ããã§ã«ããŒã ã«ååšããããšãçç±ã«CLIã¯é¿ããŸããã K8sã®Jobãã³ãã¬ãŒãã¯ãã¡ããåèã«ãªããšæããŸãã ã€ã³ã¿ãŒã³ã«åå ããŠ1é±éãããã§èšèšãè¡ãããã¥ã¡ã³ããäœæããã®ã§ãã, èšèšæžã®ã¬ãã¥ãŒãæåãããŒã ã¡ã³ããŒãšæè¡çãªè°è«ãç¹°ãè¿ãããšã§ã¿ã¹ã¯ãPayment Serviceã®å
šäœåãæŽãããšãã§ããŸããã Re-archäžã®ãœãŒã¹ã³ãŒããžã®Pub/Subåºç€çµ±å èæ¯ ç§ãæå±ããŠããPayment CoreããŒã ãéçºããŠããPayment Serviceã¯ããã®ãœãŒã¹ã³ãŒããéåžžã«è€éãªãããå€§èŠæš¡ãªåæ§ç¯ãããžã§ã¯ããéç§°ãRe-archïŒãªã¢ãŒããã¯ãã£ïŒããé²ããããŠããŸããã ãã®Re-archãããžã§ã¯ãã®ç®çã¯ãæ¢åã®Payment Serviceã®ãœãŒã¹ã³ãŒããClean Architectureã®ãããªèšèšææ³ã«åºã¥ããŠæžãçŽãããšã§ãã çŸç¶ã®Payment Serviceã§ã¯ãéåæåŠçã®ããã«Google Cloud Pub/Subãå©çšãããŠããŸããããããRe-archåŸã®æ°ãããœãŒã¹ã³ãŒãã«ã¯ãPub/Subãå©çšããããã®åºç€ããŸã æŽåãããŠããªãç¶æ³ã§ããã ãã£ãããš ç§ã¯Re-archåŸã®ãœãŒã¹ã³ãŒãã®ã³ã³ããã¹ãã«ãããããããã«Pub/Subã®åºç€ãçµ±åããŸããã Pub/Subåºç€ã®èšèšã¯ã Payment ServiceãPub/SubããSubscribeããè¡ããªãããšãåæã«ã¡ã³ã¿ãŒãšé²ããŸããã Subscriberã«æž¡ãHandlerã®Interfaceèšèšãã Usecaseã«æž¡ãäŸåé¢ä¿ãäžæ¬ã§ç®¡çããContainerãšã®èŠªåæ§ãèæ
®ããŠèšèšããçµéšã¯éåžžã«å匷ã«ãªããŸããã Re-archã®PRã¯å€æŽã倧ãããã®ãããã®ã§ã Conflictã®è§£æ¶ãContextãçè§£ãçŽãã®ã«èŠåŽããããšããããŸãããã ããã»ã©å€§èŠæš¡ãªãœãŒã¹ã³ãŒããèªãããšããªãã®ã§ãšãŠãè¯ãçµéšã«ãªããŸããã éçºäœéšãšããŠãã Payment Serviceã§ã¯Mockã®çæã¯ moq.go ã䜿ã£ãŠããã®ã§ã interfaceã ãèšèšããã°Mockãç°¡åã«çæã§ããã®ã§ã çŽ æ©ãTestableãªã³ãŒããæžãããšãã§ããŸããã å人æ
å ±é£èªåããªã·ãŒã®å®è£
èæ¯ å人æ
å ±ä¿è·æ³ã®æ¹æ£ãåããã¡ã«ãã€å
šç€Ÿã§ãPII DeletionïŒå人æ
å ±é£èªåïŒãããžã§ã¯ãããé²è¡äžã§ããããã«äŒŽããPayment Serviceããã®å¯Ÿå¿ãè¡ãå¿
èŠããããŸããã å人æ
å ±ã®é£èªåã¯ã¡ã«ãã€å
šäœã§åãçµãã¹ã課é¡ã§ããããããã§ã«ãã®ããã®ãã€ã¯ããµãŒãã¹ãPII Deletion Serviceããæ§ç¯ãããŠããŸããã ããããPayment ServiceããPII Deletion Serviceãå©ãã«è¡ãããšãã§ããªãç¶æ
ã§ããã ãã£ãããš PII Deletion Serviceã®ã¢ãŒããã¯ãã£ã¯äžå³ã®ããã«ãªã£ãŠããŸãã äžå³ãè§£éãããš, åŠçã®æµããšããŠã¯ä»¥äžã«ãªããŸãã(Payment Serviceã¯äžå³ã«ãããå³ç«¯ã«äœçœ®ããããš, åãã€ã¯ããµãŒãã¹ã¯gRPCã§éä¿¡ãè¡ãããšã念é ã«ãããŠãã ãã) PII Deletion Managerããé£èªåãã¹ãå人æ
å ±ã®æ
å ±ãPub/Subã«Pushããã Payment ServiceãPub/SubããPullããŠé£èªåãã察象ãèŠã€ãã é£èªåãã é£èªåãæåãããã®ã¹ããŒã¿ã¹ãPII Deletion Managerã«è¿ã 1ã¯ãã§ã«ä»çµã¿ãšããŠååšããã®ã§ã ç§ã¯2-4ãå®è£
ããã°è¯ãããšã«æ°ã¥ããŸãã 以äžã§ã¯ã¹ããã2ã«ã€ããŠã©ã®ããã«å¯Ÿå¿ããããè¿°ã¹ãŸãã(3ã 4ã¯ãããŸã§é£ããããšããªãã®ã§ã¹ãããããŸãã) Pub/SubããPullããŠé£èªå察象ãèŠã€ãã PII Deletionã®Handlerã¯Re-archåŸã®ãœãŒã¹ã³ãŒãã«å®è£
ããã®ã§ã ç§ãçµ±åããPub/Subåºç€ã䜿çšããã°ããã«å®çŸã§ããã®ã§ç°¡åã«æããŸãã ãããã Pub/Subã®Subscriberãè¡ãåŠçããã®ãŸãŸèšè¿°ããããšãããš2ç¹å¥œãŸãããªãç¹ããããŸãã æ®æ®µæ
£ã芪ããã§ããgRPCãšã³ããã€ã³ããšç°ãªãäœéšã§éçºããªããšãããªã Subscriberã®ããžãã¯ãä»ã®APIã®ããžãã¯ããç¬ç«ããã¡ ãããã®èª²é¡ãé¿ããããã«ã ã¡ã«ãã€ã¯Pub/Sub gRPC Pusherãšããå
補åãµãŒãã¹ãæã£ãŠããŸããPub/Sub gRPC Pusherã®ä»çµã¿ã¯ç°¡åã§ã 以äžã®ãããªã¢ãŒããã¯ãã£ã«ãªããŸãã gRPC Pusherã¯ãã€ã¯ããµãŒãã¹ã®ä»£ããã«Pub/SubããPullã, gRPCãªã¯ãšã¹ãã«å€æããŠãã€ã¯ããµãŒãã¹åŽã®ãšã³ããã€ã³ããå©ããŠãããŸãã gRPC Pusherã䜿ãããšã§ã¡ã«ãã€ã®ãšã³ãžãã¢ã¯ãPub/Subã®Subscriberããžãã¯ãæ
£ã芪ããã gRPCãšã³ããã€ã³ããšããŠå®è£
ã§ããPub/Subãšããç¹å®ã®InfrastructureãæèããªããŠè¯ããªããŸãã ä»åã¯ãã¡ãã®gRPC Pusherãå©çšããããã®InfrastructureãªãœãŒã¹ãTerraformã§äœæãã å人æ
å ±é£èªåãè¡ãããžãã¯ã¯gRPCãšã³ããã€ã³ããšããŠå®è£
ãè¡ããŸããã ãã ãgRPC Pusherã䜿ããªããããããšèããã¹ãããšããããŸãã Pub/Subã®PullåSubscriptionã®å€§ããªå©ç¹ã¯ãPullããåŽã®ã¹ã±ãŒã«ãã¯ãŒã¯ããŒãã®éœåã«åãããŠåŠçãå®è¡ã§ããç¹ã«ãããŸããgRPC Pusherã¯ãã®éœåãPullãããã€ã¯ããµãŒãã¹ã®ä»£ããã«åãæã£ãŠãããšèããããšãã§ããŸãã Kubernetesãã¯ãããšããã¹ã±ãŒãªã³ã°æè¡ã¯ãå¿
èŠã«ãªã£ãæã«ããã«ã¹ã±ãŒã«ããããã§ã¯ãªãã®ã§ãã¯ãŒã¯ããŒãéã«ãã£ãŠã¯gRPC Pusherã®äœ¿çšã¯é©åã§ãªãå ŽåããããŸããããããPII Deletionã®ãªã¯ãšã¹ãã¯ã¹ã±ãŒã«ã远ãã€ããªãã»ã©å€§éã®ãªã¯ãšã¹ããé£ãã§ããããšã¯æ³å®ãé£ããããgRPC Pusherã®äœ¿çšã決æããŸããã å
šãŠã®å人æ
å ±ãé£èªåãããšãããŸã§ã¯å®äºã§ããŸããã§ãããã åºæ¬çãªããžãã¯ã¯å
šãŠå®è£
ãçµããŸããã åŠãã ããšãšææ³ ããŒãé¢ äœ¿çšããæè¡ãšããŠã¯ä»¥äžã§ãã Kubernetes Terraform Google Cloud (Pub/Sub, Secret Manger, Spanner) gRPC Go ã©ã®æè¡ãè§Šã£ãããšã¯ãã£ããã®ã®æ·±ãè§Šã£ãããšã¯ãªãã£ãã®ã§å匷ã«ãªããŸããã ç¹ã«Terraformã«ã¯èå³ãããã®ã§ã 倧åŠé¢ã®ç ç©¶ãèœã¡ã€ã7æã¯äœãããã®Providerãèªåã§å®è£
ããã€ããã§ããKubernetesã«é¢ããŠãåºæ¬çãªæŠå¿µããªãœãŒã¹ã®åœ¹å²ã®ã¿ãªããã ã«ã¹ã¿ã ã³ã³ãããŒã©ã®å®è£
çã é¢çœãéšåã¯ããããããã®ã§ããããããã«æ·±ãå匷ããŠããããšæããŸãã ãŸãã Payment Serviceã®ãœãŒã¹ã³ãŒãã¯å€§èŠæš¡ãã€è€éã ã£ãã®ã§èªã¿è§£ãã®ã«èŠåŽããŸãããã ããã©ãŒãã³ã¹ãšåªçæ§ãæèããèšèšã«ãªã£ãŠããã®ã§ãšãŠãå匷ã«ãªããŸããã ãœããé¢ ã€ã³ã¿ãŒã³ãéããŠèªèº«ã®è±èªã¹ãã«ãåäžãããšæããŸããã Payment CoreããŒã ã§ã¯ã ããŒã ã®Standupãæææ¥ããæšææ¥ã¯å
šãŠè±èªã§è¡ãããŸãã ãŸããç§ãåå ããŠããPII Deletion Projectã®MeetingãGitHubäžã®ããåããåºæ¬å
šãŠè±èªã§ãããæçµææçºè¡šãå
šãŠè±èªã§è¡ããŸãããæ®æ®µã®æ¥åããè±èªãšèº«è¿ã«è§Šããããããšã¯èªèº«ã®æé·ã«å€§ããç¹ãã£ããšæããŠããŸãã ãããã, ããŒã ã¡ã³ããŒã¯ãã¡ãããä»ã®ããŒã ã®æ¹ã
ãšãã³ãã¥ãã±ãŒã·ã§ã³ãç©æ¥µçã«ãšãããšãå¿ãããŸãããããŒã ã¡ã³ããŒã¯ãã¡ããã®ããšãä»ããŒã ã®æ¹ã
ãç§ã«èŠªåã«ããŠãã ããæçµææçºè¡šã«ãåå ããŠãã ãããŸããã ã€ã³ã¿ãŒã³ã·ãããéããŠã¡ã«ã«ãªã®ã«ã«ãã£ãŒãååã«å³ãããŠæ¬åœã«æ¥œããã£ãã§ãã ã¡ã«ã«ãªã°ã«ãŒãã¯å
šç€Ÿçã«AI掻çšãæšé²ããŠãããç§ãç©æ¥µçã«AIãæŽ»çšããŸãããç§ã¯ä»¥åããAIã䜿ã£ãŠãœãŒã¹ã³ãŒããçæããããšã«éåæãèŠããŠããŸããã Junior Engineerã¯Intermediateã Seniorãšã¿ã€ãã«ãäžããŠããå¿
èŠããããŸããã¿ã€ãã«ã¯ãšã³ãžãã¢ã®åãœãŒã¹ã³ãŒãã®ã¬ãã«ã ãã§æ±ºãŸãããã§ã¯ãªãã§ãããåœç¶çžé¢ã¯ãããŸããJuniorã§ããç§ãAIã䜿ã£ãŠãœãŒã¹ã³ãŒããæžããŠããŸã£ãããæé·ããæ©äŒããªããªããã€ãŸã§çµã£ãŠãèªãã®ã¹ãã«ã䌞ã³ãªãã®ã§ã¯ãªããïŒãšèããŠããŸããã ã§ãããPayment Serviceã®è«å€§ãªãã¡ã€ã³ãšè€éãªãœãŒã¹ã³ãŒããçè§£ããã«ã¯å°åº2ã¶æã§ã¯è¶³ããªããããå¹çã®è¯ããã£ããã¢ãããå¿
èŠã§ããããŒã ã¡ã³ããŒã«çžè«ããŠã¿ããšã圌ãã¯çAIïŒCursorïŒã䜿ã£ãŠå¹çãããã¡ã€ã³ç¥èãåžåããããUnitTestãæžãããããŠããŸããã圌ãã®å©èšãåããŠç§ãã€ã³ã¿ãŒã³äžã«Cursorã培åºçã«æŽ»çšããAIãšå調ããŠãä»ãŸã§ãããããæ¬è³ªçãªäœæ¥ã«æéã䜿ããããã«ãªããŸããã AIã䜿çšããŠãåºåãããã³ãŒãã䟡å€ã¯æ¬äººã®èœåã«ãã£ããããããããäŸç¶ãšããŠåŒ·ããªãããã«å匷ã¯å¿
èŠã§ãã ç§ãæåã«æ±ããŠããéåæã¯ä»ã§ãééã£ãŠããªããšæããŸãã ããããæé·ããæ©äŒã¯èªåã§ãããã§ãäœãåºããã®ã§ãä»äºãšæé·ãã€ã³ãŒã«ã§çµã°ãäž¡æ¹å
šåã§åãçµãã°ãããæ©ãããã倧ããªäŸ¡å€ãå±ãããããšã³ãžãã¢ã«ãªãããšèããæ¹ããŸããã ã€ã³ã¿ãŒã³ãéããŠæã倧ããå€ãã£ãéšåã¯ããã ãšæããŸãã æåŸã« ããŒã ã¡ã³ããŒãã¯ãããããããã®æ¹ã
ã«ãäžè©±ã«ãªããŸããã ã¡ã«ã«ãªã®ã«ã«ãã£ãŒãååã«äœæããªããæè¡çã«é£ãã課é¡ã«åãçµãŸãããŠããã ããæ¬åœã«æè¬ããŠããŸãã 2ã¶æéããããšãããããŸããã
ããã«ã¡ã¯ãã¡ã«ã«ãªã¢ãã€ã«ã®ãœãããŠã§ã¢ãšã³ãžãã¢ã® @keiitaj ã§ãã ãã®èšäºã¯ã Merpay & Mercoin Tech Openness Month 2025 ã®21æ¥ç®ã®èšäºã§ãã æŠèŠ æ¬èšäºã¯ã2025幎6æ16-17æ¥ã«æ¥æ¬ã§åéå¬ãããKubeCon + CloudNativeCon 2025 Japan ã®åå ã¬ããŒãã§ãã ãã®èšäºã®å
å®¹ïŒ æ¥æ¬åéå¬ã®KubeConã€ãã³ãã¬ããŒã 泚ç®ã»ãã·ã§ã³ Envoyæ¡åŒµçšWasmãã£ã«ã¿ã®ããŒã«ã«ç°å¢äžã®ãã¢å®è£
å·çè
ã®åŠã³ïŒ EnvoyãšWebAssemblyãæŽ»çšããAPIç®¡çææ³ãå®éã«å®è£
ããããšã§ãã»ãã·ã§ã³ã§åŸãç¥èãããæ·±ãçè§£ã§ããŸããããŸããåå åã¯æè¡çããŒãã«ãé«ããšæããŠããŸããããå®éã¯è·çš®ãã¬ãã«ãåããæ¥œãããã€ãã³ãã§ããããšãçºèŠããŸããã ç®æ¬¡ ã¯ããã« åå ã®åæ© ã€ãã³ãã®èŠæš¡ãšç±æ° 泚ç®ããKeynote & Session åå ããŠæããããš ããŸãïŒEnvoy + Wasmãã£ã«ã¿ã®ãã¢å®è£
ãŸãšã ã¯ããã« ç§ã¯æ®æ®µãPlatform Engineerã§ã¯ãªããKubernetesãCloud Nativeã®æè¡ã§æ§æãããåºç€ã®äžã§ãµãŒãã¹éçºãè¡ããšã³ãžãã¢ãšããŠãTektonãArgoãIstioãEnvoyãªã©ã䜿ã£ãŠä»äºãããŠããŸãã åå ã®åæ© æè¡çãªèå³ æ¥åã§KubernetesãCloud Nativeã®æè¡ïŒTektonãArgoãIstioãEnvoyãSpinnakerãªã©ïŒã«æ¥ã
è§Šããäžã§ããããã®æè¡ã®ææ°ååãã³ãã¥ããã£ã®æŽ»åã«åŒ·ãèå³ãæã€ããã«ãªããŸããã ãŸããAIæè¡ã®é²åã«ããããµãŒãã¹éçºãšã³ãžãã¢ãPlatformæ§ç¯ã«ããæ·±ãé¢ããæ©äŒãå¢ããŠãããšæããŸããã ãã®ãããCloud Nativeãšã³ã·ã¹ãã ã®å
šäœåãææ¡ããŠãããããšããæãããããŸããã æ¥æ¬åéå¬ã®æŽå²çãªã€ãã³ã CNCFïŒCloud Native Computing FoundationïŒã®äž»èŠã€ãã³ããšããŠäžçåå°ã§éå¬ãããŠããKubeConããæ¥æ¬ã§åããŠéå¬ãããããšãåå ã®å€§ããªåæ©ãšãªããŸããã å®ã¯ããã®æ¥æ¬éå¬å®çŸãŸã§ã«ã¯é·ãéã®ãããã£ãããã§ãã 以åã5æã«éå¬ãããCloudNative Daysã§ãLinux Foundationã®Noriaki Fukuyasuæ°ã«ãã KubeConãæ¥æ¬ã«æèŽãããŸã§ã®çµç·¯ ã«ã€ããŠã®è¬æŒãèãæ©äŒãããããã®å
容ããšãŠãå°è±¡çã§ãä»åã®KubeConåå ã®ãã£ããã®äžã€ã«ããªããŸããã Fukuyasuæ°ã®è©±ã«ãããšïŒ 2023幎以åãæ¥æ¬ã¯ã¯ã©ãŠããã€ãã£ãæè¡åŸé²åœãšèšãããŠãã å€§äŒæ¥ã§ã®æ¡çšå®çžŸãå°ãªã ã¢ãžã£ã€ã«ããã€ã¯ããµãŒãã¹ãã³ã³ãããç¥ããªã人ã倿° Cloud Native Community Japan ãç«ã¡äžããæã«è€æ°åã®meetupãéå¬ ç¶ç¶çãªããã€ã³ã°æŽ»åãéããŠãã€ãã«æ¥æ¬ãžã®æèŽã«æå ãã®ãããªèæ¯ãç¥ã£ãããšã§ãæ¥æ¬åéå¬ã®KubeConã«åå ããããšã®æçŸ©ãããæ·±ãæããããã«ãªããŸããã ã€ãã³ãã®èŠæš¡ãšç±æ° äŒå Žãšåå è
äŒå Žãšãªã£ããã«ãã³æ±äº¬ãå°å Žã§éå¬ããããã®ã€ãã³ãã¯ã1,500æã®ãã±ãããå®å£²ããæ¥æ¬ã®Cloud Nativeã³ãã¥ããã£ã®çãäžãããèã§æããããšãã§ããŸããã ã¡ãªã¿ã«ãä»å¹Žãã³ãã³ã§éå¬ãããKubeConã¯12,418人ãåå ãã å€§èŠæš¡ãªã€ãã³ã ã§ããããæ¥æ¬éå¬ã¯ã³ã³ãã¯ããªãããå
å®¹ã®æ¿ãã€ãã³ãã§ããã ã€ãã³ãã®æ¥œãã¿æ¹ KubeConã®é
åã¯ãåã«ã»ãã·ã§ã³ãèãã ãã§ã¯ãããŸãããååå ã§æããæ¥œãã¿æ¹ãã玹ä»ããŸãïŒ ã»ãã·ã§ã³åå ïŒ ã¹ã±ãžã¥ãŒã« ãèŠãŠãèå³ã®ããKeynoteãã»ãã·ã§ã³ã«åå ããŒã¹å·¡ã ïŒã»ãã·ã§ã³ã®åéã«ãOSSãããªãªã³ãäŒæ¥ããŒã¹ã蚪å OSSãããžã§ã¯ãã®éçºè
ãšçŽæ¥è©±ã貎éãªæ©äŒ ææ°ãããã¯ãã®ãã¢ãäœéš å瀟ã®ããã«ãã£ã°ããºåé äŒæ¥ããŒã¹ã§ã®çºèŠ åäŒæ¥ããŒã¹ãåãããšã§ãææ°ã®ãããã¯ãããµãŒãã¹ã®ååãçŽæ¥ç¢ºèªã§ããŸããïŒ PagerDuty AIãšãŒãžã§ã³ããéå»ã®å¯Ÿå¿å±¥æŽãåºã«ãã€ã³ã·ãã³ãã®åå åæãéèŠåºŠå€å®ãæ¯æŽ Splunk Observability Cloudã®æ°æ©èœãå±ç€ºãAIãã£ããæ©èœã«ããå·®å¥åã匷調 Toyota ã³ãã¯ãããã«ãŒã®ç ç©¶éçºã§Cloud Nativeæè¡ã掻çšããèªåè»æ¥çã§ãCloud NativeãæµžéããŠããããšã宿 泚ç®ããKeynote & Session Opening KeynoteïŒ Community Opening Remarks Community Opening Remarks – Chris Aniszczykæ°ïŒCNCF CTOïŒ éäŒã®æšæ¶ã§ã¯ã以äžã®å°è±¡çãªçºè¡šããããŸããïŒ 1,500æã®ãã±ãããå®å£²ããããšãžã®æè¬ CNCFãKubernetesãžã®ã³ã³ããªãã¥ãŒã·ã§ã³ã§æ¥æ¬ãTOP10å
¥ã 2026å¹Žãæ¥æ¬ã§KubeConãéå¬ããããšã決å®ïŒ æ¥æ¬ã®Cloud Nativeã³ãã¥ããã£ã®æé·ãèªç¥ãããŠããããšã宿ããŸããã æè¡ã»ãã·ã§ã³ïŒ Full Lifecycle API Management in Kubernetes With Envoy and WebAssembly ç¹ã«å°è±¡ã«æ®ã£ãã®ã¯ã Full Lifecycle API Management in Kubernetes With Envoy and WebAssembly ãšããã»ãã·ã§ã³ã§ãã ã»ãã·ã§ã³ã®æŠèŠ Kubernetesã«ãããAPI管çã®èª²é¡ã«å¯ŸããŠãEnvoyãšWebAssemblyïŒWasmïŒã掻çšãã驿°çãªã¢ãããŒãã玹ä»ãããŸããïŒ L3/L7ãããã·æ©èœã®çµ±å JWTèªèšŒãšã«ãŒãã£ã³ã°ã«ããé«åºŠãªAPIãã©ãã£ãã¯ç®¡ç eBPFãšOpenTelemetryãæŽ»çšãããªãã¶ãŒãããªãã£ã®åäž WebAssemblyãã£ã«ã¿ã®æŽ»çš è€æ°èšèªã§ã®éçºãå¯èœ ããé«éãªé
åžæé ã©ã³ã¿ã€ã ã§ã®ã»ãã¥ãªãã£ããžãã¯ã®å®è£
å®è·µçãªã㢠AuthorizationããããŒã®ãã§ãã¯æ©èœãWasmã§å®è£
èªèšŒãªãã®ãã©ãã£ãã¯ããããã¯ããä»çµã¿ã®æ§ç¯ æè¡çãªæŽå¯ ãã®ã»ãã·ã§ã³ã§ç¹ã«è峿·±ãã£ãã®ã¯ãWebAssemblyã®çšéãæ¡å€§ããŠããããšã§ããå
ã
ã¯ãã©ãŠã¶äžã§ã®ããã©ãŒãã³ã¹åäžã®ããã«éçºãããWebAssemblyããä»ããµãŒããŒãµã€ãã®ãã©ã°ã€ã³æ©æ§ãšããŠæŽ»çšããå§ããŠããŸãã åå ããŠæããããš æè¡ãã¬ã³ãã®èŠ³å¯ ã€ãã³ãå
šäœãéããŠæããæè¡ãã¬ã³ãïŒ OpenTelemetry + eBPF ïŒãªãã¶ãŒãããªãã£é¢é£ã®ã»ãã·ã§ã³ã§é »ç¹ã«èšå WebAssembly ïŒãµãŒããŒãµã€ãã§ã®æŽ»çšäºäŸãå¢å AIçµ±å ïŒåçš®ããŒã«ã«AIæ©èœãæšæºè£
å ã³ãã¥ããã£ã®å€æ§æ§ å°è±¡çã ã£ãã®ã¯ãå°éçãªå
容ããåå¿è
åããŸã§å¹
åºãã»ãã·ã§ã³ãçšæãããã©ã€ããã³ã°ããŒã¯ãããã«ãã£ã¹ã«ãã·ã§ã³ã§ã¯å°é以å€ã®è©±é¡ïŒã³ãã¥ããã£ã§ã®åéäœããã³ã³ããªãã¥ãŒã·ã§ã³ã®ã¢ãããŒã·ã§ã³ãªã©ïŒãèªãããŠããããšã§ãã åå ã®ããŒãã«ãé«ãã€ã¡ãŒãžããããŸããããå®éã¯è·çš®ããšã³ãžãã¢ã®ã¬ãã«ãåããã誰ã§ã楜ãããã€ãã³ãã§ãããšæããŸããã èšèªã®å£ãšå¯Ÿç Keynoteãã»ãã·ã§ã³ã¯å
šãŠè±èªã§è¡ããããããè±èªãèŠæãªæ¹ã«ã¯å°ãããŒãã«ãé«ããããããŸããã ç§ããšã£ã察çã¯ãGoogle Meetã®ãã€ã¯ã§ã¹ããŒã«ãŒã®é³å£°ãæŸããGeminiã«è°äºé²ãäœæããŠããã£ãŠå
å®¹ãææ¡ããããšã§ããã Google Docsã®é³å£°å
¥åã¯éäžã§é³å£°ãéåãããšå
¥åãã¹ãããããŠããŸã£ãããAppStoreã«å
¬éãããŠãã幟ã€ãã®é³å£°ã®æžãèµ·ããã¢ããªã¯ææã§ããã«æéå¶éããã£ããããã®ã§ãè²ã
詊è¡é¯èª€ããçµæããã®æ¹æ³ãäžçªè¯ãã£ããšæããŸããã ãŸããåå ãã仲éãšã»ãã·ã§ã³ã®å
容ãå
±æãåãããšã§ãçè§£ãæ·±ããŠããŸããã å¹ççãªåå ã®ã³ã åäžæé垯ã«è€æ°ã®ã»ãã·ã§ã³ãéå¬ããããããç§ã¯èå³ã®ããã»ãã·ã§ã³ãçµã£ãŠåå ããŸããããè€æ°äººã§åå ããå Žåã¯ããå¹ççãªç«ã¡åããã§ãããšæããŸããïŒ æåãããŠç°ãªãã»ãã·ã§ã³ã«åå Coffee Breakã§æ
å ±äº€æãããããäºãã«ã»ãã·ã§ã³å
容ã®ã¡ã¢ãå
±æ ããŸãïŒEnvoy + Wasmãã£ã«ã¿ã®å®è£
ãšããŒã«ã«ç°å¢ã®ã㢠KubeConã§ç޹ä»ãããEnvoyãšWebAssemblyã«ããAPI管çã®æè¡ã«ã€ããŠããæ·±ãçè§£ãããããå®éã«Envoyãæ¡åŒµããGolang補ã®Wasmãã£ã«ã¿ãå®è£
ããããŒã«ã«ç°å¢äžã§åäœç¢ºèªãè¡ããŸããã å®è£
ã®è©³çްããœãŒã¹ã³ãŒãã¯ã GitHub ã§å
¬éããŠããŸãã ãã¢ã®æŠèŠ ãã®ãã¢ã§ã¯ãBearer ããŒã¯ã³èªèšŒãè¡ãWasmãã£ã«ã¿ãå®è£
ãã以äžã®æ©èœãåããŠããŸãïŒ Bearer ããŒã¯ã³ã«ããèªèšŒæ©èœ /health ãšã³ããã€ã³ãã®èªèšŒã¹ããã èªèšŒæåæã®ã«ã¹ã¿ã ããããŒè¿œå èªèšŒå€±ææã®JSONãšã©ãŒã¬ã¹ãã³ã¹ å®è£
ã®ãã€ã³ã 1. äœ¿çšæè¡ã»ããŒã« Envoy : v1.34-latest以é Go : 1.24以é (wasip1/wasm target) proxy-wasm/proxy-wasm-go-sdk : Wasm plugin development SDK for Envoy 2. ã·ã³ãã«ãªèªèšŒããžã㯠package main import ( "github.com/proxy-wasm/proxy-wasm-go-sdk/proxywasm" "github.com/proxy-wasm/proxy-wasm-go-sdk/proxywasm/types" ) func main() {} func init() { proxywasm.SetVMContext(&vmContext{}) } type vmContext struct { types.DefaultVMContext } func (*vmContext) NewPluginContext(contextID uint32) types.PluginContext { return &pluginContext{} } type pluginContext struct { types.DefaultPluginContext } func (p *pluginContext) OnPluginStart(pluginConfigurationSize int) types.OnPluginStartStatus { proxywasm.LogInfo("plugin started") return types.OnPluginStartStatusOK } func (*pluginContext) NewHttpContext(contextID uint32) types.HttpContext { return &httpAuthContext{contextID: contextID} } type httpAuthContext struct { types.DefaultHttpContext contextID uint32 } func (ctx *httpAuthContext) OnHttpRequestHeaders(numHeaders int, endOfStream bool) types.Action { // Get path path, err := proxywasm.GetHttpRequestHeader(":path") if err != nil { proxywasm.LogErrorf("failed to get path: %v", err) path = "/" } proxywasm.LogInfof("Processing request to path: %s", path) // Skip health check if IsHealthCheckPath(path) { proxywasm.LogInfo("Health check endpoint, allowing request") return types.ActionContinue } // Get Authorization header authHeader, err := proxywasm.GetHttpRequestHeader("authorization") if err != nil { authHeader = "" } // Validate token authResult := ValidateToken(authHeader) if !authResult.IsValid { proxywasm.LogWarnf("Authentication failed: %s", authResult.Reason) return ctx.denyRequest(authResult.Reason) } // Add user type header proxywasm.LogInfof("Valid %s token", authResult.UserType) proxywasm.AddHttpRequestHeader("x-auth-user", authResult.UserType) return types.ActionContinue } func (ctx *httpAuthContext) OnHttpResponseHeaders(numHeaders int, endOfStream bool) types.Action { proxywasm.AddHttpResponseHeader("x-wasm-filter", "go-auth") return types.ActionContinue } func (ctx *httpAuthContext) denyRequest(reason string) types.Action { body := CreateErrorResponse(reason) err := proxywasm.SendHttpResponse(401, [][2]string{ {"content-type", "application/json"}, {"x-wasm-filter", "go-auth"}, }, []byte(body), -1) if err != nil { proxywasm.LogErrorf("failed to send response: %v", err) } return types.ActionPause } ããŒã«ã«ç°å¢ã§ã®ã㢠Docker Composeã䜿çšããŠããŒã«ã«ç°å¢ã§åäœç¢ºèªãè¡ããããã«ããŸããïŒ Client â Envoy Proxy (Wasmãã£ã«ã¿) â Backend Service 以äžã®3ã€ã®ã·ããªãªã§åäœã確èªã§ããŸãïŒ èªèšŒæå : æ£ããBearerããŒã¯ã³ã§ã®ãªã¯ãšã¹ã èªèšŒå€±æ : ç¡å¹ãªããŒã¯ã³ã§ã®ãªã¯ãšã¹ã èªèšŒã¹ããã : ãã«ã¹ãã§ãã¯ãšã³ããã€ã³ããžã®ã¢ã¯ã»ã¹ åŠã³ãšä»åŸã®å¯èœæ§ ãã®ãã¢å®è£
ãéããŠãEnvoy Wasmãã£ã«ã¿ã®å®çšæ§ãšå€ãã®ã¡ãªããã宿ã§ããŸããïŒ Wasmãã£ã«ã¿ã®äž»èŠã¡ãªãã èšèªã®èªç±åºŠ – GoãRustãC++ãªã©æ
£ã芪ããã èšèªã§éçºã§ããæ¢åã®ããŒã«ãã§ãŒã³ã掻çšå¯èœ å®å
šæ§ – Wasmã®ãµã³ãããã¯ã¹ç°å¢ã§å®è¡ããããããEnvoyããã»ã¹ãã¯ã©ãã·ã¥ããããªã¹ã¯ãäœããã¡ã¢ãªå®å
šæ§ãä¿èšŒ ããã©ãŒãã³ã¹ – ãã€ãã£ãã³ãŒãã«è¿ãå®è¡é床ãå®çŸ é
åžãšããŒãžã§ãã³ã° – åäžã®.wasmãã¡ã€ã«ãšããŠé
åžã§ããããŒãžã§ã³ç®¡çããããã€ã¡ã³ããã€ãã©ã€ã³ãžã®çµã¿èŸŒã¿ãç°¡å ç¹ã«å®éã®ãããžã§ã¯ãã§ã¯ãæ¢åã®Go/Rustã³ãŒãããŒã¹ãããå Žåãåãèšèªã§ãããã·ã¬ã€ã€ãŒã®ããžãã¯ãå®è£
ã§ããããšã倧ããªäŸ¡å€ãšãªããŸãã èªèšŒããã°åŠçãã¡ããªã¯ã¹åéãªã©ã®ããžãã¹ããžãã¯ãçµ±äžèšèªã§ç®¡çã§ããJWTæ€èšŒãã¬ãŒãå¶éãOpenTelemetry飿ºãªã©ãããé«åºŠãªæ©èœãžã®æ¡åŒµãçŸå®çã§ãã ãŸãšã ååå ããKubeCon + CloudNativeCon 2025 Japanã¯ãæ¥æ¬ã®Cloud Nativeã³ãã¥ããã£ã®çãäžããã宿ã§ãã貎éãªäœéšãšãªããŸããã æè¡é¢ã§ã¯ãEnvoyãšWebAssemblyãæŽ»çšããAPIç®¡çææ³ãç¹ã«å°è±¡æ·±ããå®éã«Wasmãã£ã«ã¿ãå®è£
ããŠããŒã«ã«ç°å¢ã§ãã¢ãåããããšã§ãã»ãã·ã§ã³ã§åŠãã æŠå¿µãããæ·±ãçè§£ã§ããŸããããŸããOpenTelemetryãšeBPFãçµã¿åããããªãã¶ãŒãããªãã£æè¡ããWebAssemblyã®ãµãŒããŒãµã€ã掻çšãAIçµ±åã®é²å±ãªã©ãCloud Nativeæè¡ã®é²åãçŽæ¥äœæããããšãã§ããŸããã ãŸããåå åã¯æè¡çãªããŒãã«ãé«ãã€ã¡ãŒãžããããŸããããå®éã¯è·çš®ããšã³ãžãã¢ã¬ãã«ãåããæ¥œãããã€ãã³ãã§ããããšãçºèŠã§ããŸããã倿§ãªåå è
ãšã®äº€æµãäŒæ¥ããŒã¹ã§ã®ææ°æè¡ã®äœéšããé
åã ãšæããŸããã æ¥å¹Ž2026å¹Žã®æ¥æ¬éå¬ã決å®ããŠãããCloud Nativeæè¡ã«èå³ãããæ¹ã«ã¯ãã²åå ããå§ãããŸãã æ¬èšäºã§ç޹ä»ããã»ãã·ã§ã³ã®åç»ã¯ã CNCFã®å
¬åŒYouTubeãã£ã³ãã« ã§å
¬éãããŠããŸããèå³ã®ããæ¹ã¯ãã²ã芧ãã ããã
ããã«ã¡ã¯ãã¡ã«ãã€ã§æ©æ¢°åŠç¿ãšAIã®ããŒã ã®EMãããŠãã@hiroã§ãã ãã®èšäºã¯ã Merpay & Mercoin Tech Openness Month 2025 ã®21æ¥ç®ã®èšäºã§ãã ã¡ã«ã«ãªãã¡ã«ãã€ã§ã¯çæAIã®æŽ»çšãéåžžã«ç©æ¥µçã«æšé²ããŠããŸããä»åã®ãMerpayïŒMercoin Tech Openness Month 2025ãã«ãããŠããèªç¶çºççã«å€ãã®ã¡ã³ããŒãçæAIãããŒãã«éžæããŠãããããã¯äŒç€Ÿå
šäœã§ã®AI掻çšã®æ©éã®é«ãŸãã瀺ããŠãããšæããŠããŸããåŸåããAIã®åãçµã¿ã¯ãããŸããããäŒç€ŸãšããŠã®ã³ãããã¡ã³ãã®æ·±ãŸããšãšã³ãžãã¢ãå«ãã¡ã³ããŒãã¡ã®ç±éãé«ããªã£ãŠãããæ°ã
ã®ãããžã§ã¯ããçãŸããŠããŸãã ãã®èšäºã§ã¯ãã®äžãããCXOã®@naricoãšå
±ã«æšé²ããŠãããPJ-AuroraãïŒãããžã§ã¯ããªãŒãã©ïŒã«ã€ããŠå
±æããŸãã Design/Creative x AI 2024幎ã®ã¡ã«ã«ã³ã®èšäºã ãMustãããFunãã«ïŒã¡ã«ã«ãªCPOãšCXOãèªããâAI-Led Growth CompanyâãšããŠã®AI掻çšã®æªæ¥ ãã«ãæžãããŠããŸããã以åãããpj-ai-creatorããç«ã¡äžãããã¶ã€ã³é åã«ãããçæAIã®æŽ»çšã«ã€ããŠå®éšçãªåãçµã¿ãè¡ã£ãŠããŸãããPJ-Auroraã¯AI CreatorãçµãŠæ£åŒã«ç«ã¡äžãã£ããããžã§ã¯ãã§ãã PJ-Auroraã¯çæAIã®æŽ»çšãéããŠãã¡ã«ã«ãªãã¡ã«ãã€ã«ããããã®ã¥ããã®ã¢ãããŒããå€é©ããããMove Fastã«ã¢ã€ãã¢ãå®çŸããŠã客ããŸã«å±ããããšãã§ããããã«ãªãããšãç®æããŠããŸããããããšã§ã¯ç¹ã«ãã¢ã€ãã¢ããã®UIçæãè©äŸ¡ãUXã·ãã¥ã¬ãŒã·ã§ã³å·¥çšã®ããã»ã¹ã€ãããŒã·ã§ã³ã«ææŠããŠããŸãã ãšã¯ãããåºç€ã¢ãã«ã®æ§èœãæ¥æ¯ææ¯ã«æ¹åãããŠããäžãçæAIã䜿ã£ãŠéæã§ããããšã¯äœãããšããåãã®çããå€ããç¶ããŠããŸããç§ãã¡ãåžžã«åŠç¿ãç¶ããæåŸ
å€ãšã¹ã³ãŒããæŽæ°ãç¶ããå¿
èŠããããšèªèããŠããŸãã ã¢ã€ãã¢ããUIãçæãã ããã³ããããUIãçæããã¿ã¹ã¯ã¯çæAIã®çºå±ãšãšãã«æµè¡ããŠããã¿ã¹ã¯ã®äžã€ã§ãFigma瀟ã®Figma Makeãã¯ããããŸããŸãªãµãŒãã¹ãçãŸããŠããŸããã¡ã«ã«ãªã§ã¯åãµãŒãã¹ã®è©Šéšçãªå©çšããã€ã€ãAgentic WorkflowïŒè€æ°ã®AIãšãŒãžã§ã³ãã飿ºããŠäœæ¥ãé²ããä»çµã¿ïŒãæ§ç¯ããç¬èªã®UIçæããã»ã¹ãæ§ç¯ããå¶ã¿ã䞊è¡ããŠé²ããŠããŸãã ãã®ã¿ã¹ã¯ã¯æšä»ã粟床åäžãç®èŠãŸãããæ£çŽãªãšãããæçµçã«ã¯å
補ã®ã·ã¹ãã ã§ã¯ãªãå€éšã®ãµãŒãã¹ã䜿ã圢ã«ãªããããããŸããããããããã®åãçµã¿ãéããŠåŸãããç¥èŠãšè³ç£ã¯ãAIæä»£ã«ãããç«¶äºåªäœæ§ã®æºæ³ã«ãªããšèããŠããŸãã AIæä»£ã®ãã¶ã€ã³è³ç£ ããšãã°ããã¶ã€ã³ã·ã¹ãã ã¯äººéã®ãã¶ã€ããŒ/ãšã³ãžãã¢ãçè§£ãæŽ»çšããããã«äœãããŠããããšãå€ãã§ãããAIæä»£ã«ãããŠã¯ãAIãçè§£ãæŽ»çšã§ãã圢ãã§ã®è³ç£åãéèŠã«ãªã£ãŠãããšæããŸãã æ§é åããããã¶ã€ã³èšèª : ãã©ã³ãã¢ã€ãã³ãã£ãã£ããã¶ã€ã³ååãAIãè§£éå¯èœãªåœ¢ã§äœç³»å AI-Friendlyãªãã¶ã€ã³ã·ã¹ãã : ã³ã³ããŒãã³ãããã¿ãŒã³ãMCPïŒModel Context ProtocolïŒçãéããŠAIãåç
§ã»æŽ»çšã§ããç¶æ
ã«æŽå ãã¡ã€ã³ç¹åã®ç¥èããŒã¹ : ç¹æã®UXãã¿ãŒã³ããŠãŒã¶ãŒè¡åãAIãçè§£ã§ãã圢ã§èç© ãããã®è³ç£ã¯ãå€éšãµãŒãã¹ã ãã§ã¯å®çŸå°é£ãªãã¡ã«ã«ãªãããããä¿ã¡ãªããAI掻çšãé²ããããã®åºç€ãšãªããŸããä»®ã«å°æ¥çã«å€éšãµãŒãã¹ãå©çšããããšã«ãªã£ããšããŠãããããã®æ§é åãããè³ç£ã¯ä»ã®AIããŒã«ãšã®é£æºããç¬èªã®ã¯ãŒã¯ãããŒæ§ç¯ã«ãããŠäŸ¡å€ãæã¡ç¶ãããšæ³å®ããŠããŸãã äžæ¹ãåºç€ã¢ãã«ãå©çšããã ãã§é«ç²ŸåºŠã®UIçæãå¯èœã«ãªã£ãå Žåãå€éšãµãŒãã¹ãå©çšããã®ã§ã¯ãªããã¡ã«ã«ãªå
éšã®ã·ã¹ãã ãã¯ãŒã¯ãããŒã«æ¥ç¶ããããããã«ãããŠãåºç€ã¢ãã«ã®APIã䜿ã£ãå
補ã®UIçæã·ã¹ãã ãã«çå°ããå¯èœæ§ããããããããããŸããã UIçæã®å®è£
ã®æŠèŠ ããã€ãã®ã³ã³ã»ããããæ§æãããŠããŸãããããã§ã¯2ã€ã®Agentã玹ä»ããŸããAgentic Workflowã®å®è£
ã¯çŸæç¹ã§ã¯ãGoogleã®ADKïŒAgent Development KitïŒã䜿ã£ãŠããŸãã ã³ã³ã»ãããªãã¡ã€ã³Agent UIçæAgent ã³ã³ã»ãããªãã¡ã€ã³ UIçæããŒã«ã®ãŠãŒã¶ãŒãèšè¿°ããæ©èœããµãŒãã¹ã®ã¢ã€ãã¢ããUIçæAgentã«å
¥åããããã®ããŒã¿ïŒããã³ããïŒã«å€æããããã®æ©èœã§ããåºç€ã¢ãã«ã®æ§èœåäžã«ãã£ãŠç°¡åãªæç€ºã§ãããçšåºŠã®å質ã®UIãçæããŠãããããã«ãªãã€ã€ãããŸããäžæ¹ã§ãå®çŸãããããšãäœããããã®ãå¶çŽçãããèšèªåããæ§é åããããšã®äŸ¡å€ã¯å€ãããé«ããçæããããã®ã®å質ã倧ããå·Šå³ãããšæããŠããŸãã 以äžã¯å®è£
ã®ã€ã¡ãŒãžã§ãã def create_concept_refinement_agent() -> LlmAgent: """ ãŠãŒã¶ãŒã®ã³ã³ã»ããæ¡ããã©ãã·ã¥ã¢ããããããã®ã·ã³ãã«ãªLlmAgentãäœæããŸãã """ return LlmAgent( name="ConceptRefinementAgent", model="gemini-2.5-pro-preview-05-06", description="ãŠãŒã¶ãŒã®ãã¶ã€ã³ã³ã³ã»ããæ¡ãåãåãããã詳现ã§å
·äœçãªã¢ã€ãã¢ã«ãã©ãã·ã¥ã¢ãããããšãŒãžã§ã³ãã", instruction=( "ããªãã¯ãã¶ã€ã³ã³ã³ã»ãããå
·äœåã»æŽç·ŽãããAIã¢ã·ã¹ã¿ã³ãã§ãã\n" "ãŠãŒã¶ãŒããäžããããã³ã³ã»ããæ¡ãèªã¿ã**ãããå
ã«æå€§éå
·äœçã§é
åçãªã³ã³ã»ããæ¡ãçæããŠãã ããã**\n" "çæããéã¯ã以äžã®ç¹ãèæ
®ã»æšæž¬ããå
·äœçã«èšè¿°ããŠãã ãã:\n" "- **ã¿ãŒã²ãããŠãŒã¶ãŒ:** (äŸ: 20代åŸåã®ãã¯ãããžãŒã«é¢å¿ã®ããéœåžéšåšäœè
)\n" "- **解決ãã課é¡/æäŸäŸ¡å€:** (äŸ: ç
©éãªã¹ã±ãžã¥ãŒã«èª¿æŽãAIã§èªååããèªç±ãªæéãåµåºãã)\n" "- **ã³ã¢æ©èœ/äœéš:** (äŸ: èªç¶èšèªã§ã®ã€ãã³ãç»é²ãåå è
ã®éœåã®è¯ãæéãèªåææ¡ããããªäŒè°é£æº)\n" "- **å·®å¥åèŠå :** (äŸ: æ¥çç¹åã®ãã³ãã¬ãŒããç¬èªã®ã¬ã³ã¡ã³ããŒã·ã§ã³ãšã³ãžã³)\n" "- **é°å²æ°ã»ãã³ãã:** (äŸ: ãããã«ã§æŽç·Žããããã¶ã€ã³ãçŽæçã§ã¹ã ãŒãºãªæäœæ)\n" "- **å
·äœçãªUIæ§é :** (äŸ: ã€ãã³ãç»é²ããããã®ãã©ãŒã ãåå è
ã®éœåã®è¯ãæéãææ¡ããã«ã¬ã³ããŒ)\n" "**ãŠãŒã¶ãŒã«è³ªåãè¿ããªãã§ãã ããã\n" "**äžããããæ
å ±ããã³ã³ã»ããæ¡ãæ§ç¯ãã宿ããã³ã³ã»ããæ¡ã®ããã¹ãã®ã¿ãè¿ããŠãã ããã\n" "**å眮ããæšæ¶ã説æã¯äžèŠã§ãã" ), tools=[], sub_agents=[], ) UIçæ ä»¥äžãããã³ãããããšã«HTMLã§UIãçæããAgentã®ãµã³ãã«ã³ãŒãã§ãã æ¢åºã®ã»ã¯ã·ã§ã³ã«ãæžããŸãããUIçæã¯ããŸããŸãªãµãŒãã¹ãçãŸããŠããã矀é岿 ã§ããåè¿°ã®éãæçµçã«å
補ã®AI Agentãããã«äœã蟌ãã§ãããã©ããã¯ããããŸãããäžæ¹ãçæããžãã¯ä»¥å€ã®èŠçŽ ãäŸãã°èªç€Ÿã®ãã¶ã€ã³ã·ã¹ãã ãAIããReadableãªç¶æ
ã«ããããšããã¶ã€ã³ã®ã¢ã€ãã³ãã£ãã£ãã³ã³ã»ãããèšèªåã»æ§é åããããšãAIãåæãšããã¢ããªå¶äœã®ã¯ãŒã¯ãããŒãçºæããããšçã¯ãçµç¹ã®è³ç£ã§ãããç¬èªæ§ã§ãããå·®å¥åèŠå ã«ãªãããç¹ã ãšæ³åããŠããŸãã def create_page_generate_agent_v0_3(model_name: str) -> LlmAgent: """HTMLçæãšãŒãžã§ã³ããæ§ç¯ããŸãã""" mcp_toolset = get_ds_mcp_tools() html_generation_agent = LlmAgent( model=model_name, instruction=""" ãŠãŒã¶ãŒã®ã¢ã€ãã¢ãåºã«ãã¶ã€ã³ãæ°èŠçæããŠãã ããã ç¹ã«æç€ºãããªãéãã¯ã¹ããã¢ããªã®ãã¶ã€ã³ãçæããŠãã ããã ã¡ã«ã«ãªã®ãã¶ã€ã³ã·ã¹ãã ã«å³å¯ã«åŸã£ãé«å質ãªHTMLãçæããããã以äžã®ã¹ããããé å®ããŠãã ããã **ã¹ããã1: ãã¶ã€ã³ã·ã¹ãã åç
§ç»åã®ç¢ºèª** ã¡ã«ã«ãªã®ãã¶ã€ã³ã·ã¹ãã ã«æºæ ãã衚çŸãè¡ããããé¢é£ããã³ã³ããŒãã³ãããã¿ãŒã³ã®åç
§ç»åãå¿
ã確èªããŠãã ããã - `mcp_get_ds_master_image_map` ããŒã«ãåŒã³åºããå©çšå¯èœãªDS Master Imageã®ã«ããŽãªãšç»åã®ãªã¹ããååŸããŸãã - ãŠãŒã¶ãŒã®èŠæ±ãçæããç»é¢ã®ã³ã³ããã¹ãã«åèŽããç»åãããã°ããã®ç»åã® `category` ãš `filename` ãåŒæ°ãšã㊠`mcp_get_ds_master_image_details` ããŒã«ãåŒã³åºãã詳现ãªèª¬æãšç»åURLãååŸããŸãã - ååŸããç»åURLã¯ãå¿
ã `download_and_save_image_as_artifact` ããŒã«ã䜿çšããŠãã®å
容ãã·ã¹ãã ã«èªã¿èŸŒãŸããå®éã«ç»åã確èªããŠãã ããã - ãããã®åç
§ç»åãååã«ç¢ºèªããã¹ã¿ã€ã«ãã¬ã€ã¢ãŠããã€ã³ã¿ã©ã¯ã·ã§ã³ãªã©ãã¡ã«ã«ãªã®ãã¶ã€ã³ã·ã¹ãã ã«æ²¿ã£ãŠãããã確èªããäžã§ãHTMLçæã«æŽ»ãããŠãã ããã **ã¹ããã2: ã¢ã€ã³ã³ã»ããŽçŽ æã®å©çš** ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããæ±çšçãªã¢ã€ã³ã³ãããŽã¯ãå¿
ã `mcp_get_image_asset_map` ããŒã«ã䜿çšããŠç»åã¢ã»ããã®URLãªã¹ããååŸããããããé©åãªãã®ãéžæããŠHTMLã«åã蟌ãã§ãã ããã **ã¹ããã3: HTMLçæãšåºå** äžèšã®ã¹ãããã§åŸãããæ
å ±ãšã以äžã®ãåºæ¬ãã¶ã€ã³æ
å ±ããç·åçã«å€æããHTMLãçæããŸãã - **åºå圢åŒ:** çŽç²ãªHTMLã³ãŒãã®ã¿ãåºåããä»ã®èª¬æãã³ãŒããããã¯ã¯å«ããªããå®å
šãª HTML ã³ãŒãã®ã¿ãåºåããŠãã ããã説æã ```html ... ``` ã¯äžèŠã§ãã - **åäžãã¡ã€ã«:** CSS/JavaScriptã¯å€éšåç
§ããã`<style>`ã¿ã°ã`<script>`ã¿ã°ã§å
éšã«åã蟌ãã ãã¬ãŒã¹ãã«ããŒç»å ãŠãŒã¶ãŒã¢ã€ã³ã³ãååç»åã®ãã¬ãŒã¹ãã«ããŒãå¿
èŠãªå Žåã¯ã`get_random_sample_image_url` ããŒã«ã䜿ã£ãŠãã ããã **ç»åã®URLãmcpãããŒã«ã§ååŸããå ŽåïŒ** 1. mcpãããŒã«ããååŸããURLã®ç»åãåŠçããå¿
èŠãããå Žå (äŸ: ç»åã®å
容ã説æãããç»åããæ
å ±ãæœåºãããç»åã«åºã¥ããŠäœããçæãã)ããŸã `download_and_save_image_as_artifact` ããŒã«ã䜿çšããŠç»åãååŸããã·ã¹ãã ã«ä¿åããŠãã ããã 2. ãã®ããŒã«ãå®è¡ãããšãã·ã¹ãã ãèªåçã«ç»åãèªã¿èŸŒã¿ãããªãããã®å
容ãçè§£ã§ããããã«ãªããŸãã 3. ããç»åURLãžã®ã¢ã¯ã»ã¹ã«MCPã®èªèšŒãå¿
èŠã ãšå€æãããå Žåã¯ãããŒã«ã® `use_mcp_auth` åŒæ°ã `True` ã«èšå®ããŠãã ããããã以å€ã®å Žå㯠`False` ã«èšå®ããŠãã ããã """, name="HtmlGeneratorAgent", description="Generates a single HTML page based on user idea.", output_key="generated_html", tools=[ get_random_sample_image_url, check_link_status, download_and_save_image_as_artifact, mcp_toolset, ], before_model_callback=before_model_load_artifact, ) return html_generation_agent UI/UXè©äŸ¡ã®åãçµã¿ 以äžã¯UIãçæããä»çµã¿ã®äžç«¯ã§ããã䞊è¡ããŠãçæããããã®ãUI/UXã®èгç¹ã§è©äŸ¡ããä»çµã¿ã®æ§ç¯ã«ãåãçµã¿ã¯ãããŠããŸããå質è©äŸ¡èгç¹ãå®ããä»®æ³çãªãã«ãœããçæããèªåçæãããUIã«ãã£ãŒãããã¯ãããŸãã éçãªç»é¢ã®è©äŸ¡ã«å ããŠãBrowser UseçãçšããŠç»é¢æäœãããã€ã€ããã£ãŒãããã¯ãç²åŸããŠããä»çµã¿ã§ããå
šäœã®ã€ã¡ãŒãžãšããŠã¯ãAmazon瀟ã®ã UXAgent: An LLM Agent-Based Usability Testing Framework for Web Design ãã®ãããªæ§æã§ãAIã«ããUXè©äŸ¡ã®æŠå¿µå®èšŒã«çæããŠãããçŽåŸæ§ã®é«ããã£ãŒãããã¯ãåŸãããã±ãŒã¹ã確èªã§ããŠããŸãã UIçæã«ã€ããŠã¯å
補ã®ããã³ããšã³ããããã®ã§ãããUI/UXè©äŸ¡ã«é¢ããŠã¯Cursorçã®ãšãŒãžã§ã³ãã䜿ããªããå°ããéå§ããŠããŸããæçšæ§ã確èªã§ããããã©ãããå®è£
ã§ããã¹ãããã¢ããªéçºã®ã¯ãŒã¯ãããŒã®äžã§ã©ã䜿ã£ãŠããã®ãæå¹ããæ€èšããŠãããããšèããŠããŸãã ãããã« PJ-Auroraã®åãçµã¿ãéããŠãçæAIã®å¯èœæ§ãšèª²é¡ã®äž¡é¢ã宿ããŠããŸããæè¡ã®é²æ©ã¯ç®èŠãŸãããUIçæã®ç²ŸåºŠã¯æ¥ã
åäžããŠããŸãããåæã«ãäœãäœããããã©ãäœããããç§ãã¡ã®ä»äºã®ä»æ¹ã¯ã©ãå€ãããããšããæ¬è³ªçãªåãã«åãåãããšãããéèŠã«ãªã£ãŠããŠãããšæããŸãã ã¡ã«ã«ãªã§ã¯åŒãç¶ããã客ããŸã«ããè¯ããµãŒãã¹ãšäœéšãæäŸããããã«ãæ°ããæè¡ãšåãåããªããéçºãããŠããŸããçæAIãšããæ°ããéå
·ã䜿ãããªãããã«ãç§ãã¡èªèº«ãåŠã³ç¶ããŠãããŸãã
ããã«ã¡ã¯ãã¡ã«ã〠Payment & Customer Platform Manager of Managers ã® @abcdefuji ã§ãã ãã®èšäºã¯ã Merpay & Mercoin Tech Openness Month 2025 ã®19æ¥ç®ã®èšäºã§ãã èŠæš 2024幎æ«ãã2025幎6æã®å幎éã§ãã¡ã«ã«ãªã§ã¯AIããŒã«ã®å°å
¥ã«ãããŠåçãªå€åãéããŸãããæ°ååããå§ãŸã£ããã€ããããããžã§ã¯ãããããã4ã¶æã§1,100ã¢ã«ãŠã³ããè¶
ããå
šç€ŸèŠæš¡ã®å°å
¥ã«æåããŸããããšã³ãžãã¢ã®9å²ä»¥äžãAIã³ãŒãã£ã³ã°ã¢ã·ã¹ããæŽ»çšããçµç¹ãžãšå€è²ããŠããŸãã ãã®èšäºã§ã¯ããšã³ãžãã¢ãªã³ã°ãããŒãžã£ãŒã®èŠç¹ãããçµç¹å€é©ã®æåèŠå ãåæããæè¡è² åµè§£æ¶ãžã®æ°ããã¢ãããŒããå人ã®éçºäœéšã®å€åã«ã€ããŠç޹ä»ããŸããç¹ã«ããããããŠã³ã®ããžã§ã³ãããã ã¢ããã®èªçºæ§ãç°å¢æŽåããããŠå¯èŠåã«ããæšé²åã®4ã€ã®èŠçŽ ãã©ã®ããã«çµã¿åããã£ãŠå€é©ãå®çŸãããã詳ãã解説ããŸãã å§ãŸãã¯äžã€ã®ãªã¯ãšã¹ããã 2024幎æ«ã®ç¶æ³ å
šãŠã®å§ãŸãã¯ãååããã®ãCursorã䜿ã£ãŠã¿ããã®ã§ãããå°å
¥å¯èœã§ããããïŒããšããã·ã³ãã«ãªãªã¯ãšã¹ãã§ããã åœæã®ã¡ã«ã«ãªã«ã¯ãæ¢ã«AI Code AssistsããŒã«ãšããŠGitHub Copilotãå°å
¥ãããŠããŸããããå®éã®å©çšç¶æ³ã¯ä»¥äžã®éãã§ããïŒ äžéšã®ã¢ãŒãªãŒã¢ããã¿ãŒã§ããæ°ååã100åïŒweekly active userïŒèŠæš¡ã§å©çšãããŠãã ããããå€ãã®ãšã³ãžãã¢ãããŸã 䜿ãã«ã¯æ©ãããšæããŠããç¶æ³ é«åºŠãªã³ã³ããã¹ãçè§£ãäžååã§ãåäžãã¡ã€ã«ãè¡åäœã®ä¿®æ£ææ¡ãäž»æµ ãããžã§ã¯ãå
šäœãçè§£ããææ¡ã«ã¯è³ãããAIã¢ãŠããããã®è³ªããããã¯ã·ã§ã³éçºã«é©å¿ã§ããŠããªãç¶æ³ æ£çŽãç§èªèº«ãGithub Copilotã䜿ã£ãŠããŸããããéçºã®çŸå Žã§æ¬æ Œçã«AIãæŽ»çšããã¬ãã«ã«ã¯çšé ããšæããŠããŸããã 転æç¹ïŒ2025幎2æã®æ¿èª Cursorã¯2024/04ã07é ã«äžåºŠæ€èšãããŸããããåœæã¯å°å
¥ã®å€æã«ã¯è³ããŸããã§ããã ãããã2025幎2æãäŒç€ŸãšããŠæ¬æ ŒçãªAIå°å
¥ã®æ¿èªãäžããŸãããæ°ååã®ãã€ããããããžã§ã¯ããšããŠCursorå°å
¥ãã¹ã¿ãŒãããŸããã åããŠCursorãè§Šã£ãæã®æåã¯ä»ã§ãé®®æã«èŠããŠããŸããç¹ã«å°è±¡çã ã£ãã®ã¯ãCursorã®ãã³ãŒãã®ã€ã³ããã¯ã¹åãæ©èœã§ããïŒ ãããžã§ã¯ãå
šäœã®ã³ã³ããã¹ãçè§£ æ¢åã®ãã¿ãŒã³ãåŠç¿ããæèã«æ²¿ã£ãææ¡ å€§èŠæš¡ãªããžããªã§ã®ã³ãŒãçè§£ã¹ããŒãã®åäž ãŸã æ°äžè¡ãè¶
ãã巚倧ãªãªããžããªã§ã¯äžå®å®ããäžæãæ©èœããªãå Žé¢ããããŸããããäž»ã«ãªã³ããŒãã£ã³ã°ã®åŽé¢ã§ã¹ããŒããçéã«ãªããŸããããããŒãžã£ãŒã§ããèªåã¯ã³ãŒããžã®ã³ãããæ©äŒãæžãã€ã€ãããŸããããCursorã䜿ã£ãŠã©ã®æ©èœãã©ã®ããã«å®è£
ãããŠãããéåžžã«å®¹æã«ç¹å®ã§ããããã«ãªããŸããã ççºçæ®åã®4ã¶æé é©ç°çãªæé· 2æãã6æçŸåšãŸã§ã®æ°åãèŠããšããã®å€åã®å€§ãããåãããŸãïŒ (å³: Cursor Usage Summary) ã¢ã«ãŠã³ãæ° ïŒæ°åå â 1,100ã¢ã«ãŠã³ãè¶
ãšã³ãžãã¢å©çšç ïŒ9å²ä»¥äžãäœããã®AIã³ãŒãã£ã³ã°ã¢ã·ã¹ããæŽ»çšïŒCursor以å€ã«ãJetBrains AIãGoogle Code AssistãClaude Codeãªã©ïŒ æ®åç¯å² ïŒãšã³ãžãã¢ããPdMããã¶ã€ããŒãŸã§æ¡å€§ 瀟å
ã®ç±éã®å€å æ°å以äžã«é©ããã®ã¯ãç±éãã§ããã3æãã5æã®éã瀟å
ã§èµ·ãã£ãŠããããšã¯ä»¥äžã®éãã§ãïŒ æ¯é±è€æ°ã®AIé¢é£ã€ãã³ãã瀟å
ã§éå¬ äžã€ã®ã€ãã³ãã«100å以äžã®åå è
ãããã±ãŒã¹ã ãšã³ãžãã¢ã ãã§ã¯ãªããPdMãªã©ã®å¥è·çš®ãžã®åºãã 瀟å
ã®ãªãã©ã€ã³ãSlackäžã§èãããäŒè©±ãAIäžè²ã«æãŸã£ãŠãããŸããã (å³: 瀟å
AIéçºæ¯æŽããŒã«ã«ã€ããŠèªããäŒç») ãé£ã®ããŒã ã§Cursorã®å匷äŒãããããã ãä»åºŠMCPã«ã€ããŠè©±ãã€ãã³ããããŸãã ãAIã§ââãæ¥œã«ããŸããã ãšã³ãžãã¢ããå§ãŸã£ãæ³¢ã¯ãããŸããŸãªè·çš®ã®äººãã¡ã«ãåºãã£ãŠãããŸããããããŒãžã£ãŒãšããŠããã®èªçºçãªåŠç¿ææ¬²ã®é«ãŸããç®ã®åœããã«ã§ããã®ã¯æ¬åœã«æåçã§ããã æåã®4ã€ã®èŠå ãã®ççºçãªæ®åãæ¯ãè¿ããšã4ã€ã®èŠå ãçµ¶åŠã«çµã¿åããã£ãŠããããšãåãããŸãã 1. ãããããŠã³ã®æç¢ºãªæå¿ çµå¶å±€ããã®ãAIãæŽ»çšããŠããããšããã¡ãã»ãŒãžã¯ãåãªãæšå¥šã§ã¯ãããŸããã§ãããäŒç€Ÿã®æªæ¥ãžã®æè³ã§ãããæç¢ºãªããžã§ã³ã®è¡šæã§ãããããããæ¬æ°ã ãããããçŸå Žãæ¬æ°ã«ãªããããã®åå°ããã£ããããããåŸã«ç¶ãå€åãå¯èœã«ãªã£ãã®ã§ãã ãããŠãããæšé²ãããªãŒããŒãããŸãããç§ã¯Cursorå°å
¥ãæ
åœããŸããããCursorã ãã§ã¯ãªãããšã³ãžãã¢è·çš®ãè¶
ããŠçæAIãå°å
¥ããéåžžã«åŒ·ããªãŒããŒã·ããã瀟å
ã«ã¢ã¡ã³ã¿ã ãçã¿åºããŸããã 2. ããã ã¢ããã®èªçºçãªæ
ç± ãããããŠã³ãçã¿åºããã¢ã¡ã³ã¿ã ãããã«å éã»ç¶ç¶ãããã®ã¯ãMove Fastãªäººãã¡ãã®ååšã§ãããéåžžãçµç¹å€é©ã§ã¯æšé²åœ¹ãåããŒã ã«é
眮ããèšç»ãç«ãŠãããŒãããããäœæããŸãããä»åã®Cursorã«é¢ããŠã¯ä»¥äžã®ãããªå£°ãããã¡ãã¡ããèªç¶çºççã«çãŸããŸããïŒ äŸãšã㊠ã¡ã«ã«ãªã¢ãã€ã«ã®AI Hackathon PCP LLM Week ã¢ãŒãªãŒã¢ããã¿ãŒããããææŠããæåãããããããŠäœãããåŠãã ããšãå
±æãããã人ãã¡ãããããšã«ããæšé²ã倧ããå éããŸããã 3. ç°å¢ã®æŽå ãã®ã¢ã¡ã³ã¿ã ã®ç¶æã«ã¯ç°å¢æŽåãæ¯ããŠãããããŒã ã倧ããªèŠå ã§ããCursorã ãã§ã¯ãªãããŸããŸãªAIããŒã«ãç»å Žãã瀟å
ã§å©çšããã声ãå€ãäžãããŸãããCursorããããŸã§ã®äººæ°èŠæš¡ãå©çšã§ããç¶æ
ã«ããããã«ç€Ÿå
ã®ããã»ã¹æŽåãè¡ãããŸãããã¯ã³ãã¿ã³ã§ã¢ã«ãŠã³ãç³è«ã§ããä»çµã¿ããæ°èŠããŒã«å°å
¥æã®ã»ãã¥ãªãã£ã¬ãã¥ãŒã»äºç®ã¬ãã¥ãŒãªã©ã®ããŸããŸãªããã»ã¹ããäžäœãšãªã£ãŠç°å¢æŽåãããŠãããŸããã Cursorã«ãããŠã¯ãSlackããç°¡åã«ã¢ã«ãŠã³ãçºè¡ãŸã§ã§ããããã«èª¿æŽããŠããã ããŸããã (å³: Cursorã¢ã«ãŠã³ãçºè¡ã¢ããŠã³ã¹ã¡ãã»ãŒãž) 4. å¯èŠåãšããè§Šåª æåŸã®èŠçŽ ã¯ããããã·ã¥ããŒããã«ããå¯èŠåã§ãã (å³: Cursor Dashboardn) (å³: Devin Dashboard) Cursorãã¯ããDevinãClaude Code with LiteLLMãGitHub Copilotã®ããã·ã¥ããŒããçšæããããŒã ãã©ã®ãããAIã䜿ã£ãŠããããå¯èŠåããŸãããããã«ããã䜿ãããªããŠããããŒã ãšãŸã å©çšé »åºŠãé«ããªãããŒã ãææ¡ããããããã®èæ¯ãæ·±æãããŠããããšã§ããããªã浞éã®ããã®ã¢ã¯ã·ã§ã³å®çŸ©ã«ã€ãªããŸããã å¯èŠåã«ããç«¶äºã§ã¯ãªãããè§ŠçºããçãŸããŸãããååã®æŽ»çšæ¹æ³ãèŠãŠåŠã³ãèªåãªãã®äœ¿ãæ¹ãçºèŠããããããªããžãã£ããªãµã€ã¯ã«ãäŒç€Ÿå
šäœã«åºãããŸããã ããŒã ã¬ãã«ã®éçºã«ãããå€é© ããããã¯çµç¹ã§ã¯ãªã1ããŒã ã®éçºç¶æ³ã®å€åã«é¢ããŠè©±ããŸãã æè¡è² åµãžã®æ°ããã¢ãããŒã AIã®å°å
¥ãé²ãäžã§ãç§ãã¡ã®ããŒã ã«äºæ³å€ã®å€åãèµ·ãããŸããã ç§ãã¡Payment & Customer PlatformããŒã ã¯ããªãªãŒã¹ãã6幎以äžãçµã€ã·ã¹ãã ã§ãã6幎éãããŸããŸãªãããã¯ãããŒã ããã®èŠæ±ã«å¿ããæ©èœã远å ããæã«ã¯åŠ¥åããªããæé·ãç¶ããŠããŸããããã®çµæãæè¡è² åµãèç©ãããŠããŸããïŒ åŸæ¥ã®èª²é¡ïŒ yak shavingç¶æ
ïŒç©ã¿éãªã£ãå®è£
ã»è€éãªä»æ§ã«ãããäžã€ã®å°ããªæ¹åã«å€§ããªã³ã¹ãã䌎ãèª²é¡ æ¹åç³»ã®ã¿ã¹ã¯ã®åªå
床ãäœããæéã確ä¿ã§ããæŸçœ®ãããèª²é¡ AIïŒCursor / Claude CodeïŒã«ããå€é©ïŒ å€§èŠæš¡ãªå
éšãªãã¡ã¯ã¿ãªã³ã°ã»ãªã¢ãŒããã¯ãã£ã®ãããªåªå
床ãäœãèšå®ãããããã¿ã¹ã¯ã®è§£æ¶ã¹ããŒããåäž ã«ãŒã«ã»ã³ã³ããã¹ãã®å
±æã«ããäžè²«æ§ã®ããä¿®æ£ãå¯èœ ãããŸã§ããã€ãããããã§çµãã£ãŠããŸããã¡ã ã£ãå€§èŠæš¡ãªæ¹ä¿®ãããžã§ã¯ãã«ã以åãããç¶ç¶çãã€çŽ æ©ãæè¡è² åµè§£æ¶ã§ããå¯èœæ§ãåºãŠãããšæããŠããŸãã ä»åŸãžã®å±æ ãããªã掻çšé åã®æ¡å€§ – éçºã ãã§ã¯ãªããéçºããã»ã¹å
šäœã§AIãæŽ»çšããŠããä»çµã¿äœãïŒ One Person, One Release ïŒ PMãEngineerãå£ãè¶ããŠãããŸããäžäººã®äººãäŒç»ããéçºãQAããªãªãŒã¹ãŸã§äžæ°é貫ã§åºæ¥ãããšãç®æããŸãã æè¡ã®å£ãè¶ãããã¡ã€ã³ç¥èãè¶ãã圹å²ãè¶ããŠè¡ãããã®AIã®æŽ»çšãšãããããã䜿ãçãã®ã§ãã æšæºå – å人ãããŒã ã®ç¥èŠãéçºææ³ã®æšªå±éããŠããä»çµã¿ã¥ãã äŸãã°ãCLAUDE.mdãã©ã®ããã«äœæããã©ã®ãããªã«ãŒã«ãèšèŒããŠããããã©ã®ããã«ãã¡ã€ã³ã衚çŸããŠããããããŒã ã«ãã£ãŠç¬èªã«é²åãé²ãã§ããŸããããããã®ããŒã ãAIã«ãã£ãŠãããªãçç£æ§ãåŸãããã«ãå°å
¥ãå©çšã®ããã»ã¹èªäœã®æšæºåãè¡ããããšèããŠããŸãã ãã®AIãã¬ã³ãã®ã¹ããŒãã®äžã§ãããŸããŸãªææ³ãå³åº§ã«å€ããªã£ãŠãããšæããŸããå€ããªã£ããã®ãå³åº§ã«æšãŠå»ãèŠæãæã¡ã€ã€ãAIãæŽ»çšãçç£æ§ãåäžãããŠããæªæ¥ãžã®éã®ããäœãå§ããŠããŸãã ãŸãšã ãã®å幎éã§ãã¡ã«ã«ãªã¯AIããŒã«ã®å°å
¥ã«ãããŠä»¥äžãå®çŸããŸããïŒ çµç¹çãªæå ïŒ1,100ã¢ã«ãŠã³ããè¶
ãããŠãŒã¶ãŒãžã®Cursorå°å
¥ æåçãªæå ïŒèªçºçãªåŠç¿ã»æ®åæåã®éžæ æåã®éµã¯ããããããŠã³ã®ããžã§ã³ãããã ã¢ããã®èªçºæ§ãç°å¢æŽåããããŠå¯èŠåã«ããæšé²åã®çµã¿åããã«ãããŸãããAIæä»£ã®çµç¹å€é©ã«ãããŠãæè¡å°å
¥ã ãã§ãªããæåãšäººã®å€é©ãéèŠã§ããããšãæ¹ããŠå®æããŠããŸãã æåŸã« ãã®ç®ãŸããããå€åã«æ¥œããåãåããŠããã®ã¯ãåšãã®ååãã¡ã®ååšã§ãã æ¯æ¥ã®ããã«æ°ããããŒã«ãéçºäœå¶ããŠãŒã¹ã±ãŒã¹ãªã©ã®ã€ã³ããããšã¢ãŠããããããæ©äŒã«æº¢ããŠãããAIé¢é£ã®æ
å ±äº€æã¯çŽç²ã«æ¥œããåºæ¿çã§ããããã®ãéåç¥ãã§AIã«å¯ŸããŠååãã«æããŠããŸãã 以äžãããããšãããããŸããã ææ¥ã®èšäºã¯ cyanããã§ããåŒãç¶ããæ¥œãã¿ãã ããã
Design System ããŒã ã® engineering manager ãããŠãã vwxyutarooo ã§ãã ç§éã¯ã¡ã«ã«ãªã®ã¢ããªã»ãŠã§ãéçºã«å©çšããŠãã Design System ããã«ãªãã¥ãŒã¢ã«ããŸããã ãã®èšäºã§ Design System ã«æ±ããŠããåé¡ãšãããã©ã®ããã«è§£æ±ºããããšããŠããã®ãããã®ã³ã³ã»ããã玹ä»ããŠãããŸãã æ¢åã® Design System ã«æ±ããŠããèª²é¡ æ¢åã® Design System ã¯ç€Ÿå
ã§ 3.0 ãšåŒã°ããŠããã GroundUp ãšåŒã°ããã¡ã«ã«ãªã®ã¢ããªãšãŠã§ããå·æ°ãããããžã§ã¯ãã®äžéšãšããŠ2020幎é ãããã¶ã€ã³ã»éçºãå§ãŸããŸããã 3.0 ãšèããšéåé²ãã§ããããã«èŠããŸãããæ§ã
ãªéçºèæ¯ã«ããç¹å®ãã©ãããã©ãŒã ã察象ã«ãããã®ããæ¥ã®ç®ã济ã³ãããšã®ãªãã£ãéå»ã®ããŒãžã§ã³ãªã©ãå«ãŸããŠãããå®è³ª 3.0 ãå
šç€Ÿçã«åãçµãã§éçºãããæåã® Design System v1 ãšãªã£ãŠããèæ¯ããããŸãã ãããã 5 幎ã®éçšæéãçµãŠã3.0 ã§äœãããã³ã³ããŒãã³ãã¯åœåã®å©çšæ³å®ã±ãŒã¹ã倧ããè¶
ããç¶æ³ã«å¯ŸåŠããå Žé¢ãå€ãèŠãããããã«ãªããŸããããã®çµæã倿°ã®æ°èŠæ©èœéçºã§ Design System ã®ã³ã³ããŒãã³ãã§ã¯è¡šçŸã§ãããã·ã³ãã«ããã£ã¿ããããŠå€æŽãå ããã³ã³ããŒãã³ãã瀟å
ã§ã«ã¹ã¿ã ã³ã³ããŒãã³ããšåŒãã§ããéå
¬åŒã®ã³ã³ããŒãã³ãã倿°äœæãããäºæ
ã«é¥ã£ãŠããŸããã ãªããã®ãããªããšãèµ·ãã£ããããItemObject ãšåŒã°ããŠããã³ã³ããŒãã³ãã®äŸãçšããªããç°¡åã«è§£èª¬ããŸãã ããã¯è€æ°ã®ã¹ã¯ãªãŒã³ã§é »ç¹ã«äœ¿çšãããã³ã³ããŒãã³ãã§ãã3.0éçºæã¯å
±éãšæãããããŒãã ã£ãããåäžã®ã³ã³ããŒãã³ããšããŠåãåºãããããã€ãã®ãŠããŒã¯ãªèŠçŽ ãããããã£ã«ãã£ãŠè¡šç€ºã»é衚瀺ãåãæ¿ããããšã§å¯Ÿå¿ããŠããŸããã瀟å
ã§ã¯ããã polymorphic API ãšåŒãã§ããŸãã ããã 3.0 ãªãªãŒã¹åŸã®ç¶ç¶ããæ©èœéçºã«ããå¿
èŠãªèŠçŽ ã¯å¢ãç¶ããå¿
èŠãšããã衚瀺ãã¿ãŒã³ã¯å¢ãç¶ããŸããã ãã®æ¹åŒã®é£ãããšããã¯åå¥ã® UI æé©ãé²ãã»ã©èæ
®ãã¹ãçµã¿åãããã¿ãŒã³ãåã«å¢ããŠããç¹ã§ããããã«ãç¹å®ã®èŠçŽ A ã衚瀺ãããŠãããšãã«åºçŸããèŠçŽ B or C ã®ããã«æ§é ãæ·±ããªã£ãŠãããè€éããå¢ããŠãããŸããç§éã¯ãã®æ§é ãã³ã³ããŒãã³ãã® Polymorphic API ãšå®çŸ©ãé¿ããã¹ãã³ã³ããŒãã³ããã¶ã€ã³ãšèããŠããŸãã ãã®ç¶æ³ãæéãããããã³ã³ããŒãã³ãã®å®çŸ©ãå·æ°ãç°ãªãã³ã³ã»ããã§ Design System ã4.0ãšããŠåæ§ç¯ããããšã«ããŸããã Atomic Design Methodology æ°ããã³ã³ããŒãã³ãã®èšèšæéãšã㊠Atomic Design ãæ¡çšããããšã«ããŸãããå€ãããååšããæŠå¿µã§ã2013幎㫠Brad Frost ã«ãã£ãŠãã®ã¢ã€ãã£ã¢ãåããŠæå±ããããã®ã§ãã Atomic Design – Brad Frost Atomic Design ã¯æ¬ãããããã®ãšããŠæ±ãããããã«ãªã£ãŠä¹
ããã§ãããããã¯å€ãã®å Žé¢ã§èª€è§£ã®ããšã«éçšãããããæ¡å€§è§£éããããããããšã§ãæ¬æ¥æå³ããŠããªãå©çšããããŠããããšã倧ãããšèããŠããŸãã Brad Frost: Is Atomic Design Dead? â Hatch Conference Berlin 2023 ãããã誀解ãšã㊠Atomic Design ãå®è£
ãªãŒãã§é©çšããããšããŠããŸããæãã¯å®è£
ã§ã®ã¿å®çŸããããšããŠããŸãäŸãããèŠãããŸãã ç§éã®è§£éã§ã¯ãAtomic Design 㯠Design System ãéçºã»éçšãããã¶ã€ããŒãšãšã³ãžãã¢ã®ããã®ã³ã³ããŒãã³ãèšèšãã¬ãŒã ã¯ãŒã¯ã§ããå
±éèšèªã§ããå®è£
ã Atomic Design ã匷ãæèããå¿
èŠã¯ãªããå©çšè
ã«åŒ·èª¿ãã¹ãæ
å ±ã§ããããŸããã Atomic Designã§ã¯ãUIã®éšåãæå°åäœã®ãatoms(åå)ãã«åè§£ããããããçµã¿åãããŠãmolecule(åå)ãã®ãããªãã倧ããªéšåãæ§æããŸãã以åã¯äžã€ã®éšåãšããŠæ±ã£ãŠãããã®ããè€æ°ã®å°ããªéšåã«åå²ããŠçµã¿ç«ãŠçŽãèãæ¹ã§ãã Atomic design ã«ããã³ã³ããŒãã³ãã®åè§£ã»èšèšææ³ã«é¢ããŠã¯ Brad Frost æ¬äººãå«ãå€ãã®è§£èª¬èšäºãåç»ãååšãããã詳现ã¯çç¥ãã€ã€ãå
çšç޹ä»ãã Item Object ã 4.0 ã®èãæ¹ã§æ§ç¯ããäŸã§ç°¡åã«ç޹ä»ããŸãã ãŸãã»ãªãªãŒéãåã³ã³ããŒãã³ãããã®åœ¹å²ã®æå°åäœã«ãŸã§åå²ããŠãããŸãã 以äžã®ç»åã®äŸãã3.0 ã§ã¯1ã€ã®ã³ã³ããŒãã³ããšããŠæ±ãããŠããŸãããã4.0 㯠2 ã€ã® atoms ãšåŒã°ããæå°åäœã®ã³ã³ããŒãã³ãã«ãªããŸãããããŠãããã®ããŒããçµã¿åãããŠããã«ããŒããæ§æããŸãããã® atoms ããæ§æãããã³ã³ããŒãã³ãã molecule ãšåŒã³ãŸãã ãããç¹°ãè¿ããæçµçã«ãã©ãã©ã®ããŒããã ItemObject ãªã©ã®ãããã€ã¬ãã«ãªããŒããæ§ç¯å¯èœã«ããŸããåæãšã㊠UI ãããŒãã§çµã¿ç«ãŠå¯èœã«ãããšããç¹ã念é ã«çœ®ãã€ã€ãçµã¿ç«ãŠåŸã®ããŒããæ±çšçãªã³ã³ããŒãã³ãã§ãããã®ã molecules ã organisms ãšããŠæäŸããŸãã ItemObject ã®ããã«ãŠãŒã¹ã±ãŒã¹ã现ããå¥ããŠããã³ã³ããŒãã³ãã«é¢ããŠã¯äœ¿çšé »åºŠã®é«ãæ±çšçãªãã®ãåªå
çã« Design System ã®ã³ã³ããŒãã³ããšããŠç®¡çãã€ã€ãå©çšã·ãŒã³ãå€ããªããã®ãå
ããªèŠçŽ ã®éããæã€ãŠãŒã¹ã±ãŒã¹ã«ã¯ãã㊠organisms ãšããŠå®æåœ¢ãæäŸãããå©çšã·ãŒã³ã§çµã¿ç«ãŠãããã«ããŠããŸãã ã³ã³ããŒãã³ããå©çšæã«çµã¿ç«ãŠãããšããã®ãå Žåã«ãã£ãŠã¯å©çšè
ã®è² æ
ã«ãªããŸãããã®ãããçµã¿ç«ãŠæ¹æ³ã®äŸãã¬ã·ã/èšèšå³ãšããŠé
åžãè£å©çã«æŽ»çšããŠããŸãã ã¬ã·ã/èšèšå³ãæäŸãããã©ããã¯ãã³ã³ããŒãã³ãã®å©çšé »åºŠãã³ã³ãã³ã/ã³ã³ããã¹ãäŸå床ãã倿ããŸãããã¬ã·ããèšèšå³ (Blueprint) ã«é¢ããŠã¯ Atomic Design ãšã¯ç°ãªãæŠå¿µãšãªãããæ¬¡ã®ç¯ã§ããå°ã詳ãã玹ä»ããŸãã Component Design Strategy Atomic design 㯠Design System ã®ã³ã³ããŒãã³ãã®åè§£ã»æ§ç¯ã®ããã®ãã¬ãŒã ã¯ãŒã¯ãæäŸããŸããããªã«ãã³ã³ããŒãã³ãã§ããã¹ãããã©ããªã³ã³ããŒãã³ãã Design System ãšããŠç®¡çãããã¹ãããã®å¢çã瀺ããŠã¯ããŸããã ç§ã®ããŒã ã§ã¯ Design System ããå
åãã®ã¬ã€ã€ãŒã Atomic Design ã§ãå€åãã®ã¬ã€ã€ãŒãèªåãã¡ã§ç¬èªã«èšèšããŸãããæ¬¡ã®å³ã¯ãã®ã¬ã€ã€ãŒãç°¡æçã«è¡šçŸãããã®ã§ããå
åŽã«è¡ãã»ã© Design System ã§ãå€åŽã«è¡ãã»ã© Design System ã§ã¯ãªããªããŸããå³å¯ã« Design System ããŒã ã®æã¡ç©ãšããŠè²¬ä»»ã远ãã®ã¯éã®é åã§ãããçŸå®çã«ã¯ã£ãããšããå¢çç·ãåŒããããšã¯çšã§ããã®å¢çã¯ã°ã©ããŒã·ã§ã³ã«ãªã£ãŠããããšãå€ãããããã®ã°ã©ããŒã·ã§ã³ãæå³ããŠãã®ãããªå³ã§è¡šçŸããŸããã 1ã€1ã€ã®ã¬ã€ã€ãŒãé çªã«è§£èª¬ããŠãããŸãã Snowflakes ã¯ã³ãªãã³ã³ããŒãã³ããã³ã³ãã³ããã³ã³ããã¹ãã«äŸåããŠãããªã©ã®çç±ãã Design System ãšããŠã¯èæ
®ãããªã æ§ãããªäœ¿çšãæšå¥š Custom Component Design System ã®ã³ã³ããŒãã³ãã¹ããã¯ã§ã¯è¡šçŸã§ããªã UI ãæ§æãããããã·ã³ãã«ãããã£ã¿ãããããããstroke ãªã© Figma äžã§å¶çŽãèšããããšãã§ããªãããããã£ãã³ã³ããŒãã³ãã®ã¹ããã¯ãè¶
ããŠæ¹é ããããã®ãæã Design System ãšããŠã¯éåžžã«äžæ¬æãªã³ã³ããŒãã³ãã§ããããå°æ¥çã«ãã®ã¹ããã¯ã Design System ã§ãµããŒããããããæã㯠UI ã®ä»æ§ã調æŽããããšã§èããªã£ãŠããã¹ãã¬ã€ã€ãŒ Blueprint çŽèš³ãããšéåçãšããæå³ã«ãªããŸãããèšèšå³ãå®æäºæ³å³ã®æå³ã§äœ¿çšããã Blueprint ã¯ãFigma ã®ãã¶ã€ã³ããŒã¿ãã iOS, Android, Web ã®ãœãŒã¹ã³ãŒããŸã§å
æ¬çã«ãã®èšèšå³ãæäŸããã 䞻㫠Design System Component ãšããã«ã¯ã³ã³ãã³ã/ã³ã³ããã¹ãäŸåã匷ããé »ç¹ã«æŽ»çšããããã®ãæã㯠snowflakes ã®ãããªã¯ã³ãªãã«è¿ãçšéãæã€ãããã®çµã¿ç«ãŠæ¹æ³ãè€éãªãšãã«æŽ»çšãã Design Recipes Figma ã®ãã¶ã€ã³ãã¡ã€ã«ã§ã®ã¿èšèšå³ãæäŸãããã³ã³ããŒãã³ãããœãŒã¹ã³ãŒãäžã§ã¯æäŸãããªã ãã¬ãŒã ã¯ãŒã¯ã®æ©æµãåãããªã©å®è£
äžã³ã³ããŒãã³ããšããŠå®çŸ©ããå¿
èŠæ§ãäœããã®ã«å¯Ÿãããã¶ã€ã³å¹çåã®ãã Figma ã®ãã¶ã€ã³ãã¡ã€ã«ã§ã®ã¿ã³ã³ããŒãã³ããšããŠå©çš (ã¬ã€ã¢ãŠãç³»ã®ã³ã³ããŒãã³ãã«å€ã) Blueprint ããã¶ã€ã³ (Figma) ãšãœãŒã¹ã³ãŒãäž¡æ¹ã®ã¬ã·ããæäŸããã®ã«å¯ŸããDesign Component ã¯ãã¶ã€ã³ (Figma) ã®ã¬ã·ãã®ã¿ãæäŸããã Design System ã³ã³ãã³ã/ã³ã³ããã¹ãéäŸåã§åå©çšå¯èœãªç¬ç«ããã³ã³ããŒãã³ã å®ã¯ãããã®ã¬ã€ã€ãŒã¯ Brad Frost ã«ããæå±ãããŠãã vocabulary ã«æ·±ã圱é¿ãåããŠããããã圌ã«è©³ãã人ã«ãšã£ãŠã¯æ¢èŠæã®ãããã®ã«ãªã£ãŠããŸãã ãã ãããã«ã¯ Atomic Design ã®ãããªæç€ºçãªååã¯ã€ããŠããªããããåã«èšäºäžã®è¡šçŸãã component vocabulary ãšåŒã¶ããšã«ããŸãã Design system components, recipes, and snowflakes ãã¹ãŠã® UI ã³ã³ããŒãã³ãã Design System ã§å®çµãããã¶ã€ã³çµç¹ãæã strict ãªãã¶ã€ã³çµç¹ãšèšãããããããŸãããå®çŸã¯é£ããã§ããããã®ãããªçµç¹ãå°ãªãããååšããŠããããã§ãã ãã®ã¢ãã«ã¯ãããå°ãåççãªåŠ¥åã©ã€ã³ãæ±ããå Žåã«ãšãŠããã£ããããŸãããããã¯ãéçºã§ã©ãããŠãçºçããã³ã³ãã³ãäŸåãªã³ã³ããŒãã³ããã¯ã³ãªããšããŠäžå®æ°èš±å®¹ãã€ã€ãããã«ããã£ãã©ãªãŒãšã¬ã€ã€ãŒãäžããããšã§ç®¡ç察象ãšããèãç¶æããããã®ãã€ã³ãã»ãããçã¿åºãããšãã§ããŸãããããŠãDesign System ãš Snowflakes ã®éãåããåå©çšå¯èœã ã Design System ãšããŠç®¡çããã«ã¯ååãªåæ©ã (ãŸã ) ãªããã®ãã¬ã·ããšããããšã§ãå
šäœã®ã³ã³ããŒãã³ãã¬ã€ã€ãŒã«ã°ã©ããŒã·ã§ã³ãäžããã¡ã³ããã³ã¹ã³ã¹ããšãªã¿ãŒã³ã®æé©åãå³ãæå³ããããŸãã ã³ã³ããŒãã³ãèšèšã»åå²æé æ¬¡ã« Design System ã³ã³ããŒãã³ãã®èšèšã»å岿éãèŠãŠãããŸããåé ã§ç޹ä»ããéãã以åã®ã·ã¹ãã ã§ã¯æçµçã«1ã€ã®ã³ã³ããŒãã³ãã«æ¯ãèãã variant ãæããéããããšã§å©äŸ¿æ§ãã¡ã³ããã³ã¹æ§ã®äœäžãæããŸããã ãããã®æèšãèžãŸããæ°ããã·ã¹ãã ã§ã¯ã»ãã³ãã£ãã¯ã§ã·ã³ãã«ãªåè§£ãéèŠãã以äžã®4ã€ãã³ã³ããŒãã³ãèšèšã®æéãšããŸããã Semantic âããžã¥ã¢ã«çã«è¿ããã®ãã³ã³ããŒãã³ããšããã®ã§ã¯ãªããæåãæå³çãªåé¡ã«ãã£ãŠã³ã³ããŒãã³ããå®çŸ©/åå²ãããåžžã«äžè²«ããæ¯ãèããæäŸããŸããâ äŸãšããŠã¡ã«ã«ãªã«ã¯ããããšåŒã°ããŠããã©ãŠã³ãç¶ã®ã¯ãªãã«ãã«ãªã³ã³ããŒãã³ãããããŸãã 3.0 ã§ã¯å
šãŠ1ã€ã®ã³ã³ããŒãã³ããšããŠå®çŸ©ãããŠããŸãããã以äžã®ããã«ãã䌌ãèŠãç®ãæã€ã³ã³ããŒãã³ãã«å¯ŸããŠå€§ããç°ãªãæ¯ãèããããããšãåãããŸãã ãã°ã«: ã¿ããããäºã«ã¹ããŒãã®å€å ãªã ãŒããã«: ã¿ãããããšæ¶ãã æåå
¥å: ã¿ãããå¥ã®ã¢ã¯ã·ã§ã³ã®ããªã¬ãŒãšãªã äžèŠãå
±éã³ã³ããŒãã³ãã®ç°ãªãç¶æ
ãå©çšããŠããã ãã«èŠããŸãããã¿ããå¯èœé åãã¿ããæãããã³ãããŒæ (Web) ã®ã¹ã¿ã€ã«ãªã©ãéã£ãŠããŸãã1ã€ã®ã³ã³ããŒãã³ãã§è¡šçŸããã«ã¯äžèŠãªäŸåé¢ä¿ãèæ
®ããå¿
èŠãåºãŠãããããã³ã³ããŒãã³ãã®åå²å¯Ÿè±¡ãšããããšã§äŸåé¢ä¿ãã·ã³ãã«ã«ãªãã¡ã³ããã³ã¹æ§ãåäžããŸãã Properties âç°ãªãè²ãè§ã®äžžã¿ãè§ã°ã£ãŠãããªã©ã«åºã¥ããŠããããªèŠèŠçããªãšãŒã·ã§ã³ãæã€ããšãã§ããŸããäœãã³ã³ããŒãã³ãã®åœ¢ãæ¯ãèããå€ããããšã¯ã§ããŸãããâ å
ã«ç޹ä»ãããããã³ã³ããŒãã³ãã§ã¯ãã¹ãããŒã¯ã®ã¹ã¿ã€ã«ã solid/dotted ã®ãããªããããã£ãæãããŠããŸããããã¯èŠèŠçãªããªãšãŒã·ã§ã³ã§ããåœ¢ãæ¯ãèããå€ããããšã¯ãªãããã1ã€ç®ã® Semantic æéã䟵害ããŸããã Optional Elements âã³ã³ããŒãã³ãã¯ãªãã·ã§ãã«ãªèŠçŽ ãæã€ããšãã§ãã (ãªãã·ã§ã³ã®ã¢ã€ã³ã³ãããã¹ããªã©)â ãã¿ã³ã® prefix/suffix ã¢ã€ã³ã³ã®ãããªåèŠçŽ ãæãããããšãã§ããŸãã æ¬¡ã®4ã€ç®ã®æéã§ç޹ä»ãã No polymorpihc API ãšçžåããããšããªãããæ³šæããå¿
èŠããããŸãã No polymorphic API âäžè²«ããAPIãæã€ã¹ãã§ãã (å¿
é ãšãªãããããã£ãå¥ã®ããããã£ã®ååšã®æç¡ã«åºã¥ããŠå€æŽãããã¹ãã§ã¯ãªã)â ç»åãšã³ãŒãã®äŸãçšããŠè§£èª¬ããŸããæ¬¡ã®ç»åã¯ã3.0ã®å€ã Design System ã§å®çŸ©ãããŠãã ItemThumbnail ãšããã³ã³ããŒãã³ãã§ã3.0 ã§ã¯ Large size ã®ã¿ã«å²åŒã倿®µã®èŠçŽ ãèš±å¯ãããŠããŸãããããã㯠polymorphic API ãšã¿ãªããæ°ããæéã§ã¯é¿ããèšèšãšããŠããŸãã âç¹å®ã®æ¡ä»¶ã®æã«çºçãããã¹ããããæ¡ä»¶âã«ã¯ãæçµçã«åé ã§ç޹ä»ãããããªç®¡çã®è€éæ§ãçããŸãã Polymorphic API ãå«ãã³ãŒãäŸ: ItemThumbnail( size = Medium ) ItemThumbnail( size = Large( discountPrice = 900Â¥, price = 1,000Â¥ ) ) 4.0 ã§ã¯ã³ã³ããŒãã³ãã®åè§£ãšåæ§ç¯ã«ããããããã®åé¡ãåé¿ããŠããŸããItemTile ãšãã Organism ã³ã³ããŒãã³ããçšæããæ§æèŠçŽ ãšã㊠ItemThumbnail ãå«ã Atoms, Molecules ãæãããŠããŸãã Polymorphic API ãå«ãŸãªãã³ãŒãäŸ: ItemThumbnail( leftBottomContentSlot = <other atoms/molecules/organism> ) çµæ Atomic Design ãæ¡çšããç§éã® Design System ã¯ãæçµçã«150åŒ±ã®æ°ã®ã³ã³ããŒãã³ãã«ååè§£ããã以äžã®ãããªã³ã³ããŒãã³ãååžã®æ§æã«ãªããŸããããããé©åãªã®ãéäžè¶³ããã®ãã¯çŸæç¹ã§å€æããããšã¯ã§ããŸããããä»åŸã®éçšã§æããã«ãªã£ãŠããã¯ãã§ãã Atoms: 50 Molecules: 60 Organisms: 40 ãŸããåé ã§ããäŸãšããŠäžããŠãã ItemObject ã¯ãã®ã¬ã€ã¢ãŠãã ããæäŸãã ObjectLayout ãšãããŒããçµã¿äžãã blueprint ã«åãããŠæäŸããæ¹æ³ã«çå°ããŸããã ObjectLayout: ItemObject (blueprint): æ¡ä»¶åå²ãªã©ã§èšãäžãã£ãã³ãŒãããiOS (Swift) ã§700è¡ãã£ããã®ã30è¡åŒ±ã«ãŸã§åæžãããŸãããå®éçµç«æã«çºçããã³ãŒããããããçŽç²ãªåæžãšã¯ãªããŸããããã³ã³ããŒãã³ãã®æœè±¡åãæ±çšåã«å€±æããŠããéšåãåçŽåã§ãããšèããããŸãã ãŸãšã ä»åã® Design System 4.0 å·æ°ãããžã§ã¯ããéããŠãç§éã¯éå»ã®èª²é¡ãšåãåããããæè»ãã€æç¶å¯èœãªã·ã¹ãã ãžãšé²åãããããã®éèŠãªåŠã³ãåŸãŸããã ã³ã³ããŒãã³ãã®éåºŠãªæ±çšåãè€éæ§ãçã¿ãã¡ã³ããã³ã¹æ§ãèããäœäžãããæèšãããAtomic Design ã®ååã«ç«ã¡è¿ããã³ã³ããŒãã³ããæå°åäœã«åå²ããåå©çšæ§ãé«ããèšèšãžãšç§»è¡ããŸãããããã«ãããåã³ã³ããŒãã³ããåäžã®è²¬ä»»ãæã€ããã«ãªãã倿Žããã¹ãã容æã«ãªããŸããã åæã«ã³ã³ããŒãã³ããã©ãããã¹ãããèãçŽããŒãããçµã¿çŽãããšã§ 3.0 ã§åŸãç¥èãšçµéšãæ°ããã·ã¹ãã ã«åæ ããããšãã§ããŸããã ä»åŸ Figma AI ã Figma MCP ãã¯ãããšãããã¶ã€ã³åã³ã³ãŒãã£ã³ã°ã®èªååã«ãããŠããã©ã³ãã£ã³ã°ã³ã³ã»ãããåæ ãããã€ã»ãã³ãã£ãã¯ãªæå³ãæã€ Design System ã³ã³ããŒãã³ãã¯ãããšããŠã®åœ¹å²ããAI ã«å¯ŸããŠã®ã³ã³ããã¹ãæäŸè
ãšããŠãã®éèŠæ§ãå¢ããŠãããšèããŠããŸãã ãŸãç¶å ±ãããã°ãäŒãããŠãããŸãã æåŸãŸã§èªãã§ããã ãããããšãããããŸããã
ããã«ã¡ã¯ãã¡ã«ã³ã€ã³ ããã³ããšã³ããšã³ãžãã¢ã®@y-arimaã§ãã ãã®èšäºã¯ã Merpay & Mercoin Tech Openness Month 2025 ã®18æ¥ç®ã®èšäºã§ãã æ¬èšäºã§ã¯ãWebçã¡ã«ã«ãªããã¡ã«ã³ã€ã³APIãžã®çé確èªãè¡ã£ãPoCïŒProof of ConceptïŒã«ã€ããŠãæè¡çãªèª²é¡ãšè§£æ±ºçããããŠåŸãããç¥èŠã玹ä»ããŸãã èæ¯ãšç®ç çŸåšãã¡ã«ã³ã€ã³ã®æ©èœãå©çšã§ããWebãµãŒãã¹ã¯ååšããŸãããããã§ãæè¡çãªæ€èšŒãšããŠãWebçã¡ã«ã«ãªããã¡ã«ã³ã€ã³APIã«ã¢ã¯ã»ã¹ã§ãããã©ããã詊ããŠã¿ãããšã«ããŸããã ä»åã®PoCã§ã¯ã Webçã¡ã«ã«ãªããã¡ã«ã³ã€ã³APIãžã®çéç¢ºèª ãäž»ãªç®æšãšããæè¡çãªå®çŸå¯èœæ§ãæ€èšŒããŸããã æè¡çãªèª²é¡ãšè§£æ±ºç 1. èªèšŒèšèšã®è€éã æ¢åã®Webçã¡ã«ã«ãªã®èªèšŒã·ã¹ãã ã¯ç¬èªã®ãŠãŒã¶ãŒIDäœç³»ã䜿çšããŠããŸããããã¡ã«ã³ã€ã³åŽã®ãã€ã¯ããµãŒãã¹ã¯ç°ãªãã¯ã©ã¹ã¿ã«ååšããŠãããã»ãã¥ãªãã£äžã®çç±ãããã®IDããã®ãŸãŸåãä»ããªã仿§ãšãªã£ãŠããŸããã ãã®åé¡ã解決ããããããã©ã€ãã·ãŒãèæ
®ããèå¥åïŒPPID: Pairwise Pseudonymous IdentifierïŒãå©çšããæ°ããªOIDCïŒOpenID ConnectïŒã¯ã©ã€ã¢ã³ããäœæããå¿
èŠããããŸãããPPIDã¯ãç°ãªããµãŒãã¹éã§ã客ããŸãå®å
šã«èå¥ããããã®ä»çµã¿ã§ããPPIDã®è©³çްã«ã€ããŠã¯ã以äžã®èšäºããåç
§ãã ããã ã¡ã«ã³ã€ã³ã«ãããã·ã¹ãã éã®ããŒã¿åé¢ãå®çŸããããã®éä¿¡ã¢ãŒããã¯ã㣠Applying OAuth 2.0 and OIDC to first-party services 2. ã€ã³ãã©åšãã®èšå® ã¡ã«ã³ã€ã³APIãžã®ã¢ã¯ã»ã¹ãå¯èœã«ããããã«ã¯ãGatewayããããã¯ãŒã¯åšããªã©ã®ã€ã³ãã©èšå®ãå¿
èŠã§ãããæ®æ®µããã³ããšã³ããšã³ãžãã¢ãšããŠã®æ¥åãã¡ã€ã³ã®ç§ã«ãšã£ãŠããã®èŸºãã¯éŠŽæã¿ã®èãé åã§ããã ããããã¢ãŒããã¯ãããŒã ãSREããŒã ãªã©ããŸããŸãªæ¹ã«ãµããŒãããã ããå¿
èŠãªèšå®ãé²ããããšãã§ããŸããããã®çµéšãéããŠããã€ã¯ããµãŒãã¹éã®é£æºã«ã¯å€ãã®ããŒã ã®ååãå¿
èŠã§ããããŸãããã³ããšã³ããšã³ãžãã¢ãšããŠããã€ã³ãã©ã¹ãã©ã¯ãã£ãŒã®ç¥èã®éèŠæ§ã宿ããŸããã 3. æªç¥ã®ã³ãŒãããŒã¹ã§ã®éçº ä»åã®PoCã§ã¯ãæ®æ®µè§Šããããšã®ãªãè€æ°ã®ãªããžããªã§ã®äœæ¥ãå¿
èŠã§ãããå€§èŠæš¡ãªã³ãŒãããŒã¹ãçæéã§çè§£ããå¿
èŠãªä¿®æ£ãå ããŠããå¿
èŠããããããã¯å€§ããªãã£ã¬ã³ãžã§ããã ãã®èª²é¡ã«å¯ŸããŠã¯ãææ°ã®AIããŒã«ïŒç¹ã«Cursorãªã©ã®AIæèŒãšãã£ã¿ïŒãç©æ¥µçã«æŽ»çšããããšã§å¯Ÿå¿ããŸãããç¹ã«æ°ããªOIDCã¯ã©ã€ã¢ã³ãã®èšå®ã§ã¯ãæ®æ®µè§Šããããšã®ãªãTerraformã®ã³ãŒããä¿®æ£ããå¿
èŠããããŸããããããCursorã®æ©èœã掻çšããŠæ¢åã®OIDCã¯ã©ã€ã¢ã³ãã®èšå®ãåæãããã®æ§é ãä»çµã¿ãçè§£ããäžã§ãæ°ããã¯ã©ã€ã¢ã³ãã®èšå®ãé²ããããšã§ãéçºå¹çãåäžãããããšãã§ããŸããã å®è£
ã®ææ ä»åã®PoCã§ã¯ã以äžã®2ã€ã®æ©èœãç°¡æçã«å®è£
ããããšã§ãWebçã¡ã«ã«ãªããã¡ã«ã³ã€ã³APIãžã®çé確èªãè¡ããŸããïŒ ãããã³ã€ã³ã®äŸ¡æ Œããã£ãŒãã§è¡šç€ºããæ©èœ ååŒå ±åæžãããŠã³ããŒãããæ©èœ ãããã®æ©èœå®è£
ãéããŠãèªèšŒãAPIéä¿¡ããã¡ã€ã«ã®ããŠã³ããŒããªã©ãããŸããŸãªãã¿ãŒã³ã§ã®çé確èªãè¡ãããšãã§ãã Webçã¡ã«ã«ãªããã¡ã«ã³ã€ã³APIãžã®ã¢ã¯ã»ã¹ã¯æè¡çã«å®çŸå¯èœã§ãã ããšã確èªã§ããŸããã PoCãéããŠåŠãã ããš äžäººã§ã®éçãšå¹ççãªé²ãæ¹ PoCãé²ããäžã§ãããã³ããšã³ããšã³ãžãã¢äžäººã§ãã®ãããªå€§èŠæš¡ãªæ€èšŒãå®éããããšã®é£ããã«çŽé¢ããŸããããã®ãããªç¶æ³ãåããå€ãã®ããŒã ã®æ¹ã
ã«ååããã ããŸããããPoCãšããæ§è³ªäžãæ¬çªéçºã«æ¯ã¹ãŠåªå
床ãäœããåããŒã ãžã®äŸé Œãå®äºãããŸã§ã«æéãèŠããããšãå°ãªããããŸããã§ãããããã§ãæªçµéšã®é åã«ãææ¢ã«ææŠããããŸãã¯èªåã§ã§ããããšãæ¢ãããšããå§¿å¢ã§åãçµãããšã§ãããŒã éã®ã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ããæãã€ã€ãå¹ççãªéçºãé²ããããšãã§ããŸããã AIããŒã«ã®æŽ»çš åè¿°ããæªç¥ã®ã³ãŒãããŒã¹ã®çè§£ä¿é²ã¯ãã¡ããããã£ãŒãæ©èœãååŒå ±åæžã®ããŠã³ããŒãæ©èœã®å®è£
ã«ãããŠããAIããŒã«ã¯å€§ããªå¹æãçºæ®ããŸããã éçºã®æµããšããŠã¯ã以äžã®ããã»ã¹ãç¹°ãè¿ããŸããã Cursorã«èŠä»¶ãäŒããŠã³ãŒããçæ çŽ°éšãèªåã§èª¿æŽ ãŸã㯠CursorãæŽ»çšããŠä¿®æ£ åäœç¢ºèª åé¡ãããã°2ã«æ»ã ãã®æ¹æ³ã«ãããæ¥µããŠçæéã§æ©èœã宿ãããããšãã§ããŸããã ãŸãããããã®æ©èœã®å®è£
ã§ã¯ãããã³ããšã³ããšã³ãžãã¢ãšããŠæ®æ®µããæ
£ã芪ããã§ããé åã ã£ãããšããAIããŒã«æŽ»çšã®å€§ããªã¢ããã³ããŒãžã«ãªããŸããã æ£ããã³ãŒãã®åœ¢ãé ã®äžã«ãããããCursorãçæããã³ãŒãã®è¯ãæªããå³åº§ã«å€æã§ããé©åãªä¿®æ£æç€ºãåºãããšãã§ããã®ã§ãããã®æ¢åç¥èãšAIããŒã«ã®çµã¿åããã«ãããéçºã¹ããŒãã¯æ Œæ®µã«åäžããŸããã è€æ°ã®ããŒã ãšã®å¹ççãªã³ãã¥ãã±ãŒã·ã§ã³ ã¡ã«ã«ãªã°ã«ãŒãã®ãšã³ãžãã¢ãªã³ã°çµç¹ã¯å€§èŠæš¡ã§ãããè€æ°ã®ããŒã ããæ§æãããŠããŸãã PoCãé²ããäžã§ã誰ã«è³ªåããã°è¯ããããæåã¯äžæã§ããããã®åé¡ã«å¯ŸããŠã¯ãã¡ã«ã«ãªå
šäœã®ã¢ãŒããã¯ãã£ã暪æçã«ææ¡ããŠãã¢ãŒããã¯ãããŒã ã«æåã«çžè«ããå¿
èŠãªã¿ã¹ã¯ãšæ
åœããŒã ãç¹å®ããŸããããã®åŸã¯ãè€æ°ã®ããŒã ã«äžŠè¡ããŠè³ªåãçžè«ãè¡ãããšã§ãéçºã®ãããã«ãŒãæå°éã«æããªããå¹ççã«é²ããããšãã§ããŸããã ãŸãšã ä»åã®PoCã§ã¯ãWebçã¡ã«ã«ãªããã¡ã«ã³ã€ã³APIãžã®ã¢ã¯ã»ã¹ãæè¡çã«å®çŸå¯èœã§ããããšã確èªã§ããŸããããã®æ€èšŒãéããŠãããã³ããšã³ããšã³ãžãã¢ãšããŠãèªèšŒãã€ã³ãã©ãªã©ãã·ã¹ãã å
šäœãžã®çè§£ãæ·±ããããšã®éèŠæ§ãæ¹ããŠå®æããŸããã ãŸããAIããŒã«ã®æŽ»çšãå¹ççãªããŒã 飿ºã®æ¹æ³ãªã©ãä»åŸã®PoCéçºã«ã掻ãããç¥èŠãåŸãããšãã§ããŸããã ãã®èšäºããåæ§ã®æè¡çææŠã«åãçµãæ¹ã
ã®åèã«ãªãã°å¹žãã§ãã ææ¥ã®èšäºã¯ @keitasuzukiããã§ããåŒãç¶ããæ¥œãã¿ãã ããã
Merpay & Mercoin Tech Openness Month 2025 ã®ç¬¬17åç®ã®ããã°æçš¿ã§ãã ntk1000 ã§ããMerpayã§KYCããŒã ãšPartner PlatformããŒã ã®ãšã³ãžãã¢ãªã³ã°ãããŒãžã£ãŒãåããŠããŸããæ¬æ¥ã¯ç¹å®ã®ããŒã ã«ã€ããŠè©±ãã®ã§ã¯ãªããéçºè
äœéšïŒDeveloper ExperienceïŒãåäžãããããã®äŒç€Ÿå
šäœã®ãšã³ãžãã¢ãªã³ã°OKRã€ãã·ã¢ããã«ã€ããŠå
±æããããšæããŸãã 1. ãªãDevExãªã®ãïŒ Developer ExperienceïŒä»¥äžãDevExïŒã¯ãéçºè
ãä»äºã«ãããŠã©ãã ãã¹ã ãŒãºã«ãã¹ãã¬ã¹ãªãã䟡å€ããä»äºã«éäžã§ããããç€ºãæŠå¿µã§ãã Nicole Forsgrenããæå±ããç ç©¶ã§ã¯ã"è¯ãDevExã¯ãéçºè
ã®æºè¶³åºŠãšå¹çæ§ãé«ããçç£æ§ãšå®ççãåäžãããããšã§ãããžãã¹ææã«ãã€ãªãã" ãšãããŠããŸãïŒåèïŒ The SPACE of Developer Productivity ïŒã ãŸããGoogleãã"éçºè
ãå®éã«ã©ãã ãã®æéãæ¬è³ªçãªäŸ¡å€åµåºã«è²»ãããŠããã" ãéèŠããŠãããDevExã®æ¹åããããã¯ãã®å質ãšã¹ããŒãåäžã®éèŠãªèŠçŽ ãšããŠæ±ã£ãŠããŸãïŒåèïŒ How Google Measures Developer Productivity ïŒã ãã®ããã«ãDevExã¯åãªãéçºå¹çã®ææšã§ã¯ãªããããŒã ã®å¥å
šæ§ãšãããã¯ãã®ç«¶äºåã«çŽçµãããæŠç¥çãªããŒãã§ãã AIã®å°é ãäºæ¥ã®å€è§åãã°ããŒãã«å±éãªã©ããšã³ãžãã¢ãªã³ã°çµç¹ã®è€éæ§ãå¢ãäžã§ããšã³ãžãã¢ã®æ¥ã
ã®æ¥åã«ã¯ãéäžæéã®ç¢ºä¿ãèªåŸçãªå€æã®é£ãããšãã£ãæ°ããªèª²é¡ãçãŸããŠããŸããè€éæ§ãé«ãŸãã«ã€ããŠãå人ã®åªåãåæã ãã§ã¯å¯Ÿå¿ããããªãæ§é çãªæ©æŠãç®ç«ã€ããã«ãªã£ãŠããŠããã®ã§ãã ããšãã°ãç§ãæ
åœããŠããKYCããã³Partner PlatformããŒã ã¯ã瀟å
ã®ä»ããŒã ããããã¯ãã«å¿
èŠãªå
±éæ©èœãæäŸãããã©ãããã©ãŒã ãšããŠã®åœ¹å²ãæ
ã£ãŠããŸãããã®ãããç§ãã¡ã¯å€æ§åã»ã°ããŒãã«åãããµãŒãã¹ã®èŠæ±ã«å¿ããéçºãšãèªããŒã ã®ãããã¯ãèªäœã®æ¹åã䞊è¡ããŠè¡ãå¿
èŠããããŸãããããçŸå®ã«ã¯ãåè
ãžã®å¯Ÿå¿ã«æéãšãªãœãŒã¹ã®å€§åãå²ãããŠããŸããåŸè
ã®æ¹åãåŸåãã«ãªããçµæãšããŠåè
ã®å¯Ÿå¿ã«ãæéãããã£ãŠããŸããšãããžã¬ã³ããååšããŠããŸããããã¯æ§é çãªè² åµã§ãããå人ãããŒã åäœã®åªåã ãã§è§£æ±ºã§ããåé¡ã§ã¯ãããŸããã ã ãããããç§ãã¡ã¯DevExãåãªãæ¥åå¹çãã¹ã³ã¢æ¹åã®è©±ã§ã¯ãªããéçºããŒã ã®æç¶å¯èœæ§ãšãããã¯ãã®ç«¶äºåãäž¡ç«ãããããã®æŠç¥çãªåãçµã¿ãšäœçœ®ã¥ããŸãããè€éãªç°å¢ã®äžã§ãèªåŸçã«åããããŒã ãè²ãŠãã«ã¯ãæ§é çãªèª²é¡ã«å¯ŸããŠå
šç€Ÿçã«åãåãå¿
èŠããããŸãããã®ãããç§ãã¡ã¯EMãéçºããŒã ã ãã«ãã®è²¬ä»»ãä»»ããã®ã§ã¯ãªããçµç¹å
šäœã§DevExæ¹åã«åãçµãäœç³»çãªã¢ãããŒããéžæããŸããã 2. 枬ãã®ã¯ãè¡åãšå¯Ÿè©±ã®åºçºç¹ ç§ãã¡ã¯ DX ãšããããµãŒãã€ããŒã¹ã®å®æ§ããŒã¿ãšããªããªãŒã¹ã«ãŒãããã®ãããªå®éããŒã¿ãçµã¿åãããDevExå¯èŠåããŒã«ãæ¡çšããŸãããç®çã¯ã¹ã³ã¢ãçæããããšã§ã¯ãªããããŒã ãèªåãã¡ã®åãæ¹ã客芳çã«èŠã€ãçŽãã課é¡ãèšèªåããæ¹åã«åããè¡åãèµ·ãããã£ãããçã¿åºãããšã§ããå®éãšå®æ§ãåãããŠå¯èŠåããããšã§ããšã³ãžãã¢ãEMãæèŠçã«æã£ãŠãã課é¡èªèãããŒã å
šäœã§å
±æã§ããããã«ãªãããããã建èšçãªäŒè©±ãå§ãŸããŸãã ãæž¬ã£ãŠçµãããã«ããªãããã«ãç§ãã¡ã¯ååæããšã®æ¹åãµã€ã¯ã«ãèšèšããŸããããµãŒãã€ã¯åãªãæ°åã®çŸ
åã§ã¯ãªããããŒã å
ã®å£°ãå¯èŠåããEMãããŒã ã¡ã³ããŒããã®èæ¯ã«ãã課é¡ãèšèªåããããã®åºçºç¹ã§ããããã§åŸãããå®éã»å®æ§ã®ããŒã¿ã¯ã察話ã®ãã£ãããšãªããããŒã ãçŽåŸæãæã£ãŠæ¹åã«åããã¢ã¯ã·ã§ã³ãæ€èšããããã»ã¹ãæ¯ããŠããŸããããããä»çµã¿ã«ãã£ãŠãèšæž¬â倿âè¡åâæ¯ãè¿ããšãããµã€ã¯ã«ãç¶ç¶çã«åãããã«ãªã£ãŠããŸãã 3. çµç¹å
šäœã§æ©èœããæ¹åãµã€ã¯ã«ã®èšèš æ¹åãµã€ã¯ã«ã®è©³çްã¯ä»¥äžã®éãã§ãïŒ èšæž¬ ïŒååææ¯ã«15åååŸã®å¿åãµãŒãã€ã®å®æœ 倿 ïŒEMããµãŒãã€çµæã確èªãããŒã ãšãè°è«ããŠãæ¹åã«æ³šåãããšãªã¢ã倿 è¡å ïŒEMã¯å€æçµæãå
ã«ãå
·äœçãªã¢ã¯ã·ã§ã³ãã©ã³ãäœæããããŒã ãšããŠå®è¡ æ¯ãè¿ã ïŒããŒã ã®ã¬ããã¹ãã¯ãã£ããæ¬¡ã®ãµãŒãã€çµæãå
ã«ã¢ã¯ã·ã§ã³ã®å¹æãç¢ºèª ãã®ããã»ã¹ã®äž»äœã¯ããŒã ã®ãšã³ãžãã¢ããã³EMã§ããManager of ManagersãDirectorãVPã¯åããŒã ã®å®æœç¶æ³ããããŒã ãããšã¹ã«ã¬ãŒãããã課é¡ã®ç¢ºèªãšè§£æ±ºã«è²¬ä»»ãæã¡ãŸãïŒããã«ãã£ãŠãEMã®æ¹ååªåãçµç¹å
šäœã«åæ ãããæ§é ãä¿ãããŸãïŒã ãã®ããã»ã¹èšèšã«ã¯ãã»ã¯ã·ã§ã³2ã§è§ŠãããããŒã¿ããã£ãããšãã察話ãšè¡åãã®èãæ¹ãåæ ãããŠããŸããåã«ã¹ã³ã¢ã確èªããã ãã§ãªããæ°å€ãšã³ã¡ã³ãããæèãèªã¿åããçŸå Žã§å®è¡å¯èœãªæ¹åçãžãšèœãšã蟌ãããšãéèŠã§ãããã®ããã«ãåããŒã ãèªåŸçã«é²ãããããããããã»ã¹èªäœã¯ã·ã³ãã«ãã€å埩å¯èœãªåœ¢ã§æŽåãããŠããŸãã ãŸãããã®ãµã€ã¯ã«ã¯ååæåäœã§ç¹°ãè¿ããã®ã§ãããå®åžžæ¥åãšäžŠè¡ããªãããç¶ç¶çã«æ¹åãé²ãããèšèšãããŠããŸããéå°ãªè² è·ãé¿ããçå®ãªå®è¡ãšæ¯ãè¿ããä¿ãããã«ãåããŒã ãåãçµãæ¹åã¢ã¯ã·ã§ã³ã¯äžã€ãäºã€ã«çµãããšãæšå¥šãããŠããŸããå
·äœçã«ã¯ããµãŒãã€çµæãå
ã«ãVoteæ°ãã³ã¡ã³ãæ°ãæ¥çãäŒç€Ÿå¹³åãšã®ã¹ã³ã¢ã®ä¹é¢ãªã©ã®èŠçŽ ããè€åçã«å€æããããŒã ã§å¯Ÿè©±ãè¡ããªããåªå
床ã®é«ã課é¡ãç¹å®ããŸãããã®äžãããçŸå®çã«åãçµãããã®ãéžå®ããŸããã¢ã¯ã·ã§ã³ã®éããããå®è¡å¯èœæ§ãšããŒã ã®çŽåŸæãéèŠããŠããŸãã ä»åã®åãçµã¿ã§ã¯ãDevExæ¹åãå人ãããŒã åäœã®å·¥å€«ã§ã¯ãªããçµç¹ã®ä»çµã¿ãšããŠæŽããç¶ç¶å¯èœãªæåãšããŠæ ¹ä»ãããããšãç®æããŠããŸããå®éã«ãä»åã®ãµãŒãã€ã§ã¯å¯Ÿè±¡ãšãªããšã³ãžãã¢100%ããã®åçãåŸãããšãã§ããåãã100%å
šãŠã®EMãæ¹åã¢ã¯ã·ã§ã³ã®æåºã»å®è¡ã«åå ããŠããŸãã é«ãåå çã確ä¿ã§ãããã€ã³ããšããŠã¯ä»¥äžã®éãã§ãïŒ ãã®ããã»ã¹æ§ç¯ããšã³ãžãã¢çµç¹å
šäœã®OKRãšããŠæšªæçã«åãçµãã ããš ãªãDevExæ¹åã«åãçµãã®ããèæ¯ãšãã®çãããšã³ãžãã¢ã ãã§ãªãçµç¹å
šäœã«ãç¶ç¶çã«çºä¿¡ããããš ãµãŒãã€å®æœãEMã«ããæ¹åã®æ€èšæéäžã¯Lunch&LearnïŒã©ã³ãããšããªããåŠã³ã質çå¿çãã§ããäŒïŒãç©æ¥µçã«éå¬ããæ¥ç¹ãå¢ãããããš DXããµãŒãã€ã«é¢ãã質åãåãä»ãããªãŒãã³ãã¢ã»ãã·ã§ã³ãè€æ°åéå¬ããçåãäžå®ã®è§£æ¶ã«ã€ãªããããš ããã»ã¹éå§åã«All Handsã§æ¹åãµã€ã¯ã«å
šäœã玹ä»ããæçŸ©ãé²ãæ¹ãžã®çŽåŸæãéžæããããš 4. ããŒã ãè¶ããŠèŠããæ§é çèª²é¡ ãã®ããã«ãæ¹åãµã€ã¯ã«ã¯ããŒã åäœã®å®è¡ã ãã§ãªããçµç¹å
šäœã§ã®æ¯è¿ããæ¯æŽãéããŠæç¶çã«æ©èœããèšèšã«ãªã£ãŠããŸãããã®çµæãç§ãã¡ã¯ããŒã åäœã§ã¯æããããªãæ§é çãªèª²é¡ã«ãæ°ã¥ãããšãã§ããŸããã å
éšã¹ã³ã¢ã¯å
¬éã§ããŸããããå
šç€Ÿå
±éã§æããã«ãªã£ã課é¡ã¯æ¬¡ã®ãããªãã®ã§ãïŒ Deep WorkïŒéäžã§ããæéïŒã®äžè¶³ ïŒãšã³ãžãã¢ãéäžãèŠããè€éãªäœæ¥ã«æ²¡é ããæéãäžè¶³ããŠãããšãã課é¡ã§ããäŒè°ã»å²ã蟌ã¿ã»äžæçãªåªå
é äœã«ãããå€ãã®ããŒã ã§éäžã劚ããããŠãããæç¥šæ°ãæãå€ãã£ãé
ç®ã§ãããè€éãªåé¡è§£æ±ºã®ããã«ã¯éäžããæéãå¿
èŠã§ãããçµ¶ãéãªãã³ã³ããã¹ãã¹ã€ããã«ãã£ãŠãã®æéã¯å¥ªãããŠããŸããŸããããã¯åãªãæé管çã®åé¡ã§ã¯ãªããçµç¹ã®èšèšãæ¥åã®åªå
é äœã¥ããé¢ä¿ããæ§é çãªèª²é¡ã§ãã ããŒã 暪æé£æºã«ãããæ©æŠ ïŒãããã¯ãéçºã¯ãšã³ãžãã¢ãªã³ã°éšéã ãã§å®çµã¯ããããããã¯ãã»æ³åã»CSãªã©ããŸããŸãªé¢é£éšçœ²ãšã®é£æºãå¿
èŠäžå¯æ¬ ã§ãããããŠäºæ¥ã®å€è§åãçµç¹ã®æ¡å€§ã«ãã£ãŠããŒã æ°ã»çµç¹æ§é ã¯è€éåããŠãããŸãããã®èª²é¡ã¯æ¥çå¹³åãšã®å·®ãæã倧ããã£ãé
ç®ã§ãããããã¯ç§ãæ
åœããŠããKYCããã³Partner PlatformããŒã ã§ãèªèŠããããæ¬æ¥ã¯ä»ããŒã ãå¿
èŠãšããå
±éæ©èœãã¹ã ãŒãºã«æäŸãããã®ã§ãããæŽåãéã«åã£ãŠããããä»ããŒã ããã®åãåãã察å¿ã«å€ãã®æéãèŠããŠããŸã£ãŠããã®ãçŸç¶ã§ãã ãã®ãããªèª²é¡ã¯ãããããåã
ã®ããŒã ãEMã ãã§ã¯è§£æ±ºã§ããªããããäžäœã®æ§é ãä»çµã¿ã®èŠçŽããå¿
èŠãªé åã§ãããããã£ãŠãå
šç€Ÿçãªæåãšä»çµã¿ã®è»¢æãããšãã°éäžæéãä¿è·ããåãæ¹ã®ã«ãŒã«æŽåããããŒã é飿ºãã¹ã ãŒãºã«ããã»ã«ããµãŒãã¹åã®æšé²ãšãã£ãåãçµã¿ãæ±ããããŸãã 5. çŸæç¹ã§èŠããŠããããš å®äŸïŒ2ã€ã®ãã¡ã€ã³ãæã€ããŒã ããã®åŠã³ ç§ãæ
åœããŠããKYCããã³Partner PlatformããŒã ã®ãµãŒãã€çµæãšæ¹åã¢ã¯ã·ã§ã³ã«ã€ããŠå
±æããŸããäž¡ããŒã ãããããŠåæãããšãããã¥ã¡ã³ããã«é¢ãã課é¡ãå
±éããŠæµ®ãã³äžãããŸãããäžæ¹ã§ãKYCããŒã åäœã§ã¯ãæ¬çªç°å¢ã§ã®ãããã°ã®é£ãããããéçºç°å¢ã®æŽåäžè¶³ããåŒ·ãææããããªã©ããã¡ã€ã³åºæã®èª²é¡ãæç¢ºã«ãªããŸããã ç¹ã«ããã¥ã¡ã³ãã«é¢ããŠã¯ãææ°æ
å ±ã®æåšãäžæç¢ºã§ããããšããéå»ã®çµç·¯ã«é¢ãããã¬ããžã忣ããŠããããšãèŠå ã§ãååã察å¿ã仿§ç¢ºèªã«å€ãã®æéãèŠããŠãããšããå£°ãæ®æ®µãããèããŠããŸãããããã¯ããã©ãããã©ãŒã ããŒã ãšããŠã®æäŸäŸ¡å€ãæå€§åããããã§éèŠãªæ¹åé åã§ãã åŸæ¥ã®ããã¥ã¡ã³ãæŽåã ãã§ã¯éçããããšå€æãã以äžã®ãããªã¢ã¯ã·ã§ã³ãæ©éé²ããŠããŸãïŒ AI/LLMãæŽ»çšããéå»ã®ååãããã¬ããžã®æ€çŽ¢ã»åå©çšãã§ããä»çµã¿ã®æ§ç¯ éå»ã®èšèšããã¥ã¡ã³ããã³ãŒãããŒã¹ãããšã«ãèªç¶èšèªã§ä»æ§ãæ€çŽ¢ã»ç¢ºèªã§ããå
éšããŒã¿ã«ã®æ§ç¯ æŽæ°é »åºŠãé«ããéæ§é çãªæ
å ±ãå€ãäžã§ãLLMã®æè»æ§ã¯æå¹ã ãšèããŠããŸãããŸã å®é𿮵éã§ã¯ãããŸãããæ
å ±ã¢ã¯ã»ã¹ã®ããããã¯DevExã«çŽçµãããããåŒãç¶ãåãçµãã§ããããããŒãã§ãã 6. æåŸã«ïŒDevExã¯ãããã¯ãäœéšãã®ãã® è¯ããããã¯ããäœããããªãããããäœã人ãã¡ã«ãšã£ãŠè¯ãç°å¢ãå¿
èŠã§ããDevExã¯åãªãã¹ããŒããå¹çã®è©±ã§ã¯ãªããæç¢ºãã»éäžã»æµãã®è©±ã§ãã ä»åã¯ååã®æ¹åãµã€ã¯ã«ã§ããããé«ãé¢å¿ãšåå çããã£ãŠå
šç€Ÿçã«åãçµãããšãã§ããŸããã察象ãšã³ãžãã¢ã®100%ããã®åçãšããã¹ãŠã®EMã«ããã¢ã¯ã·ã§ã³æåºãšããçµæã¯ãä»åŸã«åãã倧ããªäžæ©ã§ããäžæ¹ã§ããã®åãçµã¿ãäžéæ§ã®ãããžã§ã¯ãã§çµãããããç²åŒããããšãªãç¿æ
£ãšããŠå®çãããŠããããšã次ã®èª²é¡ã§ãã ãããŠãDevExæ¹åã¯ãšã³ãžãã¢ãªã³ã°çµç¹ã®å¹çåã«ãšã©ãŸããã®ã§ã¯ãªããæäŸãããããã¯ããã®ãã®ã®äœéšäŸ¡å€ã®åäžã«ã€ãªãããã®ã§ãããšã³ãžãã¢ãå®å¿ããŠéäžã§ããç°å¢ãæŽããããšããçµæçã«ãŠãŒã¶ãŒã«ãšã£ãŠã䟡å€ããæ©èœãå質ã«ã€ãªãããšããèŠç¹ãå¿ããã«ãä»åŸãåãçµãã§ãããããšèããŠããŸãã ç§ãã¡ããŸã 詊è¡é¯èª€äžã§ããåããããªåãçµã¿ãé²ããŠããæ¹ãããã°ããã²äžç·ã«åŠã³åããŸãããã ããè¯ãéçºäœéšããäžç·ã«è²ãŠãŠãããŸãããã ææ¥ã®èšäºã¯ @y-arimaããã®ãWebçã¡ã«ã«ãªã«ã¡ã«ã³ã€ã³ã®æ©èœãçµã¿èŸŒãæ€èšŒããã話ãã§ããåŒãç¶ããæ¥œãã¿ãã ããã