ã¯ããã« BASE FeatureDev3Group ã§Webã¢ããªã±ãŒã·ã§ã³ãšã³ãžã㢠ãããŠãã Capi(ããŽ) @ysssssss98 ã§ãã 2025/05/23(é)ãš24(å)ã«ãã«ãµãŒã«ç¥ç°ã§ TSKaigi2025 ãéå¬ãããŸããã BASEæ ªåŒäŒç€Ÿã¯ã·ã«ããŒã¹ãã³ãµãŒãšããŠTSKaigi2025ãžåè³ããBASEã®ãšã³ãžãã¢ãç»å£ããŸããã ä»åã®èšäºã§ã¯ç»å£è
ã®ã³ã¡ã³ããçŸå°åå ããã¡ã³ããŒã®ææ³ããå±ãããŸãïŒ çŸå°åå ã¡ã³ã㌠ç»å£è
ã³ã¡ã³ã ããã°ã©ãã³ã°ããããã³ãïŒ @Panda_Program ïŒ ä»åã¯ããããããããã®ã¯ãªãŒã³ã¢ãŒããã¯ãã£ã«ã€ããŠã話ãããŠããŸãããããããŒã¶ã«ãæ¡æããã ãã貎éãªæ©äŒãããã ããããšæè¬ããŠããŸãã speakerdeck.com ãããŸã§ã«ãäœåºŠãç»å£ããçµéšã¯ãããŸããããä»åã¯ãããŸã§ã§ãã¡ã°ã倧ããªäŒå Žã§ãããããã®æ¹ã«ã話ãå±ããããšãã§ããå¬ããã£ãã§ãã ã¹ã©ã€ãã¯ã¡ãã£ãšå€ãã ã£ãã®ã§ãããå
šäœãšããŠã¯ããæµãã§é²ããããŠããã¢ãæåããŠãèªåãšããŠãããªãæºè¶³ã®ããçºè¡šã«ãªããŸããã äŒå Žã®é°å²æ°ã¯ãšãŠãæž©ãããŠãå·®ã蟌ãã ãç¬ããã¿ã«ãã¡ãããšåå¿ããŠããã ããŠïŒç¬ïŒãæ¬åœã«è©±ããããã£ãã§ããçºè¡šåŸã«ã¯ãåãããããã£ãã§ãããããã£ãã§ãããšå£°ããããŠãã ããæ¹ãããŠãå°ãã§ã誰ãã®åèã«ãªã£ããªãäœããã ãªãšæããŸããã ä»åã®çºè¡šã¯ãèªåã®äžã§ã¯3éšäœã®ç¬¬2éšãšããäœçœ®ã¥ãã§ããã 第1éšïŒ ã¢ãžã¥ã©ãŒã¢ããªã¹ã«ã€ã㊠ïŒåã¢ãžã¥ãŒã«ã¯ã¯ãªãŒã³ã¢ãŒããã¯ãã£ïŒ 第2éšïŒä»åïŒïŒã¯ãªãŒã³ã¢ãŒããã¯ã㣠第3éšïŒæ¬¡åïŒïŒã¯ãªãŒã³ã¢ãŒããã¯ãã£ã§ããã¡ã€ã³å±€ãšãŠãŒã¹ãŒã±ãŒã¹å±€ã®ã³ãŒããã©ãæžãã ç¶ããšãªã第3éšã¯ãæ¥æéå¬ãããPHP Conference 2025ã§ã話ãããäºå®ã§ãããã¡ããæºåäžã§ãã ãŸããåœæ¥äœ¿çšããã¹ã©ã€ãã«ã¯ãåŸåã«ä»é²ãã€ããŠãããŸãã åœæ¥äŒå Žã§ã芧ããã ããæ¹ããèŠéããŠããŸã£ãæ¹ãããããã°ã¹ã©ã€ããèŠè¿ããŠãããããšå¬ããã§ãïŒ çŸå°ã§èŠãã»ãã·ã§ã³ãäžéšçŽ¹ä» åœæ¥ã€ãã³ãã«åå ããFutoshi Endoãããgatchan0807ãããMashu Kushibikiããã«çŸå°ã§èŠãã»ãã·ã§ã³ã®ãã¡ç¹ã«æ°ã«ãªã£ãã»ãã·ã§ã³ã®ã¬ããŒããããã ããŸããïŒ Rust補JavaScript/TypeScript Linterã«ããããã©ã°ã€ã³å®è£
ã®è£åŽ by unvalley ãã @Capi 2025.tskaigi.org Biomeã®Coreã¡ã³ããŒã§ããunvalleyããã«ããLinterã®è©±ã§ããTypeScriptã®è©±ããšããããèšèªãæ¯ããæè¡ã®è©±ã§ãã ESLintã®è©±ããå§ãŸããBiomeãä»åŸã©ããžåãã£ãŠããã®ããç¥ããŸãããä»ã®Linterãšã®å·®åã説æããã ããã®ãããã£ãã§ãã é£ããç®æã¯ããããããåã¿ç ããŠèª¬æããã ããã®ã§ããŒã«ãã§ã€ã³ãRustãLinterã®ã¢ã«ãŽãªãºã ã«è©³ãããªãèªåã§ã話ãã«çœ®ããŠããããããšã¯ã»ãšãã©ãããŸããã§ããã ç»å£ãèããŠããŒã«ãã§ã€ã³ãšJavaScriptã©ã³ã¿ã€ã ã®é¢ä¿æ§ãªã©JavaScripy/TypeScriptã®æ·±ãé åã«è§Šããããšãã§ããŸããã Pragmatic Functional Programming in TypeScript by yasaichi ãã by @Futoshi Endo 2025.tskaigi.org 颿°åããã°ã©ãã³ã°ã«ãããã5ã€ã®ååãã玹ä»ããªããããã®ååãå®éã«TypeScriptãäŸã«çµ±åããæŽ»çšã§ããã¹ã©ã€ãã§ããã 颿°ããã°ã©ãã³ã°ã«ã¯ããŸã詳ãããªãã®ã§ããããµã³ãã«ã³ãŒãã䜿ã£ãå
·äœçãªäŸããã£ãã®ã§ãå人çã«ããšãŠãçè§£ããããçºè¡šã§ããã ç¹ã«ãMake illegal states unrepresentableãã®ã«ãŒã«ã¯ãåãã§çžããTypeScriptãšçžæ§ãè¯ããªãšæããŸãããçºè¡šã§ã¯å
šéšã®ã«ãŒã«ãå³å¯ã«é©çšããã®ã§ã¯ãªãããããã®ååãéšåçã«é©çšããããšã§å¹æãåŸããããšèªãããŠããŸããããèªåãå®è·µããããªããŸããã ãTSç¹åClineããã°ã©ãã³ã°ã by mizchi ãã @Futoshi Endo 2025.tskaigi.org mizchiããã®çºè¡šã§TypeScriptãäžå¿ã«ã广çãªããã³ããã®ç޹ä»ãšãå®éã«æŽ»çšããŠã¿ãŠããŸãè¡ã£ãäºãããŸããããªãã£ãäºãæŽçããäžã§æ¬åœã«å®è·µã§æŽ»çšã§ããTipsã玹ä»ãããŠãŸããã çŸåšãèªåã¯ç€Ÿå
ã§AIããŒã«ãå°å
¥ãããããµããŒãããç«å Žã«ãªã£ãŠããã®ã§ããã³ãŒãçæã«ã¹ãã«ãå¯ããããšããã®ã¯ãšãŠãåºãããŸãããããŸã ãŸã ãããäºããããªãšæããŸããã ãã®çºè¡šãèããŸã§èªåã®äžã§ã¯ãAIããŸã "å¯æçžŠå£«"ãšããŠæ±ã£ãŠãããšããããæçžŠå£«ã®åžãè²ãèŠæããªãã£ããããªæ°ãããŸãã ãã ãããããã¯ã³ãŒãã£ã³ã°ã®é床ãçç£éã§ããã°å§åçã«AIã®æ¹ãçºéããŠããã®ã¯ç®ã«èŠããŠããã®ã§ãããããã¯"AIãæçžŠå£«"ãšããŠæ±ã£ãŠã¹ãã«ãåŠãã§è¡ãããšæããŸããã AI Coding Agents Enablement in TypeScript by Yuku Kotani ãã @gatchan0807 2025.tskaigi.org Ubieã®Yukuããã®ãã¡ãã®çºè¡šãéåžžã«å°è±¡ã«æ®ããŸããïŒ ãŸãåé ã§è§Šããããã解空éãã®è©±ã¯ãçæAIã䜿ã£ãéçºãããäžã§éçºè
éã®å
±éèªèãšããŠæã€ã¹ãéèŠãªæŠå¿µã ãšæ¹ããŠæããŸãããAIãã³ãŒããçæããéã®å¯èœæ§ã®ç¯å²ãšããããããã«é©åã«å¶çŽããŠããããšããèŠç¹ã¯ãä»åŸã®AIãšã®å調ã«ãããŠäžå¯æ¬ ã ãšæã£ãŠããŸãã ç¹ã«åŠã³ããã£ãã®ã¯ã解空éãé©åã«çµã蟌ãããã®ããŒã«ãã«ãŒã«ã®éèŠæ§ããããŠãã®å®è¡é床ãAgentæä»£ã«ãããéçºãµã€ã¯ã«ã®éãã«çŽçµãããšããã話ã§ãã AI Agentã®é«éãªãã£ãŒãããã¯ã«ãŒãã§ç䟡ãçºæ®ããããã«åæ
å ±ã®æ±ããLinterã«ãŒã«ãAIã«äœãããã¢ã€ãã¢ã¯AIã®èªåŸæ§ãé«ããå
·äœçãªéçãšããŠéåžžã«è峿·±ããèªåãã¡ã®ç°å¢ã«ããã¡æ©ãåãçµã¿ãããã€ã³ãã ãªãšæããŸããã å°ãæªæ¥ã«ã¯åœããåã«ãªããããªAIãšå
±åããéçºã¹ã¿ã€ã«ã«ã€ããŠã®è§£å床ãé«ãŸããšãŠãçŽ æŽãããçºè¡šã§ããã æè¡æžããœãããŠã§ã¢éçºãã - jsprimerã®10幎ããåŠã¶ç¶ç¶çã¡ã³ããã³ã¹ã®æè¡ by azu ãã @Mashu Kushibiki 2025.tskaigi.org JS ã®ãªã³ã©ã€ã³æè¡æžã§ãã JavaScript Primer ãå·çã»éå¶ãããŠãã Azu ããã®çºè¡šã§ãã JavaScript ã®ä»æ§ãå€åãããããéããããæžç±ããã®å€åã«å¯Ÿå¿ã§ããããã«äœã£ãŠãããšã®ããšã§ããããŸããæ®µèœãç« ããšã®äŸåé¢ä¿ãæŽçãããæ¢ç¥ããæªç¥ãã®é ã«èª¬æããããã¿ã«ãªã£ãŠããŸãã ãã®èãæ¹ã¯ããœãããŠã§ã¢éçºã§ããéšåã®åãæ¹ãäŸåé¢ä¿ã®ç®¡çãšäŒŒãŠããããšãã説æã§ããã ã€ãŸããæè¡æžã®å·çãšã¡ã³ããã³ã¹ããœãããŠã§ã¢éçºãšåãææ³ã§é²ããŠãããšããã®ãä»åã®çºè¡šã®è¶£æšã§ãããAsk the Speaker ã§ã¯ãAzuãããã©ããã£ãŠããããçºæ³ã«ãã©ãçããã®ããçŽæ¥èããŠããšãŠãåèã«ãªããŸããïŒ ãã®éšåã«ã€ããŠã¯å人ããã°ã§ææ³ãæžããŸãã ïŒã ãªã³ã©ã€ã³çã§ã¯ã³ãŒãå®è¡ãã¿ã³ãäœåæŒããããã Google ã¢ããªãã£ã¯ã¹ã§èšæž¬ãããªã©ãããžã¿ã«ãªãã§ã¯ã®å·¥å€«ã玹ä»ãããéåžžã«ç€ºåã«å¯ãçºè¡šã§ããã çŸå°ããŒã¹ äŒå Žã§ã¯åã¹ãã³ãµãŒäŒæ¥ã®ããŒã¹ããããŸãããåç€Ÿåæ§çãªããŒã¹ã°ããã§TSKaigiã«åããŠã¢ã³ã±ãŒãäŒç»ãäœã£ãŠãããTSKaigiçšã«ãµãŒãã¹ãçšæããŠããŸããã èªåã¯ãã€ããŒããã®ããŒã¹ã§ã¢ã³ã±ãŒãã«åçãããšããããã¬ã·ãŒã(èªåã®åçã«å€æ®µãã€ããŠããŠåèšéé¡ãå°åãããŠãã)ãããŒãã«ããŒãæåãããã ããŸããã ãã€ããŒããã®ããŒã¹ã§ããã ãããã® ããã㫠瀟å¡ã®ç»å£åå ãåè³æŽ»åãéããŠTypeScriptã³ãã¥ããã£ã®çãäžããã«è²¢ç®ã§ããåŒç€ŸãšããŠã倧倿æçŸ©ãªæéãšãªããŸãããã¹ã¿ããã®æ¹ã
ã«ã¯æ¥åã§ãå¿ããã«ãé¢ããããå€ãã®æéãã€ãã³ãæºåãžæ³šãã§ããã ããããšæããŸãããã®å ŽãåããŠåŸ¡ç€Œç³ãäžããŸãã BASEã¯çŸåšãšã³ãžãã¢ç©æ¥µæ¡çšäžã§ãïŒèå³ãããæ¹ã¯æ¡çšæ
å ±ããã²ã芧ãã ããïŒ binc.jp
ã¯ããã« BASE BANK Departmentã§éçºè²¬ä»»è
ãããŠããæè€ã§ãã BASE BANK Departmentã¯éèé åã®äºæ¥ãæ
åœããŠããŸãã Departmentã«åšç±ããŠãããšã³ãžãã¢ã¯10åã»ã©ã§ãã ç§ãã¡ã¯å
šå¡ããã«ãµã€ã¯ã«ãšã³ãžãã¢ãç®æããŠããããã®èšäºã§ã¯ãã®çç±ã玹ä»ããŸãã ãã«ãµã€ã¯ã«ãšã³ãžãã¢ãšã¯ ç§ãã¡ãèãããã«ãµã€ã¯ã«ãšã³ãžãã¢ãšã¯ããœãããŠã§ã¢ã©ã€ããµã€ã¯ã«ã®å
šåã«è²¬ä»»ãæã¡ããŠãŒã¶ãŒã«äŸ¡å€ãå±ããããšã«ãã©ãŒã«ã¹ãããšã³ãžãã¢ã®ããšã§ãã å
æ¥ãååã®Doarakkoãæžããã ãã«ãµã€ã¯ã«ãšã³ãžãã¢ãšããŠã©ãäºæ¥ã«è²¢ç®ããã ãã«èšèŒã®ãã£ã衚çŸããŸãã«ãã®ãšããã ãšæã£ãŠããŸãã ãšã³ãžãã¢ãªã³ã°ã«è»žè¶³ã眮ãã€ã€ãäºæ¥ã«è²¢ç®ããããã«å¿
èŠãªããšããªãã§ããããšã³ãžã㢠ãã«ãµã€ã¯ã«ãšã³ãžãã¢ã¯Netflixã®Tech Blogã§å
¬éãããã Full Cycle Developers ãã«ç±æ¥ãããã®ã§ãã ä»åã®å
容ã«é¢ãããšãããèŠçŽãããšã以äžã®ãããªå
容ã«ãªããŸãã ãœãããŠã§ã¢ã©ã€ããµã€ã¯ã«ãšã¯ãã¢ã€ãã¢ã顧客åãã®è£œåããµãŒãã¹ã«å¹æçã«å€æããããã®éçºãšéçšã®å
šäœã»å
šè²¬ä»»ãæã ãœãããŠã§ã¢ã©ã€ããµã€ã¯ã«ã®ç®çã¯ãtime to valueïŒäŸ¡å€ãçã¿åºããŸã§ã®æéïŒãæé©åããããš Full Cycle Developerãšã¯ããœãããŠã§ã¢ã©ã€ããµã€ã¯ã«å
šäœã«è²¬ä»»ãæã€éçºããŒã ã®ã¡ã³ã㌠Full Cycle Developerã¯ããœãããŠã§ã¢ã©ã€ããµã€ã¯ã«å
šäœãéããŠå°éç¥èãæŽ»çšããèªååãå¹çåãæšé²ããçŽæ¥çãªãã£ãŒãããã¯ã«ãŒããéããŠåŠç¿ãšæ¹åã«è²¢ç®ãã å
èšäºã¯DevOpsæèã®å
·äœäŸãå€ãã§ãããäžèšã®ããšãèžãŸãããšç®çã¯åãã ãšããã£ãŠããŸãã ç§ãã¡ã¯ãšã³ãžãã¢ãäŒç»ããèŠä»¶å®çŸ©ãèšèšãéçºããã¹ããQAãéçšããµãããããå«ããå
šåã§æŽ»èºããããšãæåŸ
ããŠããŸãã ãªãç®æãã®ã 1. éšåæé©ã§ã¯ãªããå
šäœæé©ãããã ç§ãã¡ã®ãŽãŒã«ã¯ãŠãŒã¶ãŒã®èª²é¡ã解決ãã䟡å€ãå±ããããšã§ãã ç矩ã®éçºã ãã§ã¯äŸ¡å€ãå±ãããšãããŸã§èŠãã¥ãããšèããŠããŸãã ãã®äžã§ã®ããã«ããã¯è§£æ¶ãæé©åã¯éšåæé©ã«ãªããããŸããã ãœãããŠã§ã¢ã©ã€ããµã€ã¯ã«å
šäœã«é¢ãããªãããå
šäœã俯ç°ããããšã§ãæ¬åœã®ããã«ããã¯ã¯ãªããªã®ãã課é¡ããªãªããªã®ããèŠããŠããŸãã ãã®ããã«ããã¯ã課é¡ãããŒã ã§è§£æ±ºããããšã§ãå±ãããã䟡å€ãå¢ãããããå±ããã¹ããŒãããããŠããããšã§ããã¯ãã§ãã Netflixã®èšèãåããã°ãç§ãã¡ããtime to valueã®æé©åãã®ããã«ãã«ãµã€ã¯ã«ãšã³ãžãã¢ãç®æããŠããŸãã 2. å°äººæ°ã§æ°èŠäºæ¥ã®ä»®èª¬æ€èšŒãé«éã«å®çŸãããã ç§ãã¡ã¯0â1ã®æ°èŠäºæ¥ç«ã¡äžããè¡ã£ãŠããŸãã æšå¹Žã¯PAY.JP YELL BANKãç«ã¡äžããä»å¹Žãããã€ãã®äŒç»ãé²ãã§ãããä»åŸãããããæ©äŒã¯å€ãã§ãããã åœããåã§ãããæ°èŠäºæ¥ã§ããœãããŠã§ã¢ã©ã€ããµã€ã¯ã«ãåããŠããããããã¯ããããè¯ããã®ã«ããŠãããŸãã ãã®æã«å€ãã®ãšã³ãžãã¢ãããªããã°ãœãããŠã§ã¢ã©ã€ããµã€ã¯ã«ãåããªããæ¹åã§ããªãç¶æ
ã¯æ°èŠäºæ¥ã®ç«ã¡äžãã«ãšã£ãŠå€§ããªã³ã¹ãã«ãªããŸãã ãã®åã ãç«ã¡äžããé£ãããªã£ãŠããŸãã§ãããã äžäººäžäººã®ãšã³ãžãã¢ããœãããŠã§ã¢ã©ã€ããµã€ã¯ã«å
šäœã§æŽ»èºããPdMããã¶ã€ããŒãªã©ã®ã¡ã³ããŒãšååããªãããå°äººæ°ã§ãµã€ã¯ã«ãçŽ æ©ãåããããšãã§ããã°ãã³ã¹ããæããããŸãã ãã®çµæããŠãã³ã¹ãããã©ãŒãã³ã¹ããã仮説æ€èšŒãããããè¡ããããšã§ãäºæ¥ã®ç«ã¡äžãæåã®ç¢ºçãäžããããŸãã æ°èŠäºæ¥ãæåã«å°ããããŒã ãç®æãããã§ããã«ãµã€ã¯ã«ãªé¢ããæ¹ã¯äžå¯æ¬ ã§ãã ãã«ãµã€ã¯ã«ãšã³ãžãã¢ã®æŽ»èºã§äºæ¥ãæåã«å°ããŸãã 3. æé·ããªãããéçºã楜ãããã æœçãšããŠã®æåŠã¯ãã¡ãããèšèšãå®è£
ã®æåŠãå®éã«ãªãªãŒã¹ããŠã¿ãªããšããããŸããã ãŠãŒã¶ãŒã®åå¿ãåãåã£ããããããã¯ãã䌞ã³ãããšã§ãããã£ãç¹ãæ¹åç¹ãèŠããŠããŸãã ã ããããããªãã€ããã®ããèããèšèšãå®è£
ãããªãªãŒã¹ãããã£ãŒãããã¯ãåãåããããã«ãã£ãŒãããã¯ããæ¹åããã ãã®äžé£ã®æµãã«ãã¹ãŠã«é¢ããããšãããšã³ãžãã¢ãšããŠã®æé·ã«ã€ãªãããšç§ãã¡ã¯æããŠããŸãã èªåãã¡ãå®è£
ãããã®ã®èæ¯ã¯ãªã«ã§ããªãªãŒã¹ããçµæã©ãã ã£ãã®ããããããæ·±ãçè§£ããããšã§ãéçºãããåµé çã§ãããããããªã£ãŠãããšç§ãã¡ã¯ä¿¡ããŠããŸãã ãã«ãµã€ã¯ã«ãšã³ãžãã¢ãéãŸããšã©ããªãã è¶å¢ãåœããåã«ãªã ãã«ãµã€ã¯ã«ã§éçºãé²ããã«ã¯ãè·åãè·èœã®å£ãè¶ããããšãäžå¯æ¬ ã§ãã ã誰ã®ä»äºããã§ã¯ãªãããããã¯ããåã«é²ããããã«äœãå¿
èŠããã«ç®ãåããŠåããããšãæ±ãããã ãããããå
ã¯ä»ã®ã¡ã³ããŒã®æ
åœããããã¯èªåã®ä»äºã§ã¯ãªãããšç·ãåŒããã ãããã¯ããåã«é²ããããã«å¿
èŠã ãšæã£ãããšã«ã¯èªãè¡åãããšããå§¿å¢ãããŒã ã«èªç¶ãšåºãã£ãŠãããŸãã ãããªããšãè·èœãè¶
ããè¶å¢ãåœããåã«ãªãã飿ºãçãŸããããŒã å
šäœã§äŸ¡å€ãå±ããåããå éããŸãã ãªãŒããŒã·ãããçãŸãã ãœãããŠã§ã¢ã©ã€ããµã€ã¯ã«å
šåã§æŽ»èºããèªãæææ±ºå®ããå®è£
ãããªãªãŒã¹ããéçšãããµãããããæ¹åããã ãã®ãããªåããç¹°ãè¿ããŠããããšã§ããšã³ãžãã¢ã®äžã«ãèªåããããã¯ãã䌞ã°ãããšããæèãè²ã¡ãŸãã ãããŠãè·èœã«é¢ä¿ãªãããŒã å
šå¡ããã«ãµã€ã¯ã«ã«åãããããã¯ãã䌞ã°ãæèãæãŠããšããããããããè¯ãåãããã®æææ±ºå®ãšè¡åãã§ããããã«ãªããŸãã ãã®çµæãšããŠããŠãŒã¶ãŒã«äŸ¡å€ãå±ããŸã§ã®æéïŒtime to valueïŒãçããªããã¹ããŒããšè³ªãäž¡ç«ã§ãã匷ãã«ããŒã ã«ãªã£ãŠãããŸãã ãããã« ãããŸã§æžããŠããããšã¯ãããããããšåœããåã«æãããããããŸããã å®éãç§ãã¡èªèº«ããã«ãµã€ã¯ã«ã§é¢ããã®ãèªç¶ãšæã£ãŠããŸãã ãã ããã®åœããåãããŒã å
šäœã§ç¶ç¶ããçµç¹ã®æåãšããŠæ ¹ã¥ãããŠããã®ã¯ç°¡åã§ã¯ãããŸããã ç§ãã¡ã®ããŒã ãããŸã çæ³ã«ã¯å±ããŠããŸãããç®æãç¶ããŠããæäžã§ãã ãäžç·ã«ç®æããŠã¿ããïŒããšæã£ãŠãããæ¹ãããã°ããšãŠãå¬ããã§ãïŒ binc.jp
ã¯ããã« ããã«ã¡ã¯ïŒ BASE BANK ã§ãBASE ãå©çšããã·ã§ãããªãŒããŒãããç°¡åã«è³é調éã§ãããµãŒãã¹ã YELL BANK ãã®éçºãæ
åœããŠãã Doarakko  ã§ãã ä»å㯠BASE BANK ãæ²ããŠãããã«ãµã€ã¯ã«ãšã³ãžãã¢ãšããåãæ¹ã®äžã§ãYELL BANK ã®éçºããŒã ãå®éã«ã©ã®ãããªããšãè¡ãªã£ãŠããã®ãããã€ã玹ä»ããŸãã ãã«ãµã€ã¯ã«ãšã³ãžãã¢ãšã¯ ãããŸã§ãœãããŠã§ã¢ã©ã€ããµã€ã¯ã«ã®å段éã忥ãå°éåããŠããç¶æ
ãããããã¹ããŒãã£ã«ãããã¯ãã¢ãŠãããããç¶ããããã«äžé£ã®æ®µéãäŸ¡å€æäŸã«é¢ãããšã³ãžãã¢ãããŒã ã責任ãæã¡ãå®è¡ã§ããããã«ããããšããã¹ã¿ã³ã¹ã§ãã Real World Full Cycle Developers ããæç²ãããŠããã ããŸããã ç§ã¯ãã«ãµã€ã¯ã«ãšã³ãžãã¢ãããšã³ãžãã¢ãªã³ã°ã«è»žè¶³ã眮ãã€ã€ãäºæ¥ã«è²¢ç®ããããã«å¿
èŠãªããšãäœã§ããããšã³ãžãã¢ãšè§£éããŠããŸãã äœã§ããããšã¯èšãã€ã€ããããã¯ãã圢ã«ããŠãŠãŒã¶ãŒã«å±ããããšããšã³ãžãã¢ã®äžçªã®ä»äºã§ãã ä»åã¯åœ¢ã«ããããšãšã¯å°ãé¢ãããšããã§ããã«ãµã€ã¯ã«ãšã³ãžãã¢ãšããŠè¡ã£ãŠããããšã玹ä»ããŸãã å®éã«è¡ã£ãŠããããš äºæ¥åœ±é¿ã®å€§ããæ°å€ã®ç£èŠãšãã®å¯Ÿå¿ äºæ¥è²¬ä»»è
ã»äºæ¥äŒç»ã»PdMã»PMMã»ã¢ããªã¹ãã»ãªãã¬ãŒã·ã§ã³ã»ãã¶ã€ããŒã»ãšã³ãžãã¢ãšãè·çš®ããšã«è²¬åã¯ç°ãªããŸãã èŠãŠããæ°åã¯åºæ¬çã«ã©ãã©ããã¬ã€ã¯ããŠã³ããŠãããããããã®é åã§äºæ¥åœ±é¿ã®å€§ããæ°å€ã«è²¬ä»»ãæã€å¿
èŠããããŸãã ããã§å®éã« YELL BANK ã®éçºããŒã ã§ç£èŠããŠãããã®ã2ã€ç޹ä»ããŸãã æ©æ¢°åŠç¿ã®æšè«çµæã®ç£èŠ YELL BANK ã§ã¯ã·ã§ããããšã®å£²äžãå
ã«è³é調éå¯èœãªéé¡ãç®åºããŠããŸãã 売äžã倧ãããã°å€§ããã»ã©ãè³é調éå¯èœãªéé¡ã倧ãããªããŸãã éé¡ã®ç®åºã«ã¯æ©æ¢°åŠç¿ã䜿çšããŠããŸãã ãŸã YELL BANK ã¯å
šãŠã®ã·ã§ãããå©çšã§ããããã§ã¯ãããŸããã ã·ã§ããããšã«å¯©æ»ãè¡ãªã£ãŠããããã®äžã§ãæ©æ¢°åŠç¿ã䜿çšãããŠããŸãã è³é調éå¯èœãªéé¡ã¯ã·ã§ãããªãŒããŒããã®è³éç¹°ãã®äžå®ãè§£æ¶ããæ¬¡ã®ææŠãæ¯ããããšãã§ããã®ããšããç¹ãã·ã§ããããšã®å¯©æ»çµæã¯å©çšå¯èœãªã·ã§ããæ°ã«åœ±é¿ãäžãããšããç¹ã§ãéåžžã«éèŠãªæ°å€ã§ãã æ©æ¢°åŠç¿ãçšããã·ã¹ãã ãéåžžã®ã·ã¹ãã ãšç°ãªãã®ã¯ããšã©ãŒã«ã¯ãªã£ãŠããªããŠãåé¡ãèµ·ããŠããã±ãŒã¹ããããšããããšã§ãã äŸãã° ã¢ã«ãŽãªãºã ã®å€æŽã«ãããéé¡ãæå³ãã倧ããå€åããŠãã ããŒã¿ã®å€åã«ããã審æ»ã«éã£ãŠããã·ã§ããæ°ãå°ãªããªã£ãŠãã æ©æ¢°åŠç¿ã®æšè«çµæã¯æ¯æ¥å€åããããããããã§ã·ã§ããããšã®æšè«çµæã S3 ã«ä¿åãããã¡ãã BigQuery ã«é£æºããŠããŸãã ãããã Looker ãšãã®ã¢ã©ãŒãæ©èœãçšããŠãäžå®ã®å€åããããš Slack ã«ã¢ã©ãŒããé£ã°ãããã«ããŠããŸãã å®éã«æ°å€ã«å€åããã£ãéã¯ãã¢ããªã¹ããšé£æºããŠå¯Ÿå¿ãè¡ãªã£ãŠããŸãã YELL BANK ã®æ¯æé¢é£ã®æ°å€ã®ç£èŠ YELL BANK ã®ããžãã¹ã¢ãã«äžãã·ã§ãããªãŒããŒãããè³é調éããã ãã§ã¯ç§ãã¡ã®å£²äžã«ã¯ãªããŸããã è³é調éåŸã«ã·ã§ãããªãŒããŒãããæ¯æããå®äºããŠåããŠãç§ãã¡ã®å£²äžã«ãªããŸãã æ¯æãã¯ã·ã§ããã®ååã売ããïŒæ£ç¢ºã«ã¯å£²äžãèšäžãããååãçºéãããïŒæã«ãååã®å£²äžéé¡ãå
ã« YELL BANK ãžã®æ¯æéé¡ã決ãŸããŸãã ã·ã§ããã®å£²äžãå°ãªããšãã«ããªãã¹ã YELL BANK ã®æ¯æããè² æ
ã«ãªããªããããªä»çµã¿ã§ãã https://yellbank-lp.thebase.com/ YELL BANK ã®æ¯æãéé¡ã¯ãååã®ä»£éããæ§ã
ãªææ°æãå·®ãåŒãããåŸã®å£²äžããèšç®ãããŸãã ãã®ãã YELL BANK ã®æ¯æãåŠçã¯ãçºéãææ°æãé¢é£ããæ§ã
ãªãããžã§ã¯ãã®åœ±é¿ãåããŸãã åºæ¬çã«ã¯ãããžã§ã¯ãããŒã ãšé£æºããªãã察å¿ãè¡ããŸãããèæ
®æŒããããŒã¿éã®å¢å ã«ãã圱é¿ã§ãYELL BANK ã®æ¯æããæ£åžžã«è¡ããŠããªãããšããããŸãã æ¯æãã«é¢ããããã€ãã®æ°å€ãç£èŠããç°åžžããã£ãéã«ã¯ä¿®æ£ãä»ããŒã ãšã®é£æºããšã£ãŠå¯Ÿå¿ãè¡ãªã£ãŠããŸãã ãªãã¬ãŒã·ã§ã³ããŒã ãšååããŠéçšæ¥åãå¹çå BASE BANK ã®ãªãã¬ãŒã·ã§ã³ããŒã ã¯ã·ã§ãããªãŒããŒããããã®åãåãã察å¿ã ãã§ã¯ãªããå©çšå¯åŠã®æçµãã§ãã¯ãè³é調éåŸã®ãã©ããŒãªã©æ§ã
ãªæ¥åãè¡ã£ãŠããŸãã ãŠãŒã¶ãŒæ°ã®å¢å ã«æ¯äŸããŠæ¥ã
ã®éçšæ¥åã«ãããå·¥æ°ã倧ãããªã£ãŠããŸããã ããã§ãªãã¬ãŒã·ã§ã³ããŒã ãšãšã³ãžãã¢ãååããŠã®ãéçšæ¥åå¹çåãããžã§ã¯ããå§ãŸããŸããã å§ãŸã£ããã£ãã㯠BASE BANK ã§æã«1åè¡ã£ãŠããå
šè·çš®ååã® LT äŒã§ãã ãªãã¬ãŒã·ã§ã³ããŒã ã®ã¡ã³ããŒããæ¥ã
ã©ã®ãããªæ¥åãè¡ã£ãŠããã®ãçºè¡šãããããã®äžã§æ¥ã
ã®éçšæ¥åã«ãããå·¥æ°ã倧ãããªã£ãŠããããšãç¥ããŸããã éçšæ¥åãå¹çåããããã«ã¯ããŸãã¯ãšã³ãžãã¢èªèº«ãå®éã®æ¥åãäœéšããªããšãšããããšã§ããªãã¬ãŒã·ã§ã³ããŒã äž»å°ã§éçšæ¥åã®äœéšäŒãéå¬ããŠããã ããŸããã å®éã«ãšã³ãžãã¢ãæ¥åãäœéšããããšã§ãã©ã®äœæ¥ã«è² æ
ãããã£ãŠããã®ããã©ããããã«ããã¯ã«ãªã£ãŠããã®ãããªãã¬ãŒã·ã§ã³ããŒã ã®çã®å£°ãèããªããçè§£ãæ·±ããããšãã§ããŸããã äœéšäŒåŸã«ãšã³ãžãã¢ãéçšæ¥åã®å
容ã Figjam ã«æŽçãããããå
ã«ãªãã¬ãŒã·ã§ã³ããŒã ãšå¹çåã®æ¹éãè°è«ãã¢ãŠããããã€ã¡ãŒãžãããåãããŸããã éçºãã¹ã¿ãŒãããåŸã现ããé »åºŠã§ã·ã¹ãã ã«è§Šã£ãŠããã ãããšã§ãFB ã®ãµã€ã¯ã«ãäœåãåããææ»ããæããªããã¹ããŒãã£ãŒã«éçºãé²ããŸããã ãªãªãŒã¹åŸã«ã¯ãããã FB ãããããããã ããŸããã ãã®åŸã远å ã®å¹çåæ¡ããªãã¬ãŒã·ã§ã³ããŒã ããææ¡ããŠããã ããçŸåšãç¶ç¶ããŠéçºãè¡ã£ãŠããŸãã ãªãã¬ãŒã·ã§ã³ããŒã ã®æ
å ±çºä¿¡ããã£ããã«ãšã³ãžãã¢ã圢ã«ããŠå§ãŸã£ããã®åãçµã¿ããããŒã ãšããŠä»åŸãç¶ç¶ããŠãããã°ãšæããŸãã AWS ã®ã³ã¹ãåæž BASE BANK ã§ã¯æ¯æã® AWS ã®éé¡ã®å¢æžããŠã©ããããŠãå€åããã£ãéã«ã¯èª¿æ»ã»å¯Ÿå¿ãè¡ãªã£ãŠããŸãã äžéšã§ã¯ã¢ã©ãŒããèšå®ããŠãéé¡ã®æ¥æ¿ãªå€åã«ãããã«æ°ã¥ããããã«ããŠããŸãã ãã ããããã®çŸåšã®ã³ã¹ãã«å¯ŸããŠãã³ã¹ãåæžã§ãããšããããªãããšãããšããã¯èŠããŠããŸããã§ããã ããã§æšå¹Žæ«ã«ãAWS ã®ã©ã®ãµãŒãã¹ã«ã©ãããããéãããã£ãŠããã®ããããŒã ã§ç¢ºèªã éé¡ã倧ãããã®ããé ã«ã³ã¹ãåæžã§ãããšããããªããã調ã¹ãŠãããŸããã ãã®äžã§äœ¿çšããŠãã ElastiCache ããªãŒããŒã¹ããã¯ã§ããããšããäžèŠãªãªãœãŒã¹ãååšããŠããããšãããããŸããã äžèŠãªãªãœãŒã¹ã«ã€ããŠã¯åé€ãElasticache ã«ã€ããŠã¯ã·ã¹ãã ã®æ°å€ãç£èŠããªããæ®µéçã«ã¹ããã¯ãèœãšããŠãããæçµçã«ã¯å¹ŽéçŽ110äžåã®ã³ã¹ãåæžã«æåããŸããã ãµãŒãã¹ãã°ããŒã¹ããŠå£²äžãç«ãŠãã®ã¯å€æ°ãå€ãäžç¢ºå®æ§ãé«ãã§ãããã€ã³ãã©ã³ã¹ãã®åæžã¯ïŒåºæ¬çã«ã¯ïŒèªåãã¡ã®ã·ã¹ãã ãšãã¡ããšåãåãã°å®çŸå¯èœã§ãã AWS ã®ã³ã¹ãåæžã«ã€ããŠã¯ããŸã ããŒã å
ã®ç¥èŠãå°ãªããå°ããªå¯Ÿå¿ããã§ããŠããªãããã䌞ã³ããããããšèããŠããŸãã 瀟å
ã®ä»ããŒã ãšç¥èŠãå
±æããªãããåŒãç¶ããã£ãŠãããã°ãšæããŸãã ãããã« ä»å玹ä»ãããŠããã ããã®ã¯ãããŸã§äžäŸã§ãäºæ¥ã«è²¢ç®ããããã«ãããããšã¯ä»ã«ããããããããšæããŸãã ãã®èšäºãèªãŸããæ¹ããèªåãã¡ã®çµç¹ã§ã¯ãšã³ãžãã¢ããããªããšããã£ãŠããŸããšããããšãçºä¿¡ããŠããã ãããšãšãŠãããããã§ãã ïŒãã«ãµã€ã¯ã«ãšã³ãžãã¢ãæ²ããŠããªããŠãïŒ ãŸã BASE BANK ã¯ãããã£ãããšãããå°œããããŠããçµç¹ã§ã¯ãããŸããã çŸåšè€æ°ã®æ¢åäºæ¥ã®ã°ããŒã¹ãšæ°èŠäºæ¥ã®ç«ã¡äžããè¡ãªã£ãŠããããããããšã¯ãããã転ãã£ãŠããŸãã 転ãã£ãŠããããšã«æ°ã¥ããŠããªãããšããããããããšæããŸãã å°ãã§ãèå³ãæã£ãŠããã ããããæ°è»œã«ã«ãžã¥ã¢ã«é¢è«ã«æ¥ãŠããã ãããã§ãïŒ æ¡çšæ
å ± | BASE, Inc. - BASE, Inc.
ã¯ããã« BASE FeatureDev3Group ã§Webã¢ããªã±ãŒã·ã§ã³ãšã³ãžã㢠ãããŠãã Capi ã§ãã 2025/3/21ïŒéïŒ- 3/23ïŒæ¥ïŒã®3æ¥éãBASEæ ªåŒäŒç€ŸããŽãŒã«ãã¹ãã³ãµãŒãšããŠåè³ãã PHPerKaigi 2025 ãéå¬ãããŸãããä»åã¯PHPerKaigi 2025ã«åå ããã¡ã³ããŒã®ã³ã¡ã³ããææ³ããå±ãããŸãïŒ çŸå°åå ã¡ã³ã㌠PHPerKaigiãšã¯ PHPerKaigiã¯ããªãŒãã³ãœãŒã¹ã®ã¹ã¯ãªããèšèª PHP ïŒæ£åŒåç§° PHP:Hypertext PreprocessorïŒã䜿çšããŠããæ¹ãéå»ã«PHPã䜿çšããŠããæ¹ãããããPHPã䜿ããããšæã£ãŠããæ¹ããããŠPHPã倧奜ããªæ¹ãã¡ããæè¡çãªããŠããŠãšPHPæãå
±æããããã®ã€ãã³ãã§ããã³ãã¥ããã£è²¢ç®æŽ»åã®äžç°ãšããŠãä»å¹Žã¯ãŽãŒã«ãã¹ãã³ãµãŒãšããŠåè³ããŸããã ç»å£è
ã³ã¡ã³ã Saki Takamachi é«çºå²è¡£ @takamachi1saki BASEã«ãŠããã¯ãšã³ããšã³ãžãã¢ãããŠããŸããããã¡(é«çºå²è¡£)ã§ãïŒ PHP Foundationã®ã³ã¢éçºè
(å°éé å PDOãBCMath)ããããŠPHP 8.4ã®Release ManagerãããããŠããã ããŠããŸãã ä»åã®ç»å£ã§ã¯ãPHP 8.4ã§å€§å¹
ã«ããã©ãŒãã³ã¹ã¢ããããBCMathã«ã€ããŠã話ãããŠããã ããŸããã BCMathã¯PHP8.4ã§ã®å€æŽç®æãæ¬åœã«å€ãã40åã«åããããã«æ¢ããŠåãäžããªãã£ãç®æããããŸãããã倧ããªå€æŽç¹ã¯ãªããšãå
šãŠãäŒãã§ããããšæããŸãã speakerdeck.com Cèšèªã§ããªãäœã¬ã€ã€å¯ãã®å
容ãšãªããŸããããããããã®ãã£ãŒãããã¯ãããã ããŠå±ã¿ã«ãªããŸããïŒ php-srcã®äžèº«ã«ã€ããŠã®è©±ã ã£ãã®ã§èå³ãæã£ãŠããããããšããäžå®ããã£ãã®ã§ãããæ¬åœã«ããããã®æ¹ã
ãæ¥ãŠãã ããããã®å
容ã§ç»å£ãããŠããã ããŠè¯ãã£ããšæã£ãŠããŸãã ããããã®åœãããäžãééããªãæ¥æ¬ã®PHPã³ãã¥ããã£ã¯ãPHPãæ¯ããäž»èŠãªã³ãã¥ããã£ã®ã²ãšã€ã ãšå®æããç»å£ãšãªããŸããã ããã°ã©ãã³ã°ããããã³ãïŒ @Panda_Program ïŒ BASE ã«ãŠ Advanced Engineer ãããŠãããŸãããã°ã©ãã³ã°ããããã³ãã§ããå»å¹Žæ«ãŸã§ãã®è©æžãã ã£ãã®ãšéããããã®ã§ç€Ÿå€ã§ã¯ã·ãã¢ãšã³ãžãã¢ãšåä¹ã£ãŠããŸãã瀟å
ã§ã®æ£åŒãªè©æžã¯ Advanced Engineer ã§ãããããããã®ã§ã·ãã¢ãšã³ãžãã¢ã£ãŠæã£ãŠããã£ãŠå€§äžå€«ã§ãã ããŠãä»åã¯BASEã®ãªã¢ãŒããã¯ãã£ã®äžå¿å°ã§ããã¢ãžã¥ã©ãŒã¢ããªã¹ã«ã€ããŠç޹ä»ããŸãããPHPçéã§ã¯ãŸã BASEã¯ã¬ã¬ã·ãŒãªã¢ããªã±ãŒã·ã§ã³äžã§éçºããŠãããšæãããŠããã®ãããšæããŠãããããããã§ã¯ãªããŠã¯ãªãŒã³ãªã¢ãŒããã¯ãã£ã§æ¥ã
éçºããŠãããã ãšããããšãäŒãããã£ãããã§ãã ã¢ãžã¥ã©ãŒã¢ããªã¹ã§ã¹ã±ãŒã©ãã«ãªã·ã¹ãã ãäœã - BASE ã®ãªã¢ãŒããã¯ãã£ã®ã㟠speakerdeck.com æ¬çºè¡šã¯ãããã¯ãªãŒãã§ãã kawashima ããã®PHPerKaigi 2022ã®çºè¡šã®ç¶ç·šãšãªãããšãæèããŠäœããŸããã BASEå€§èŠæš¡ãªã¢ãŒããã¯ãã£ãªã³ã° speakerdeck.com èªåã®æ¹ã¯ã¢ãžã¥ã©ãŒã¢ããªã¹ã®æŠèŠèª¬æã«ãšã©ãŸããŸããããæè¡çãªæ·±ã話ã¯ãã€ãã©ããã§ kawashima ãããç±æã®ããã¡ã³ããŒãããŠããããšæããŸãã PHPerKaigi 2025ã¯ç»å£ãã»ãã·ã§ã³ãžã®åå ãæ¬åœã«æ¥œããŸããŠé ããŸãããã¹ã¿ããã®æ¹ã
ãåå ãããæ¹ã
ãã¿ãªããããããšãããããŸããïŒ 02 ( @cocoeyes02 ) BASE BANKã«ãŠãã«ãµã€ã¯ã«ãšã³ãžãã¢ãããŠããŸãã02ã§ãã ä»åã¯ç»å£ãš1ã€ã¢ã³ã«ã³ãã¡ã¬ã³ã¹ã«ç»å£ããŸããã PHP8.4ã«ãããJITãã¬ãŒã ã¯ãŒã¯IRãšäžé衚çŸã«ã€ããŠçè§£ãæ·±ãã speakerdeck.com åœã»ãã·ã§ã³ã§ã¯ãPHP8.3ãŸã§ã®PHPã®ã³ã³ãã€ã«ã«ã€ããŠç°¡åã«èª¬æãã€ã€ãPHP8.4ã§å°å
¥ãããJITã³ã³ãã€ã©å
ã®äžé衚çŸããã³äžé衚çŸãã¬ãŒã ã¯ãŒã¯IRã«ã€ããŠæŠèŠã®è§£èª¬ãããŸããã 40åãšããã®ã¯ãã£ãšããéã§ãããã€ãæŠèŠã衚é¢çãªãšããã«çããå
容ã«ãªã£ããšããããããŸãããç¹ã«æé©åã®éšåã¯ã¢ã«ãŽãªãºã ã«ã€ããŠã¬ãããªè§£èª¬ããã®ã§ã¯ãªããPHPã®ã³ãŒããäŸã«ããŠã©ãããããšããã£ãŠããã®ãé°å²æ°ãæããšããããã«ããæµãã«ããŸããã å°è±¡çã ã£ãã®ã¯ãäžé衚çŸã®åã«ããããJITã«ã€ããŠã®è³ªåãããã€ããã£ãããšãèšæ¶ã«æ®ã£ãŠããŸããã¹ã©ã€ãã«ãæžããŠããéããç¯å²ãçµã£ãŠãããã ãã§1ãããã¯ã®çºè¡šã«ãªãåéãªã®ã§ãJITã¯JITã§è©±ããŠãè¯ããããããŸãããã ãŸããã¢ã«ãŽãªãºã ã«ã€ããŠã¬ãããªè§£èª¬ããŒããäœããã®åœ¢ã§ã¢ãŠããããããããªãšå人çã«ã¯æã£ãŠãããŸãã meihei ( @meihei ) speakerdeck.com BASE ã§ PHPer ãããŠããŸããmeihei ã§ãã PHPerã³ãŒãããã«æºã
決åã»æºæ±ºåã«åºãããŠããã ãããList ãšã¯äœãïŒããšããã¿ã€ãã«ã§ LT ãçºè¡šãããŠããã ããŸããã PHPerã³ãŒãããã«ã¯ãç°¡åãªPHPã®ã³ãŒããå¶éæéå
ã§ããçãæžããæ¹ãåã¡ãšããããã«ã§ããã æ®æ®µã®æ¥åã§ããã°çµ¶å¯Ÿã«äœ¿ããªããããªã³ãŒãã®æžãæ¹ããµãã ãã«äœ¿ããããçãæžãæ¹ãéžæãç¶ããŸããããšãŠã楜ããã£ãã§ãã <?php echo $ s = ( $ _ = "str_repeat" )( '*' , $ w = fgets ( STDIN )) . " " ; foreach ([ ... range ( 1 , $ w / 2 ) , ... range ( $ w / 2 - 1 , 1 )] as $ i ) echo $ _ ( ' ' , $ i ) . '* ' ; echo $ s ?> âæºã
決åã§äŒå Žã沞ãããã³ãŒããæšæºå
¥åããæž¡ãããæŽæ°ããΣã®åœ¢ã« * ãåºåãããšããåé¡ã§ããã ãList ãšã¯äœãïŒããšããçºè¡šã§ã¯ãPHP 8.1 ãã远å ããã array_is_list ãšãã颿°ã® RFC ãèªã¿è§£ããŠã仿§ã»éçè§£æã»å
éšå®è£
ã®èŠç¹ãã解説ããŸãããæ®æ®µããäœæ°ãªããªã¹ãã䜿ã£ãŠããããšæããŸãããæ°ããªæ°ã¥ããåŸããã£ãããšãªã£ãŠãããããšå¹žãã§ãã çŸå°ã§èŠãã»ãã·ã§ã³ãäžéšçŽ¹ä» åœæ¥ã€ãã³ãã«åå ããCapiãããHiroki Otsukaããã«ãçŸå°ã§èŠãã»ãã·ã§ã³ã®ãã¡ç¹ã«æ°ã«ãªã£ãã»ãã·ã§ã³ã®ã¬ããŒããããã ããŸããïŒ ã³ãŒãããã« @OtsukaHiroki ä»ååéå¬ãšãªãã³ãŒãããã«ã®meiheiãããåå ãããæºã
決åã»æºæ±ºåã芳æŠããŸããã å
ã
ã³ãŒããŽã«ããšããç«¶æãç¥ãããã©ã®ãããªå¯ŸæŠãããã®ãã¯ã¯ã¯ã¯ããªãã芳æŠãå§ããŸããã ããã«ã³ãŒããçãæžãããéèŠãªã®ã§ãæ®æ®µã®ã³ãŒãã£ã³ã°ã§ã¯çµ¶å¯Ÿã«äœ¿ããªããããªèšè¿°ã颿°ã倧éã«åºãŠããŠããšãŠãå匷ã«ãªããŸããã ã©ã®ãããªã³ãŒããåºãŠãããã¯meiheiãããèšèŒããŠããã ããŠããã®ã§å²æããŸãã OpenTelemetryãæŽ»çšããObservabilityå
¥é @OtsukaHiroki OpenTelemetryを活用したObservability入門 by 清家史郎 | トーク | PHPerKaigi 2025 #phperkaigi - fortee.jp OpenTelemetryãšããããŒã«ãå©çšããObservabilityãåäžãããããã®ä»çµã¿ãªã©ã解説ãããŠããã»ãã·ã§ã³ã§ããã OpenTelemetryã§ã®èšè£
ãåãå£ã«Observabilityã®å©ç¹ãå®éã®åææ¹æ³ãæ¹ããŠçè§£ããããšãã§ããŸããã åŒç€Ÿã§ã¯New Relicãå©çšããŠããOpenTelemetryã¯å©çšããŠããªãã®ã§ãããç¹å®ã®ãã³ããŒã«äŸåããªãOpenTelemetryã®å©ç¹ãªã©ã詳现ã«ã説æããã ããOpenTelemetryã«ãèå³ãæ¹§ããŠããå
容ã§ããã æè¡çè² åµãæ£ããçè§£ããæ£ããä»ãåã @OtsukaHiroki 技術的負債を正しく理解し、正しく付き合う by 河瀨 翔吾 | トーク | PHPerKaigi 2025 #phperkaigi - fortee.jp æè¡çè² åµãšã¯äœããæ£ããä»ãåãããã«ã¯ã©ã®ããã«èããã°è¯ãã®ããªã©ã解説ãããã»ãã·ã§ã³ã§ããã æè¡çè² åµã«ã€ããŠã¯éçºè
ãšããŠã¯åã£ãŠãåããªãåé¡ã ãšæã£ãŠããŸãã ç§èªèº«ãä»ãŸã§äœåºŠãåãåã£ãŠããã®ã§ããããæè¡çè² åµã¯é©åã«ã³ã³ãããŒã«ãããããè
æé²æ¢å±€ãããªãã¡ã¯ã¿ãªã³ã°ãæ¥åžžã®ã«ãŒãã£ã³ã«ããããªã©ãæè¡çè² åµãšã®ä»ãåãæ¹ã®è²ã
ãªèãæ¹ãæ°ãã«ç¥ãããšãã§ããŸããã ããã«å§ããããå
容ããã£ãã®ã§ãæ©éåãå
¥ããŠã¿ãããšæãå
容ã§ããã â»å®å
šã«åãåããªãªãŒã¹ãããããã«: 15幎æ¥ã¬ã¬ã·ãŒã·ã¹ãã ã®ãã«ãªãã¬ã€ã¹ææŠèš @Capi 安全に倒し切るリリースをするために:15年来レガシーシステムのフルリプレイス挑戦記 by さくらい | トーク | PHPerKaigi 2025 #phperkaigi - fortee.jp ãããã ããã®ã 15幎éç¶ãè¶³ãç¶ãè¶³ãã§éçºããŠããECãµã€ãã®ã³ã¢æ©èœãå·æ°ããŸãããªãªãŒã¹åŸã®é害çºçã0ã«æãã ããšããå
容ã®ç»å£ã§ããã ãã³ã®ã³ãã¹ããšããææ³ãèªåã¯åããŠç¥ããŸããããã³ã®ã³ãã¹ãã䜿ãããšã§ãã°ãçºçãããªããªãªãŒã¹ã¯ãã¡ãããéå»ã®è² åµãè¿æžãããšãããšãããéåžžã«ããã£ãã§ãã ç»å£ã®äžã§ãã³ã®ã³ãã¹ã㮠泚æç¹ãšãã®å¯Ÿå¿äŸ ããèãããããšãã§ããŸããããªãã¬ã€ã¹ãããžã§ã¯ãã«åãçµãæ©äŒãããã°åãå
¥ããããªãšæãã®ã§èªåã®é ã®åŒãåºãã«å
¥ããŠãããŸãã ãœãããŠã§ã¢éçºã«ãããã€ã³ã¿ãŒãã§ã€ã¹ãšããèãæ¹ by å°å±±å¥äžé @Capi ソフトウェア開発におけるインターフェイスという考え方 by 小山健一郎 | トーク | PHPerKaigi 2025 #phperkaigi - fortee.jp å°å±±å¥äžé ããã®ã 身è¿ã«ååšããã€ã³ã¿ãŒãã§ã€ã¹ã芳å¯ããªãããœãããŠã§ã¢ãããã€ã³ã¿ãŒãã§ã€ã¹ãæœåºããŠã¿ãã ããšããå
容ã®ç»å£ã§ããã äžã®äžã«ããã€ã³ã¿ãŒãã§ã€ã¹ã®èª¬æããå§ãŸããPHP, Goã®ã³ãŒããäŸã«åºããªããããã°ã©ãã³ã°ã®ã€ã³ã¿ãŒãã§ã€ã¹ã«ã€ããŠãæèŠèããŸããã ã€ã³ã¿ãŒãã§ã€ã¹ã¯æäŸãããã®ãšå©çšãããã®ã®åãæ±ºããã€ãŸãå¥çŽãšãèšããã ãšããéšåã¯é¢çœãã£ãã§ãããŸããAPIãããŒã¿ããŒã¹ã¹ããŒããæäŸè
ãšå©çšè
ãããŠãã®éã«ããå¥çŽãšèšããã®ã§ã¯ãªãããšãã話ããé¢çœãã£ãã§ãã æåŸã®QAã¿ã€ã ã§ãã€ã³ã¿ãŒãã§ã€ã¹ãèªç¥ããããã«ã¯ã©ããããè¯ãã§ããïŒããšãã質åããããããŸãè§ŠããŠã¿ãŠãã ããããšããåçããããŸãããå®åã¯ãã¡ããå®åå€ã§ãã€ã³ã¿ãŒãã§ã€ã¹ã䜿ã£ãå®è£
ãããŠã¿ãããšæããŸãã äžã®äžã¯æ³å以äžã«ã€ã³ã¿ãŒãã§ã€ã¹ã§æº¢ããŠã ãããããŸããã PHPå®è¡ç°å¢ã®æŽå² PHP-FPMããFrankenPHPã®èªçãž @Capi PHP実行環境の歴史 PHP-FPMからFrankenPHPの誕生へ by ma_me | トーク | PHPerKaigi 2025 #phperkaigi - fortee.jp ma_me ããã®ã PHPã£ãŠã©ããã£ãŠåããŠããã ã£ãïŒãã®æŽå²ã¯ïŒã«çããå
容 ãã®ç»å£ã§ããã Apache + CGI + PHP ã§åããŠããæä»£ããå§ãŸã Go補ã®WebãµãŒããŒCaddyã«PHPãçµ±åããFrankenPHPèªçãŸã§ã®æµããå³ãçšããŠèª¬æããŠããã ããŸããã èªåã¯åè·ã§ãPHPãè§Šã£ãŠããdocker-composeãæžãæ©äŒããããŸããããã®æã«èªåèªèº«ãæã£ãŠããããšãç»å£ã®å
容ã§è§ŠããããŠå¬ããã£ãã§ãã æ°ãããã®ã®æ¹ãåªããŠãã ãšããã®ã§ã¯ãªã æã®æ§æãä»ã¯é²åããŠãã ãšãã話ãã æè¿åºãŠããæè¡ã«ãã¡ãªãããã¡ãªããããã£ãŠæ°ãããã®ã宿Šã«æå
¥ããããšãå¿
ãããæ£è§£ã§ã¯ãªã ãšãã話ããèããŠè¯ãã£ãã§ãã åæŒ: The PHPerâs Guide to Daemon Crafting, Taming and Summoning @Panda_Program 再演: The PHPer’s Guide to Daemon Crafting, Taming and Summoning by uzulla | トーク | PHPerKaigi 2025 #phperkaigi - fortee.jp uzulla ãããPHPã§ DaemonïŒããŒã¢ã³ïŒã®ããã°ã©ã ãäœã£ããšããã»ãã·ã§ã³ã§ããã é£ããããªå
容ãããããšãªãã uzulla ããã®äŒå Žã®çãäžãæ¹ãäžæãã®äœã®ãããã§ç޹ä»ãããŠããPHPã§éåæåŠçãæžãããã® amphp ãšããã©ã€ãã©ãªãåããŠç¥ã£ãŠããããããã¯ã«ã³ãã¡ã¬ã³ã¹ã«æ¥ããªãšæããŸããããŸãã¹ã©ã€ãèŠè¿ããŠåŸ©ç¿ããããšæããŸãããã¢åç»ãæé«ã§ããïŒ ãã¹ããŒã§ã®ãã°ã€ã³ãå®è£
ããŠã¿ããïŒ @Panda_Program パスキーでのログインを実装してみよう! by ヒビキ | トーク | PHPerKaigi 2025 #phperkaigi - fortee.jp hibiki_cube ããããã¹ããŒã®ä»çµã¿ã解説ããã»ãã·ã§ã³ã§ãããå»å¹Žãåç»å£ã ã£ããšã®ããšã§ãããè©±ã®æ§æãã¹ã©ã€ãããšãŠãããããããã£ãã§ãã ãã¹ããŒã®ä»çµã¿ãç¹åŸŽããã¹ã¯ãŒããšã®æ¯èŒã§ãããããã解説ãããŠããŸããããŸããã®å Žã§ãã¹ããŒãã°ã€ã³ã詊ãããã¢ãµã€ããçšæãããŠããŠãåå è
ããã¹ããŒã§ãã°ã€ã³ããããšæžã蟌ã¿ãã§ããæ²ç€ºæ¿ã®ãããªãµã€ãã§ããã Q&Aã§ãå€ã端æ«ã®å Žåã¯ã©ãããã®ãããšããé£ããããªè³ªåã§ãããã©ãŠã¶ã察å¿ããŠããã°QRã³ãŒããåºãŠããä»çµã¿ããããªã©ç確ã«çããããŠããã®ãå°è±¡çã§ããããšãŠãå®å¿æããããåãã¹ããŒã«ãŒãšããŠèŠç¿ããããªãšæããŸããã ãããã« åè³æŽ»åã瀟å¡ã®ã¹ããŒã«ãŒåå ãéã㊠PHPã³ãã¥ããã£ã®çãäžããã«è²¢ç®ã§ããåŒç€ŸãšããŠã倧倿æçŸ©ãªæéãšãªããŸããã ã¹ã¿ããã®æ¹ã
ã«ã¯æ¥åã§ãå¿ããã«ãé¢ããããå€ãã®æéãã€ãã³ãæºåãžæ³šãã§ããã ããããšæããŸãããã®å ŽãåããŠåŸ¡ç€Œç³ãäžããŸãã
ã¯ããã« BASEã®ProductDevã§ãšã³ãžãã¢ãããŠããTorataã§ãã 2025幎4æ12æ¥ã«éå¬ãããPHPã«ã³ãã¡ã¬ã³ã¹å°ç°å2025ã«æŸã¹ãã³ãµãŒãšããŠåè³ããBASEã®ãšã³ãžãã¢ã5人ç»å£ããŸãã ä»åã®èšäºã§ã¯ç»å£ã¹ã©ã€ãã®ç޹ä»ãšã«ã³ãã¡ã¬ã³ã¹å
ã®æ§åããå±ãããŸãïŒ ç»å£ã®çŽ¹ä» ä»åã®ã«ã³ãã¡ã¬ã³ã¹ã§ã¯ãªããšBASEã®ãšã³ãžãã¢ã5人ãç»å£ããŸããã PHP8.4ã®ãªãªãŒã¹ãããŒãžã£ãåãã takamachi saki ãããå§ããBASEã®CTO dmnlk ããã meihei ããã 02 ããã endo ãããç»å£ããŸããã 1ã€ã®ã«ã³ãã¡ã¬ã³ã¹ã«5人ãåãäŒç€Ÿã®ãšã³ãžãã¢ãç»å£ãããšããã®ã¯äžã
çããã®ã§ã¯ãªãã§ããããïŒ PHPã«ã³ãã¡ã¬ã³ã¹å°ç°åã倧ãã«çãäžãããBASEããã®ç»å£è
ã®çºè¡šã¹ã©ã€ããããããä¹ããŸãã®ã§ãèŠéããæ¹ã¯èŠãŠã¿ãŠãã ãããïŒ takamachi saki ãã speakerdeck.com meihei ãã speakerdeck.com 02 ãã speakerdeck.com dmnlk ãã speakerdeck.com endo ãã speakerdeck.com ããŒã¹äŒç» PHP 8.4ããã takamachi saki ããã®è²¢ç®ã«ãããBCMathæ¡åŒµã¢ãžã¥ãŒã«ã«ãããŠå€§å¹
ãªããã©ãŒãã³ã¹åäžãå®çŸãããŸããã ããã§ä»åã¯ããã®æ§èœå·®ãäœæããŠãããããã«ãBCMath 8.4 vs BCMath 8.3 vs 人éããšããäŒç»ã宿œããŸããïŒ äŒç»å
容 BCMathã®ããã©ãŒãã³ã¹ããPHP 8.3ã»PHP 8.4ã»äººéã®è³ã§ç«¶ããããšãããã®ã§ã åè² ã¯ä»¥äžã®æ¡ä»¶ã§è¡ããŸããïŒ - BCMathã¯60æ¡ã®æ°å€å士ã®ååæŒç®ã600äžåå®è¡ - åå è
ã®æ¹ã«ã¯2æ¡ã®æ°å€å士ã®ååæŒç®4å - ããŒãã©ãã§åããŠã©ããéããã®åè² å®è¡ããããã°ã©ã ã®ãã€ã³ã $a = '123456789012345678901234567890123456789012345678901234567890'; $b = '987654321098765432109876543210987654321098765432109876543210'; for ($i = 1; $i <= $iterations; $i++) { bcadd($a, $b); bcsub($a, $b); bcmul($a, $b); bcdiv($a, $b); } ãã®ããã«ã60æ¡ã®é·å€§ãªæ°å€ã«å¯ŸããŠãBCMath颿°ã§ååæŒç®ãã²ãããç¹°ãè¿ããŸãã ãã®å
容ã§å®è¡ããŠã¿ããš - PHP 8.3ïŒ çŽ14ç§ - PHP 8.4ïŒ çŽ4ç§ ãšãªããŸãããçŽ14ç§ã¯äººéãã®ãªã®ãªåãŠããã©ããã®æéã§ãïŒ çŽæ¥ takamachi saki ããã«ãã¢ããã€ã¹ãããã£ãŠãããé°ããããããããããããã©ãŒãã³ã¹åäžãæããŠãããããããªããã°ã©ã ãäœãããšãã§ããŸããïŒ ãã®é«éåã®ããã«ã©ããªæ¹åãè¡ã£ãã®ãïŒã«ã€ããŠã¯ãphp-srcã®ãã«ãªã¯ãšã¹ãããèŠãããšãåºæ¥ãŸãïŒ https://github.com/php/php-src/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aclosed+label%3A%22Extension%3A+bcmath%22+author%3ASakiTakamachi ãªã¹ã¹ã¡ã®ãã«ãªã¯ãšã¹ãã¯ä¹ç®ã®ããã©ãŒãã³ã¹æ¹åããã php/php-src#14213 ã§ãã çµæã¯âŠ? äžéšã®åå è
ã¯ããªããšBCMath 8.3ã«åã£ãæ¹ãïŒã©ãã ãBCMathã®åŠçé床ãåäžããããèã§æããŠããã ããã®ã§ã¯ãªãã§ããããã äžã«ã¯BCMath 8.4ã«åã£ãçè
ãâŠ!? 察決圢åŒãšããããšããããããŒã¹ã¯å€§ãã«çãäžãããŸããããåå ããã ããçããŸãããããšãããããŸããïŒ ã«ã³ãã¡ã¬ã³ã¹ã®æ§å PHPã«ã³ãã¡ã¬ã³ã¹å°ç°åã¯ãä»ã®æè¡ç³»ã«ã³ãã¡ã¬ã³ã¹ãšã¯ã²ãšå³éããå°åå¯çåã®æž©ãããšå·¥å€«ã«ããµããã€ãã³ãã§ããã ãŸãå°è±¡çã ã£ãã®ã¯ãå°å
ã»å°ç°åã®ãã¹ã³ãããã£ã©ã¯ã¿ãŒãæ¢
äžžãããã®ç»å Žãæ¥å Žè
ãåºè¿ããŠããããã®å§¿ã«ãäŒå Žå
šäœãåãããªé°å²æ°ã«å
ãŸããŠããŸããã ãããŠäœãããäŒå Žã§æµããŠããæ¢
äžžããã®ããŒããœã³ã°ããšã«ããå°è±¡çã§ãã€ãã³ããçµãã£ãä»ã§ãé ããé¢ããŸããã www.youtube.com ããã«ãå°å
ã®é£²é£åºãšã³ã©ããããã©ã³ãã³ã©ããã§ã¯ãã«ã³ãã¡ã¬ã³ã¹éå®ã®ç¹å
žãæäŸããããªã©ãå°ç°åãªãã§ã¯ã®ãã ãããå
ã£ãŠããŸããã ãŸããäŒå Žå
ã«ã¯å°ç°ååžã®ååã«ãããç§»äœçžè«ããŒã¹ããèšçœ®ãããŠããããã ã®æè¡ã€ãã³ãã«ãšã©ãŸããªããå°åãšã®æ·±ãã€ãªãããæãããã空éã«ã å°åã®é
åãšæè¡ã®æ¥œãããèŠäºã«èåããããŸãã«âããã ãâã®äœéšãè©°ãŸã£ãã«ã³ãã¡ã¬ã³ã¹ã ã£ããšæããŸãã ãŸããå°ç°åå€§åæŠãšããããŒã å士ã§ã¹ã³ã¢ãç«¶ãã€ãã³ãã倧ãã«çãäžãããŸãããåŒç€Ÿã®ã¡ã³ããŒïŒ @Panda_Program ïŒã®ããŒã ã2äœã«ãªããéå¶ã®æ¹ããæ¯åã®ã«ãŒãã²ãŒã SQLãã«ã㌠ãé ããŸããã瀟å
ã§éã°ããŠè²°ããŸããããããšãããããŸããïŒ ãããã« èªåèªèº«PHPã«ã³ãã¡ã¬ã³ã¹å°ç°åã«åå ããã®ã¯ä»åãåããŠã ã£ãã®ã§ããããšãŠãå°è±¡çãªã«ã³ãã¡ã¬ã³ã¹ã§ããã ãå¿ããã«ãé¢ãããéå¬ã®æºåãªã©ãããŠããã ããã¹ã¿ããã®æ¹ã
ãç»å£ããŠãã ãã£ãçæ§ããããšãããããŸããïŒ æ¥å¹Žã¯éå¬ãããªããšã®ããšã§ããããããŸãéå¬ãããããã²åå ãããã§ããïŒ BASE ã¯çŸåšãšã³ãžãã¢ç©æ¥µæ¡çšäžãªã®ã§èå³ãããã°æ¡çšæ
å ±ããã²ã芧ãã ãã! binc.jp
ã¯ããã« 2025/4/12ïŒåïŒããã ããåžæ°äº€æµã»ã³ã¿ãŒãUMECOãã§ PHPã«ã³ãã¡ã¬ã³ã¹å°ç°å 2025ãéå¬ãããŸãã BASEæ ªåŒäŒç€Ÿã¯æŸã¹ãã³ãµãŒãšããŠPHPã«ã³ãã¡ã¬ã³ã¹å°ç°å 2025ãžåè³ããŠããŸãã PHPã«ã³ãã¡ã¬ã³ã¹å°ç°å ãšã¯ ãå°ç°åã®å°ã§ã€ãªãããæ°åŒµããªãã«ã³ãã¡ã¬ã³ã¹ããã¹ããŒã¬ã³ã«ãåå ãããšã³ãžãã¢ãæ°ããªç¥èãå
±æãåããäºãã«åŠã³ãæé·ã§ããå Žæãã€ãããã€ãã³ãã§ãã phpcon-odawara.jp PHPã«ã³ãã¡ã¬ã³ã¹å°ç°åã®noteã§ã¯æ·±æãæ
å ±ãçºä¿¡ãããŠããŸãã note.com ç»å£ã¡ã³ããŒã®ãçŽ¹ä» PHPã«ã³ãã¡ã¬ã³ã¹å°ç°å 2025ã§ã¯ãBASEã§æŽ»èºããŠãã5åã®ã¡ã³ããŒãç»å£äºå®ã§ãã é«çºå²è¡£ããã OSSã³ã³ããªãã¥ãŒããphp-srcã¡ã³ããã®ç«å Žããèªã ã meiheiããã æ¹ããŠåŠã¶ Trait ã®äœ¿ãæ¹ ã 02ããã æ°ããPHPæ¡åŒµã¢ãžã¥ãŒã«ã€ã³ã¹ããŒã«æ¹æ³ãPHP Installer for Extensions (PIE)ãã䜿ã£ãŠã¿ããïŒ ã å·å£ å°è²Žããã PHPããŒãžã§ã³ã¢ããããå§ããOSSã³ã³ããªãã¥ãŒã ã Futoshi Endoããã New Relicã®APMãæŽ»çšããECãµãŒãã¹ã«ãããã¡ãŒã«é
å»¶è§£æ¶ã®èå°è£ ã ããŒã¹ã®ãçŽ¹ä» åœæ¥ã¯BASEæ ªåŒäŒç€ŸãšããŠã¹ãã³ãµãŒããŒã¹ã®åºå±ãè¡ããŸããããŒã¹ã§ã¯æ¥å Žè
ã®æ¹ã«æ¥œããã§ããã ãããããªåå åã®äŒç»ãçšæããŠããŸãïŒåå ãããæ¹ã¯ãã²BASEã®ã¹ãã³ãµãŒããŒã¹ã«ããç«ã¡å¯ããã ããã ãããã« PHPã«ã³ãã¡ã¬ã³ã¹å°ç°å 2025 æ¬ç·šã®ãã±ããã¯4æ9æ¥æç¹ã§å®å£²ããŠãããããªã®ã§ãããåŸæ¥ãã¡ãã®ããã°ã§ãåå ã¬ããŒãããå±ãããäºå®ã§ããæ¥œãã¿ã«ãåŸ
ã¡ãã ããã PHPã«ã³ãã¡ã¬ã³ã¹å°ç°å 2025ã§ãã¿ãªããŸã«ãäŒãã§ããããšã楜ãã¿ã«ããŠãããŸãïŒ
ã¯ããã« ããã«ã¡ã¯ãBASEã®ãšã³ãžãã¢ã®ç°äžå€§è²Žã§ããæ®æ®µã¯ã客æ§ã®å®å¿å®å
šãªè³Œå
¥ãã·ã§ããéå¶ãå®çŸããããã®ããŒã¿åæãæ©æ¢°åŠç¿ã¢ãã«ã®éçºéçšãè¡ã£ãŠããŸããä»åã¯ãã°ã©ãããŒã¿ããŒã¹ã§ããAmazon Neptuneã®ããŒãžã§ã³æŽæ°ã®ãããå
¬åŒã®ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã¬ã€ãã«åŸã£ãŠäœæ¥ããããšãããããã€ãã¯ãŸããã€ã³ãããã£ãã®ã§ã©ãªããã®åèã«ãªãã°ãšããããšã§å
±æãããŠããã ããŸãã Amazon Neptuneãšã¯ AWSãæäŸãããããŒãžãåã°ã©ãããŒã¿ããŒã¹ã§ãããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãšæ¯èŒããŠãã°ã©ãæ§é ã®ããŒã¿ã«å¯ŸããŠé«éã«ã¯ãšãªããããšãã§ããè€éãªé¢ä¿åæãå¿
èŠãšãããŠãŒã¹ã±ãŒã¹ã«é©ããŠããŸããäŸãã°eã³ããŒã¹ãã©ãããã©ãŒã ã§ã¯æ³šæããŒã¿ãã°ã©ãæ§é ã§ä¿æããæšèŠãäžæ£æ±ºæžæ€ç¥ã«å©çšããããšãäžè¬çãªãŠãŒã¹ã±ãŒã¹ãšãªãã§ãããã Amazon Neptuneã®ããŒãžã§ã³æŽæ° ããŒã¿ããŒã¹ã®ã¢ããã°ã¬ãŒãã¯ãã¢ããªã±ãŒã·ã§ã³ã®å¯çšæ§ç¶æãšå¿
èŠãªæŽæ°ã®é©çšã®éã§ãã¬ãŒããªãã䌎ããŸãããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã§ã¯ãçŸç°å¢(ãã«ãŒ)ãšæ°ç°å¢(ã°ãªãŒã³)ãšãã2ã€ã®å¥åã®ç°å¢ãç¶æããããšã§ãã®èª²é¡ã«å¯ŸåŠããæ¬çªãã©ãã£ãã¯ãç§»è¡ããåã«å€æŽãå®å
šã«å®è£
ããŠãã¹ãããããšãã§ããŸããæ°ç°å¢ã§ã®æ€èšŒãå®äºããåŸãæ°ç°å¢ã«ãã©ãã£ãã¯ãç§»è¡ããããšã§ããŠã³ã¿ã€ã ãæå°åãå®å
šã«ããŒãžã§ã³ã®æŽæ°ãã§ããŸãã AWSã®NeptuneããŒãžã§ã³æŽæ°ã®ã¬ã€ããšããŠã ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ã ãæ¡å
ãããŠããŸããã¬ã€ãã§ã¯ãæ°ç°å¢ãçŸç°å¢ã®è€è£œãšããŠäœæããçŸç°å¢ãžã®æŽæ°ãªãã¬ãŒã·ã§ã³ãç¶ç¶çã«æ°ç°å¢ã«ã¬ããªã±ãŒã·ã§ã³ãããªãœãŒã¹ãäœæããCloudFormationã¹ã¿ãã¯ãå®è¡ããŸããåŸè¿°ããŸãããç§ãã¡ã®ç°å¢ã§ã¯ãé
åžãããŠããCloudFormationãã³ãã¬ãŒããå®è¡ããéã«ãšã©ãŒãçºçããããããã³ãã¬ãŒããä¿®æ£ããäžã§å®è¡ãè¡ããŸãããCloudFormationãã³ãã¬ãŒãã¯ä»¥äžã®ãªã³ã¯ã§é
åžãããŠãããããŠã³ããŒããå¯èœã§ãïŒ https://aws-neptune-customer-samples-us-east-1.s3.amazonaws.com/neptune-bg/bg.yaml äºåæºåãšããŠãã¬ããªã±ãŒã·ã§ã³ã®ããã«ã¯ãNeptune streamsã®èšå®ãã¯ã©ã¹ã¿ãŒãã©ã¡ãŒã¿ãŒã°ã«ãŒãã§æå¹åããåæ ã®ããã«ã¯ã©ã¹ã¿ãŒã®åèµ·åãããŠããå¿
èŠããããŸãããŸããæ°ç°å¢ã®ã¯ã©ã¹ã¿ãŒãé
眮ããVPCã«ã¯Dynamo DBã«å¯ŸããŠVPCãšã³ããã€ã³ããäœæããŠããå¿
èŠããããŸãã çŸåšã®ããŒãžã§ã³ããæ¬¡ã©ã®ããŒãžã§ã³ã«æŽæ°ããã¹ãããšããæ
å ±ã¯ Engine releasesããŒãž ã«èšèŒãããŠããŸãããã¡ããåç
§ãæŽæ°å
ã®ããŒãžã§ã³ãç¹å®ããŠãã ãããããŒãžã§ã³ã®äž»èŠãªå€æŽç¹ããã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªã®ããŒãžã§ã³å¶çŽã«ã€ããŠãèšèŒãããã®ã§ãäºåã«ãã§ãã¯ããŠãããŠãã ããã 課é¡ãšè§£æ±ºç ããããã¯ãAWSã«ãã£ãŠé
åžãããŠãããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãçšCloudFormationãã³ãã¬ãŒããå®è¡ããéã«çºçãããšã©ãŒãšè§£æ±ºçã«ã€ããŠèšèŒããŸãã DeploymentIDã¯æ°ã¯ã©ã¹ã¿ãŒã®ååã«å©çšãããã®ã§Neptuneã¯ã©ã¹ã¿ãŒã®åœåèŠåã«æ²¿ããªããã°ãªããªã ãšã©ãŒã®å
容ãèŠãã°ãã®ãŸãŸåãããŸãããCloudFormationã¹ã¿ãã¯ã®ãã©ã¡ãŒã¿ã§æå®ãã DeploymentID ã¯ãæ°ã¯ã©ã¹ã¿ãŒã®ååã«ãã®ãŸãŸå©çšããããããDeploymentIDã¯Neptuneã¯ã©ã¹ã¿ãŒã®åœåèŠåã«åŸã£ãŠãã ãããç§ãã¡ã¯ _ ã䜿ãããšããŠãšã©ãŒãçºçããŸããã åœåèŠå㯠Identifiers must either be an ARN or begin with a letter; must contain only ASCII letters, digits, and hyphens; and must not end with a hyphen or contain two consecutive hyphens. ã§ãã CloudFormationã¹ã¿ãã¯ãå®è¡ããEC2ã€ã³ã¹ã¿ã³ã¹ã«ã¯public ipã¢ãã¬ã¹ãä»äžãããŠããªããã°ãªããªã ãã³ãã¬ãŒãã§ã¯ãEC2ã€ã³ã¹ã¿ã³ã¹ãèµ·åãã€ã³ã¹ã¿ã³ã¹å
ã§ããŠã³ããŒãããPythonã¹ã¯ãªãããå®è¡ããŸããã€ã³ã¹ã¿ã³ã¹å
ã§ã¯ãcurlãçšããŠPythonã¹ã¯ãªãããããŠã³ããŒãããŠããã®ã§ãEC2ã€ã³ã¹ã¿ã³ã¹ãã€ã³ã¿ãŒããããšéä¿¡ã§ããããšãå¿
èŠã§ããVPCã®èšå®ã§EC2ã€ã³ã¹ã¿ã³ã¹ã«ãããªãã¯IPã¢ãã¬ã¹ãèªåçã«ä»äžããªãå Žåã«ã¯ããããªãã¯IPã¢ãã¬ã¹ãæç€ºçã«ä»äžããŠãã ããã CloudFormationãã³ãã¬ãŒãäžã§ã¯ã以äžã®ããã«ä¿®æ£ããŸããã EC2Instance: Type: AWS::EC2::Instance Properties: InstanceType: !Ref InstanceType - SecurityGroupIds: [!Ref InstanceSecurityGroup] IamInstanceProfile: !Ref EC2InstanceProfile UserData: Fn::Base64: !Sub | #!/bin/bash cd /home/ec2-user/ yum update -y yum -y install tmux screen curl https://aws-neptune-customer-samples-us-east-1.s3.amazonaws.com/neptune-bg/bg.zip --output bg.zip unzip bg.zip chmod 700 bg.py pip3 install schedule boto3 aws_requests_auth requests uuid watchtower urllib3==1.26 echo $PWD python3 bg.py -s ${NeptuneSourceClusterId} -t ${NeptuneTargetClusterVersion} -d ${DeploymentID} -g ${GraphQueryType} -m ${DeploymentMode} ImageId: !Ref LatestAmiId - SubnetId: !Ref SubnetId Tags: - Key: Name Value: !Ref DeploymentID - Key: CloudformationStackName Value: !Ref 'AWS::StackName' - Key: Application Value: "BlueGreenDeployment" + NetworkInterfaces: + - DeviceIndex: 0 + AssociatePublicIpAddress: true + SubnetId: !Ref SubnetId + GroupSet: + - !Ref InstanceSecurityGroup EC2ã€ã³ã¹ã¿ã³ã¹ã®æš©éäžè¶³ CloudFormationã¹ã¿ãã¯ã§ã¯ãçŸç°å¢ããæ°ç°å¢ãžç¶ç¶çãªã¬ããªã±ãŒã·ã§ã³ãè¡ãããã«å
éšçã«Lambda颿°ãStep Functionsã¯ãŒã¯ãããŒãäœæããŸããå®éã«ã¯ãEC2ã€ã³ã¹ã¿ã³ã¹ã§å®è¡ããPythonã¹ã¯ãªããã®äžããæŽã«å
¥ãåã§å¥ã®CloudFormationã¹ã¿ãã¯ãå®è¡ããŠããã®ã§ãããåã¹ã¿ãã¯ã§äœæãããªãœãŒã¹ã§ä»¥äžã®ãããªãšã©ãŒãçºçããŸããã Resource handler returned message: "Encountered a permissions error performing a tagging operation, please add required tag permissions. See https://repost.aws/knowledge-center/cloudformation-tagging-permission-error for how to resolve. Resource handler returned message: "User: arn:aws:sts::XXXXXXXXXXX:assumed-role/neptune-bg-deployment-stack-EC2InstanceRole-XXXX is not authorized to perform: iam:TagRole on resource: arn:aws:iam::XXXXXXXXXXX:role/neptune-bg-deploy-NeptuneStreamPollerExecut-XXX because no identity-based policy allows the iam:TagRole action (Service: Iam, Status Code: 403, Request ID: XXXXX) ãšã©ãŒã®å
容ã®éãã iam:TagRole ã¢ã¯ã·ã§ã³ãEC2ã€ã³ã¹ã¿ã³ã¹ã®IAMããŒã«ã«èš±å¯ããå¿
èŠããããŸãã Policies: - PolicyName: NeptuneBGCustomPolicy PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - 'iam:CreateRole' - 'iam:CreatePolicy' - 'iam:DeleteRole' - 'iam:DeleteRolePolicy' - 'iam:PutRolePolicy' - 'iam:GetRole' - 'iam:GetRolePolicy' - 'iam:AttachRolePolicy' - 'iam:PutRolePolicy' + - 'iam:TagRole' Resource: '*' - Effect: Allow Action: - 'iam:PassRole' Resource: - 'arn:aws:iam::*:role/*' - Effect: Allow Action: - 'cloudformation:DescribeStacks' - 'cloudformation:CreateStack' Resource: '*' ãã®ä»ã®æ³šæç¹ Neptuneã¯ã©ã¹ã¿ãŒã®ãªãŒãã¹ã±ãŒãªã³ã°èšå®ã¯æ°ç°å¢ã«ã¯åŒãç¶ãããªãã®ã§ãæåã§æ°ç°å¢ã«èšå®ãçŽãå¿
èŠããããŸãããŸããç§»è¡ãå®äºããéã«ã¯æ§ç°å¢ã®ãªãŒãã¹ã±ãŒãªã³ã°èšå®ãåé€ããŠãããšè¯ãã§ãããã Neptuneã§ã®ãªãŒãã¹ã±ãŒãªã³ã°ã®èšå®ã¯ä»¥äžãåç
§ããŠãã ããã https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-autoscaling.html åèããŒãž äžèšã§ã玹ä»ããŸãããããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã®éã«æçšãªããŒãžã以äžã«çœ®ããŠãããŸãã Using the Neptune Blue/Green solution to perform blue-green updates Neptuneãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã®å
¬åŒã¬ã€ãã§ããã©ã®ãããªæµãã§æ°ç°å¢ãäœæããããäºåæºåããã¹ããã©ã¯ãã£ã¹ã«ã€ããŠç޹ä»ãããŠããŸãã Engine releases for Amazon Neptune Neptuneã®ãšã³ãžã³ããŒãžã§ã³ã«ã€ããŠãã¢ããã°ã¬ãŒããã¹ã倿Žç¹ããŸãšããããŠããŸãã Setting up Neptune-to-Neptune replication ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãçšã®CloudFormationã¹ã¿ãã¯ã§å
éšçã«åŒã³åºãNeptune-to-Neptuneã¬ããªã±ãŒã·ã§ã³ãCloudFormationã¹ã¿ãã¯ã«ã€ããŠã®ããã¥ã¡ã³ãã§ãã现ããªãããã°ãå¿
èŠãªå Žåã«ã¯åç
§ãããšããããã§ãã ãããã« ä»åã¯ã°ã©ãããŒã¿ããŒã¹ã§ããAmazon Neptuneã®ããŒãžã§ã³æŽæ°ã®ããããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã宿œããäžã§å®éã«çºçãããšã©ãŒã解決çãšå
±ã«ç޹ä»ããŸãããNeptuneãå©çšããŠããæ¹ã®åèã«ãªãã°å¬ããã§ãã BASEã§ã¯ã¡ã³ããŒãæ¡çšäžã§ãïŒãèå³ã®ããæ¹ã¯æ¯é以äžãã芧ãã ããã binc.jp
ã¯ããã« ã¯ãããŸããŠã®äººã¯ã¯ãããŸããŠãããã«ã¡ã¯ïŒããã³ããšã³ããšã³ãžãã¢ã®ãã£ã¡ããïŒ @gatchan0807 ïŒã§ãïŒ ä»åã¯ãGitHub Copilot Chatã䜿ã£ãéçºã®äžã§å®éã«è©ŠããŠã¿ãããšãšãããããåŸãããæ°ã¥ãã«ã€ããŠå
±æããŠãããããšæããŸãã ïŒãã®äœæ¥ã宿œããã®ã2025幎1æäžé ã®è©±ãªã®ã§ãGitHub Copilot Agentã¢ãŒããåºãåã®è©±ã§ããç¹ã ããäºæ¿ãã ããã2025幎4æã®ä»ãªãAgentã¢ãŒãã§ãµã¯ãµã¯äœãããŠãããšæããŸãããçŽè¿ã¯Agentã¢ãŒãã§äœã£ãŠPRãåºãããããŠããŸãðïŒ ãã£ãŠã¿ãããš ä»åãã£ãŠã¿ãããšã¯ã·ã³ãã«ã§ã Markdownã§API仿§æžããªããžããªå
ã«çœ®ããŠã¿ã Mock APIå®è£
ãGitHub Copilot Chatã«äŸé ŒããŠã¿ã ã¬ã€ã€ãŒåå²ãæèããGitHub Copilot Chatã«ããã³ãŒãã£ã³ã°ã宿œããŠã¿ã ãšãã3ã€ã«ãªããŸãïŒ ã·ã³ãã« && ã¹ãããåå²ã§ããäœæ¥ã«ãããŠã¯GitHub Copilot Chatã䜿ãããšã§ãäžå®ã®éçºå¹çåäžã§ããŠããªïŒãšããã®ãæããã®ã§ä»å玹ä»ããããšæã£ã次第ã§ãð ããä»åã®èšäºãèªãã§ããã ããåèã«ã§ããããªãã€ã³ããããã°ãã²ç䌌ããŠã¿ãŠãã ããïŒãŸããããããäœ¿ãæ¹ããããšãããã䜿ãããïŒãšãããã€ã³ããªã©ããã° XïŒæ§TwitterïŒãªã©ã§æããŠããã ãããšå¬ããã§ãïŒ ã§ã¯ãå
·äœçã«ã©ããªããšããã£ãŠã¿ãã®ãèŠãŠãã£ãŠãã ããïŒ 1. Markdownã§API仿§æžããªããžããªå
ã«çœ®ããŠã¿ã ä»åã¯èªåãæ
åœããŠãã PAY.JP YELL BANK é¢é£ã®æ°æ©èœã®éçºæã«äœ¿ã£ãŠã¿ãŸããã PAY.JP YELL BANKèªäœã¯ãPAY.JPã®å çåºã«åããŠæäŸããŠããå°æ¥åµæš©ãã¡ã¯ã¿ãªã³ã°ãšããã¹ããŒã ã®è³é調éãµãŒãã¹ã§ãã ä»åã¯ããã«é¢é£ããéèãµãŒãã¹ã®è¿œå æ©èœã®ã話ã§ãè€æ°äººã§ã®éçºã§ãã£ããããèªèæãã®ããã«API仿§æžãæžãã€ã€éçºããŠããŸããã APIã®ä»æ§ïŒã¹ããŒãïŒã¯é©å®ã¡ã³ããŒéã§çžè«ãã以äžã®ãããªåœ¢ã§FigJamãšNotionäžã«API Design DocumentãšããŠãŸãšããŠããŸããã ïŒããŒã ã§ã¯ADRãšãããã®ã掻çšããŠããŸãïŒãã£ã¡ããããã§ãïŒïŒïŒ ããå°ãã ãä»åã®äœæ¥ã®èæ¯ã玹ä»ãããšãç§ãæå±ããŠããBASE BANKããŒã ïŒYELL BANKãPAY.JP YELL BANKãªã©ã®ãµãŒãã¹ãæ
åœããŠããããŒã ïŒã§ã¯ã以åãã ADRïŒArchitecture Decision RecordsïŒãšãã圢ã§ä»æ§æŽçãå«ããèšèšæã®æææ±ºå®ãããã¥ã¡ã³ãã«èµ·ããæå ããããŸãã ãã®ADRããŸãšããéã«èšèšã®æãæŒãã®ç¢ºèªãšã¡ã³ããŒéã§ã®èªèæããã§ããã ãã§ãªããããšããåœæã®æææ±ºå®ã®çç±ããæ€èšãããéžæããªãã£ãããšããã仿§å€æŽãããåã®åæç¥èããªã©ãç¥ãããšãã§ããã®ã§çŸåšã®ã·ã¹ãã ã«å¯Ÿããè§£å床ãäžæ®µäžããããããªããŸãã ADRãæžãããšã«ããã¡ãªãããèæ¯ãªã©ã¯æ¬é¡ã§ã¯ãªãã®ã§ä»åã¯çããŸããããã¡ãã®ããŒãžïŒ https://adr.github.io/ ïŒã端çã§ããããããã®ã§ãåãããŠåç
§ããã ãããšããã€ã¡ãŒãžããŠããã ããããšæããŸãã®ã§ãããã°ã芧ãã ããã ãããŠãä»åã¯ãã® API Design DocumentãNotionããåºåããŠãªããžããªå
ã«çœ®ã ããšããäœæ¥ãè¡ããŸããã ã¡ãã£ãšãã工倫ãšããŠãMarkdownãã¡ã€ã«ã¯ ãªããžããªå
ã« tools/.copilot/ ãšããååã§ãéçºã«äœ¿ããAI CopilotïŒå¯æçžŠå£«ïŒçšã®ãã¡ã€ã«çœ®ãå Žããããã®ç²åºŠã® å°çšãã£ã¬ã¯ããªãäœæããŠã .gitignore ã§Gitã®ç®¡çäžããã¯å€ã ããã«ããŠããŸãã ããã¯ã2025幎1æåœæã®ç¶æ³ãšã㊠ã .cursorrules ãªã©ã話é¡ã«ã¯ãªãåºããŠã¯ãããã©ãäœãã©ããŸã§èŠæš©ãæ¡ãããããããªãããPJå
šäœãšããŠç®¡çããåã«ããããå人ããšã«äœ¿ãåããèµ·ããã ããããäžæŠæ°è»œãªå Žæãå¿
èŠã âŠããšæã£ãŠããã®ã§æœè±¡åããŠå Žæãäœã£ãŠããããšããæµãããã£ããããŸãã ãã®ãã£ã¬ã¯ããªããããããã§ãVSCodeçµç±ã®GitHub Copilot Chatã§ããã°å¿
èŠã«å¿ããŠãã¡ã€ã«æå®ãè¡ãããšãã§ããããããã³ããã«ããã®ãã£ã¬ã¯ããªå
ããæ€çŽ¢ããŠâŠããªã©ã®è¿œå æç€ºãè¡ããã®ã§ãäžå®ã®ç²ŸåºŠåäžãèŠãããŸãããïŒãããŸã§åäººã®æèŠå€ïŒ ä»åŸã¯ãREADME.mdã®ãããªäººéåãã«äœãã€ã€ãAI AgentåŽã®åèã«ããªããªããžããªå
ããã¥ã¡ã³ããæŽãã€ã€ã .cursorrules ãªã©ã®ãããªAI Copilot / AI Agentã«æé©åãããã«ãŒã«å®çŸ©ãã¡ã€ã«ãé§äœ¿ããŠãããã°ãªãšèããŠããŸãð 2. Mock APIå®è£
ãGitHub Copilot Chatã«äŸé ŒããŠã¿ã ä»åã®éçºã§ã¯ãPAY.JPåŽã®ãšã³ãžãã¢ãšååããŠAPIã¹ããŒããæ±ºããŠãããŸããã APIã¹ããŒãã¯äž¡è
ã®è²¬ä»»åçç¹ãšãªããããéçºç°å¢ã§å
è¡ããŠMock APIãšããŠå®è£
ããããšã§ãPAY.JPåŽã§ã®åäœç¢ºèªãšAPIå©çšã«é¢ãããã£ãŒãããã¯ãåããããããçãããããŸããã ãã®å®è£
ã«ãããããMock APIãªãçæAIã§å¹ççã«äœããããâŠïŒããšèããGitHub Copilot ChatãæŽ»çšããŠéçºãé²ããããšã«ããŸããã å
·äœçãªæµããšããŠã¯ãããªæãã§ãã tools/.copilot/ai-docs ãšãããã£ã¬ã¯ããªã«API Design DocumentãMarkdownã§é
眮ãã ãã®ãã¡ã€ã«ãšããã®äžã®ç¹å®ã®èŠåºããæããŠããã®APIãäœãããã®ã§ããŸãã¯MockåŠçãšããŠHandlerå±€ã§ã¬ã¹ãã³ã¹ããããã«ããŠãã®ããã«æå®ããŠãMock APIã®å®è£
ãäŸé Œãã â ïŒã¬ã¹ãã³ã¹ãšããŠã¯è¯ãããä»ã®æ¢åã®APIã®æžãæ¹ãšããªãç°ãªã£ãŠããŠãå¿
èŠãªãã©ã€ããŒãã¡ãœãããå®è£
ãããŠããªãã£ããããŠã³ã³ãã€ã«ãéããªãã¬ãã«ã§å€±æïŒ åãå±€ã®å¥ã®APIã®ãã¡ã€ã«ãæå®ããŠããã®Handlerãåèã«æžããŠããšæç€ºãåºã â ïŒåŸ®åŠã«æžãæ¹ãéããã®ã®ãã³ã³ãã€ã«ã¯éãããã«ãªã£ãã®ã§äžæŠèš±å®¹ïŒ 3ã§äœã£ãAPIã®Handlerå±€ãæå®ããŠãã¹ãã³ãŒãã®äœæãäŸé Œãã â (ãããã³ã³ãã€ã«ãéããªãã¬ãã«ã§å€±æ) åãå±€ã®å¥ã®ãã¹ããã¡ã€ã«ãåãããŠæå®ããŠããã®ãã¹ããåèã«æžããŠããšæç€ºãåºã â ïŒç¡äºãã¹ããéããHandlerå±€ã®ãã¹ããå®è¡ã§ããããã«ãªãïŒ Handlerå±€ã®ã³ãŒãã»ããã¥ã¡ã³ãã»æ¢åã®ãã¹ããåæã«æå®ãããã¹ãã±ãŒã¹ãå¢ããå¿
èŠããããæ€èšãã远å ããŠããã 3, 5ã®å®è£
ãããããåãå±€ã®æ¢åãã¡ã€ã«ãè€æ°åæã«æå®ããããããã®ãã¡ã€ã«ãšæžãæ¹ãéã£ãŠããªãïŒããéããªãåãããŠæ¬²ããããšæç€ºãã â ïŒçŽ çŽã«ãªãã¡ã¯ã¿ãªã³ã°ãå®è¡ããŠãããïŒ HTTP Clientãã¡ã€ã« ãäœã£ãŠAPIã®åäœãæå³éãã確èªãã ãã¹ããšã³ã³ãã€ã«ãšåäœç¢ºèªãã§ããã®ã§ãæåŸã«äººéã®ç®ã§èŠãŠå
šäœã®ã³ãŒãã«éåæããªãã確èªããé©å®ä¿®æ£ãäŸé Œãã PAY.JP YELL BANKã®ã³ãŒãã¯ã¯ãªãŒã³ã¢ãŒããã¯ãã£ãåèã«ããã¬ã€ã€ãŒãã¢ãŒããã¯ãã£ã§æ§æãããŠããŸãã ãªã®ã§ååŠçã¬ã€ã€ãŒã®ã€ã³ããã / ã¢ãŠãããããšè²¬åãæèããŠå®è£
äŸé Œãè¡ãããšã§ãææç©ã®å質ãé«ããããšãã§ããŸãããããã«é¢ããŠã¯ã次ã®é
ã§è©³ãã玹ä»ããŸãã è£è¶³ïŒãã£ããã£èŸŒã¿ã§ããåããçŽ¹ä» åã¹ãããã§ã©ã®ãããªæç€ºãšããåããããŠããããå®éã®ãã£ããã£ãå«ããŠè»œãã玹ä»ããŸãã 2ã®ã¹ãããã§ã¯ã以äžã®ããã«ãã£ãã°ãããªæç€ºãåºããŠã¿ãŸããã ãããšãã³ã³ãã€ã«ãšã©ãŒã«ãªã圢ã§äœæãããŠããã®ã§ã3ã®ã¹ãããã§ã¯åãã¬ã€ã€ãŒã®ã³ãŒããšæ¯èŒãã€ã€ãåèã«ããªããæžããŠãããæç€ºãè¡ããŸããã 4ã®ã¹ãããã§ã¯ããã¹ãã³ãŒãã®äœæãäŸé ŒããŠããŠããã®æã«ååã®æç€ºã®ããã«API Design Documentã®ãã¡ã€ã«ãšèŠåºããæå®ããŠãã¹ãã³ãŒããæžããŠããããŸããïŒããããŸãã¡ã³ã³ãã€ã«éããªã圢ã§ã®å®è£
ãããŠããã®ã§ãã¹ããã3ãšåãããã«åã¬ã€ã€ãŒã®ãã¹ãã³ãŒããšæ¯èŒããªããä¿®æ£ããŠããããŸããïŒ ãŸããAPIã¬ã¹ãã³ã¹ã®ã¢ãã¯ãã¡ã€ã«ã®äžæ¬äœæãåæã«äŸé ŒããŠããã¿ãŒã³ã®æŽãåºããšJSONãã¡ã€ã«ã®äœæã代è¡ããŠããããŸããã ãã®åŸã¯ã以äžã®ç»åã®ããã«çްãããªãã¡ã¯ã¿ãªã³ã°ãæç€ºããªããäœæ¥ãé²ããŠãããŸãã 3. ã¬ã€ã€ãŒåå²ãæèããGitHub Copilot Chatã«ããã³ãŒãã£ã³ã°ã宿œããŠã¿ã åã®é
ã§ã軜ãè§ŠããŸããããPAY.JP YELL BANKã®APIåŠçã®å®è£
ã¯ã¬ã€ã€ãŒãã¢ãŒããã¯ãã£ã®æ§æã«ãªã£ãŠããŸãã ãã®ãããUsecaseå±€ãHandlerå±€ãModelå±€ãããŒã¿ã¢ã¯ã»ã¹å±€ãªã©ãããããã®å±€ã«åããŠããŠå±€ããšã«ãã¹ããæžããŠããŸãã ãã®ã¬ã€ã€ãŒåå²ãæèããŠãGitHub Copilot Chatã«å®è£
äŸé Œãè¡ãããšã§ã以äžã®ãããªã¡ãªããããããŸããã GitHub Copilot Chatãžã®æç€ºã»æäŸãããã¡ã€ã«ã®ãµã€ãºãå°ãããªããããå¿
èŠãªã³ã³ããã¹ããŠã£ã³ããŠãå°ãããªããæç€ºãå¿ããããšãå°ãªããªã åãæ±ããã¡ã€ã«æ°ãã³ãŒãã®éãå¢ãããšæç€ºãå¿ããŠæå³ããªãã³ãŒããåºåããŠããããšãããçºçããŠããŸã£ãŠããã®ã§Good ð GitHub Copilot ãåºåãããã¹ãã³ãŒããèŠãã ãã§äººéåŽãæå³ãçè§£ãããããªã æçµçã«ã¯äººéã®ã¬ãã¥ãŒãå¿
èŠãªã®ã§ããŸã In / Out ã確èªããã ãã§åŠçã®æ¯ãèããçè§£ã§ãããã¹ãã³ãŒãã¯éèŠã§ã ð ãšã³ããã€ã³ãã®æå® Ã ã¬ã€ã€ãŒã®æå®ãšãã圢ã§çµã¿åãããã®ã§ãå°ããåäœã§åãç®ãäœããŠã³ããããµã€ãºã»PRãµã€ãºãå°ãã管çãããã 现ããåäœã§ã³ãããã»PRãäœãããšã§ä»ã®ã¡ã³ããŒã®ã¬ãã¥ãŒãåããéã«ãã¬ãã¥ãŒãããããªãã®ã§ãGitHub Copilot Chatã䜿ãå Žåã§ãæèããŠãããšè¯ãããã ãªãšæããŸããðïŒAIã«æžããŠããããšããããã«äœããŠããŸãåãé·å€§ãªPRã«ãªããã¡ïŒ åŠãã ããš å®éã«ãã®ãããªæµãã§éçºãããŠã¿ãŠãGitHub Copilot Chatãã¯ãããšãããçæAIã³ãŒãã£ã³ã°ããŒã«ã䜿ãäžã§ã®æ°ã¥ããã³ãã¿ãããªãã®ãæŽãããšãã§ããŸããã ãããããŸãšããŠã玹ä»ãããã®èšäºãèªãã§ãã ãã£ãçããŸã«äœãåŸããã®ãããã°å¬ãããªãšæããŸãð 1. ãªããžããªå
ã«éçºã«å¿
èŠãªæ
å ±ãã§ããéã眮ãã»çœ®ããããã«ãã ã³ãŒãã«ã¯éçºæ
å ±ã仿§ãå«ãŸããŠã¯ããŸããã å®éã®éçºæã«å¿
èŠãªæ
å ± 㯠ããã¥ã¡ã³ãããã¶ã€ã³ãAPI仿§æžãªã©æ§ã
ãªå Žæã«åæ£ããŠãã ã®ã§ã¯ãªãã§ããããïŒ ä»åã®äœæ¥ãè¡ãªã£ãŠããäžã§ãGitHub Copilot Chatã䜿ãå Žåã«ããããã®æ
å ±ã« äººéãéçºããæãšåãããã«ã¢ã¯ã»ã¹ã§ããããã«ããŠããããšã§ç²ŸåºŠã®åäžãèŠèŸŒãããã âŠð  ãšããã®ãèèº«ã«æããŸããã VSCodeã®GitHub Copilot Chatã§ã¯ããã¡ã€ã«æ€çŽ¢ãåç
§ã容æãªãããéçºã«å¿
èŠãªæ
å ±ã¯ãªããžããªå
ã«ãã¡ã€ã«ãšããŠçœ®ããŠããæ¹ãè¯ããªãšæã£ãŠããŸãã ãã®æµãã¯ãGitHub Copilot Chatã«éãããCursorãClineãã¯ãããšããAI Agentã䜿ãå Žåã§ãåããããªæµãã§ããã .cursorrules ã®ãããªãã¡ã€ã«ãäœãã®ãæšå¥šãããŠããã®ãšãã¯ç¹ã«é¡èã§ããã ãŸãããã®ãããªãããžã§ã¯ãå
šäœã§å
±éåããŠãããã¡ã€ã«ã眮ãã®ãšã¯å¥ã«ãä»å宿œãã tools/.copilot/ ã®ãããªGit管çããªãå人çšã®ãã¡ã€ã«çœ®ãå Žãäœã£ãŠããã®ããèªåçšã«é©å®ã«ã¹ã¿ãã€ãºããŠAIãšãã£ã¿ã®éçºæ¯æŽãè¡ããŠå¹ççãªéçºã«ã€ãªãããªãšæããŸããã 2. 人éã»AIãšãã«èªç¥è² è·ãäžãã AIã®æ§èœé¢ã§ã¯ãã¿ã¹ã¯ã®ç²ŸåºŠãé«ããããã«å
±éã«ãŒã«ãªã©ã®ã³ã³ããã¹ããå°ããããæ¹ãæãŸããã èªç¥è² è·ãäžããããšã§ç²ŸåºŠãåäž ããŸãã ãŸããçæAIã®ã³ãŒãã¯äººéãã¬ãã¥ãŒããŠèª¬æè²¬ä»»ãæã€å¿
èŠãããããã èªç¥è² è·ãäžããããšã§ã¬ãã¥ãŒå¹çãåäž ããŸãã çŽè¿ã¯Vibe CodingïŒãã€ãã³ãŒãã£ã³ã°ïŒãšãããã®ã話é¡ã«ãªã£ãŠãããã®ã®ãããŒã ã§éçºãè¡ãå Žå㯠çæAIã§æžããã³ãŒãã«å¯ŸããŠã人éåŽã説æè²¬ä»»ãæãŠãããšãæ±ããããŸã ã ãã®ããã AIã®ææç©ãã¬ãã¥ãŒããéã¯äººéã®èªç¥è² è·ãäžããããšãéèŠ ã§ããããã¯èªåãšããŒã ã¡ã³ããŒåæ¹ã®ããã«æèçã«å·¥å€«ãã¹ãç¹ã§ãã ããã«é¢ããŠã¯ XïŒæ§TwitterïŒã§ãæ¥ã
èšãããŠããã人éãããã«ããã¯ã âŠããšãã話ãä»åã®äœæ¥ãããŠããäžã§ã²ãã²ãæããŠããã®ã§ãä»åŸããè¯ãæ¹æ³ã暡玢ãã€ã€ãããè¯ãããŒã«ãã¯ãŒã¯ãããŒãçãŸããŠããããšã«æåŸ
ããããªãšæããŸããð 3. ãã¹ãã³ãŒããåäœç¢ºèªããŒã«ã掻çšãã ãã¹ãã³ãŒããšHTTP Clientã®æŽ»çšã§ãAIãçæããã³ãŒãã®åäœç¢ºèªãå¹ççã«è¡ããŸã ãããã¯çæAIç¹æã®è©±ã§ã¯ãªããäžè¬çãªéçºãã©ã¯ãã£ã¹ã§ãããç¹ã«éèŠã§ãã ãããŸã§ã®éçºè
ã®åªåã«ãã£ãŠåžå ŽãšããŠæçããŠããåçš®ãã¹ãããŒã«ã掻çšããããšã§ããšã©ãŒãæå³ããªãæåã®æ€åºãšä¿®æ£ã容æã«ãªããŸãããã®èªååãããé«éãªãã£ãŒãããã¯ã«ãŒãããããã°ã©ãã³ã°ãšçæAIã®çžæ§ã®è¯ããæ¯ããŠãããšç§ã¯èããŠããŸãã ããããªãå Žåããæã
ã§ã®ãã«ããšå®è¡ããšã©ãŒæã®AIãžã®å確èªãšããé
ããµã€ã¯ã«ãç¹°ãè¿ãããšã«ãªã£ãŠããŸããŸããããâŠð€ ãã®ããã«ãä»åã®æ€èšŒã«ãã£ãŠãè¿
éãªãã¹ããšãã£ãŒãããã¯ã«ãŒãã¯çæAI掻çšã®éèŠãªèŠçŽ ã ãšæããŸããã ãã®ãããåäœç¢ºèªããŒã«ãšãã¹ãã³ãŒãç°å¢ã®æŽåããWebã¢ããªéçºã«ãããçæAI掻çšãæšé²ããç¬¬äžæ©ãšãªãã®ããªãšæããŠããŸãð ããã㫠以äžããGitHub Copilot Chatã䜿ã£ãéçºã®äžã§å®éã«è©ŠããŠã¿ãããšãšãããããåŸãããæ°ã¥ãã«ã€ããŠã®ãŸãšãã§ããïŒ GitHub Copilot以å€ã«ããCursorãClineãªã©ã®AIãšãã£ã¿ãAIãšãŒãžã§ã³ããåºãŠããŠããäžã§ããããã䜿ãããšã§éçºå¹çãäžããã®ãïŒãšããç¹ã«ã€ããŠã¯ãä»åŸãåŒãç¶ãæ€èšŒããŠãããããªãšæã£ãŠããŸãããããã調æ»ããŠããŸã䜿ããããã«ãªãããšãããããã®ãšã³ãžãã¢ãã£ãªã¢ãäœãäžã§ãéèŠãªèŠçŽ ã«ãªã£ãŠããã®ããªããšæã£ãŠããã®ã§åŒãç¶ãé 匵ã£ãŠãããããšæããŸãïŒ ããããã¡ãã®èšäºãèªãã§AIã䜿ã£ãéçºã«èå³ãåºãŠããæ¹ãããã£ãããã°ãã²ã声ãããã ããïŒãã£ãã°ããã«ã話ãããŸãããð ã«ãžã¥ã¢ã«é¢è«ãã©ãããã©ãŒã ã®PittaãXïŒæ§TwitterïŒãªã©ã§ã話ãã§ããæ©äŒãããã°å¬ããã§ãïŒ https://pitta.me/matches/PDWMyhvOjUOy https://x.com/gatchan0807 ãŸããPAY.JP YELL BANKãéçºããŠããBASE BANKããŒã ã§ã¯ãšã³ãžãã¢ãåéããŠããŸãã®ã§ãèå³ãããæ¹ã¯ãã²ãã¡ããã芧ãã ããïŒ ð binc.jp æåŸãŸã§èªãã§ããã ããããããšãããããŸããïŒ
ã¯ããã« ããã«ã¡ã¯ãBASE BANK Departmentã§éçºè²¬ä»»è
ãããŠããæè€ã§ãã ä»åã¯BASE BANKã®éçºããŒã ã§å®æœãããèšèšã»ãããžã§ã¯ãæšé²ã®ãµãããããããå匷äŒãã«ã€ããŠç޹ä»ããŸãã èšèšã»ãããžã§ã¯ãæšé²ã®ãµãããããããå匷äŒãéå¬ããŸãã ãã®å匷äŒã§ã¯å®éã«ãããžã§ã¯ãããªãŒãããã¡ã³ããŒ(ä»åã¯ç§)ããèšèšã®å·¥å€«ããããžã§ã¯ãæšé²ããµãããããããããããŒã ã«å
±æãã圢åŒã§è¡ããŸããã ä»åã¯ã PAY.JP YELL BANKã«ãããåå調éã®ãµãŒãã¹å©çšæç¡ææœç ã顿ã«éå¬ããŸããã ãã®æœçã¯PAY.JP YELL BANKãåããŠå©çšããæ¹ãã ãµãŒãã¹å©çšæ0åã§è³é調éãè¡ãã ããã«ãããã®ã§ãããå€ãã®äºæ¥è
ããã®ãããã¯ãã«è§Šãããã£ãããã€ããç®çããããŸããã æªæ¥ã®å£²äžãããã«äœ¿ãã 審æ»äžèŠã®è³é調éãµãŒãã¹ PAY.JP YELL BANK ãªããã®å匷äŒãéå¬ããã®ã BASE BANKã®ãšã³ãžãã¢çµç¹ãšããŠããããããã¯ããæé·ãããããããŒã ã«ãªã£ãŠãããïŒãšããã®ãæ ¹æ¬ã«ããã ãããžã§ã¯ãããªãŒãããããªã«ããæ±ºãããšãã£ãçµéšãã¹ãã«ã«ããŒã ãšããŠäŒžã³ããããããšæããŠããŸããã 2025幎ã¯ãã®éšåã匷åãã¹ããé©åã«ãªãŒãã®åœ¹å²ãã¢ãµã€ã³ããæ©äŒãå¢ãããŠããŸãã ãšã¯ããããªãŒãã®åœ¹å²ãæ
ãããšã¯è²Žéãªããããã£ãŠã¿ãŸãããã§çµãã£ãŠããŸãã®ã¯ããŒã ãšããŠãã£ãããªããšæã£ãŠããŸããã ãã®ããã å®éã«ãªãŒãããçµéšããããã«æ·±ãåŠã³ã«å€ãã ä»ã®ã¡ã³ããŒã«ããã®åŠã³ãå
±æããããŒã å
šäœã®ã¬ãã«ã¢ããã«ã€ãªãã ãããã®ããšãç®çãšããŠããã®å匷äŒã宿œããŸããã å匷äŒã®å
容 å匷äŒã§ã¯ã以äžã®ãããªå
容ãçºè¡šããŸããã çŸç¶ã®ãããã¯ãèª²é¡ ãããžã§ã¯ãã®ç®ç èæ¯ãšå¶çŽ ãããžã§ã¯ãã®é²ãæ¹ãšéçºããŒããããã®èšèš æè¡èšèšã®æææ±ºå® ãªãã¡ã¯ã¿ãªã³ã°ã®å€æåºæº ã³ãããã«çŸãã«ããå®è£
äžã®å·¥å€«ãTips ãããã®å
容ãšããããŠãFigJamäžã§ãªã¢ã«ã¿ã€ã ã«ã³ã¡ã³ãã質åãããããªãããããã«å¯ŸããŠã¬ã¹ãã³ã¹ããŠãã圢åŒã§é²è¡ããŸããã åå ã¡ã³ããŒããã®ãã£ãŒããã㯠åå ã¡ã³ããŒããã¯ã以äžã®ãããªãã£ãŒãããã¯ããããŸããã ä»ã®äººã®ããŒãããããã¬ã³ããã£ãŒãã®äœãæ¹ãèããã®ã¯åããŠã ã£ãã®ã§åèã«ãªã£ã ã¿ã¹ã¯åäœã®å·¥æ°ãšäºå®ãããšã«èŠå ãæ¯ãè¿ã£ãŠããã®ãè¯ã ãªãã¡ã¯ã¿ãªã³ã°ããã€ã©ããããã®ã±ãŒã¹ãã€ã±ãŒã¹ã®å€æãåèã«ãªã èªèº«ãå¥ã®ãããã¯ãã§ãã£ã³ããŒã³ã«åãçµãã ãšãã¯ãããã èªåãåããããªã³ãŒãã£ã³ã°ãããŠããã®ã§å
±æãã ãã£ãŒãããã¯ã³ã¡ã³ãã®äžéš çºè¡šããŠã¿ãŠ ããŒãããããã¬ã³ããã£ãŒãã®ã€ããæ¹ãèšèªåããããšã§ãèªåèªèº«ã®äžã§ãæŽçã§ããŸãããã ã¡ã³ããŒããã¯ããããã®ã€ããæ¹ãæ°ãã€ããŠããããšãèããŠã次ã«ããŒãããããã¬ã³ããã£ãŒããã€ãããšãã¯ããè¯ããã®ã«ã§ãããã§ãïŒ èšèšã«ãããæ±çšæ§ãã©ããŸã§èãããã¯ã±ãŒã¹ãã€ã±ãŒã¹ãªãããä»ã®ãããžã§ã¯ãã®äºäŸãæææ±ºå®ããã£ãŒãããã¯ã§èããã®ã¯ãšãŠãè¯ãäœéšã§ããã èªèº«ã®æèŠããã£ãŒãããã¯ãšãã宿§é¢ã§ãããç®çã«è¿ã¥ããå
容ã§éå¬ã§ããã®ããšæããŸãïŒ ä»åŸã®å±æãšèª²é¡ ä»åŸããã®å匷äŒã¯ç¶ç¶ããŠéå¬ããŠãããããšèããŠããŸãã äœåãéããŠãããåœåã®éå¬ç®çã§ãã å®éã«ãªãŒãããçµéšããããã«æ·±ãåŠã³ã«å€ãã ä»ã®ã¡ã³ããŒã«ããã®åŠã³ãå
±æããããŒã å
šäœã®ã¬ãã«ã¢ããã«ã€ãªãã ãããã®éæã«è¿ã¥ããŠããã®ããããã«ããè¯ãæ¹æ³ã¯ãªãã®ããæš¡çŽ¢ããŠããäºå®ã§ãã ãŸããåå ã¡ã³ããŒããã¯ä»¥äžã®ãããªã³ã¡ã³ããããããŸããã å®è£
ã«é¢ããå
·äœçãªTipsããã£ãšèããã PdMãäºæ¥è²¬ä»»è
ãšã®ããåããæææ±ºå®ã®èæ¯ãç¥ããã èšèšå€æã«ãããŠãéžã°ããªãã£ãä»ã®éžæè¢ã«ã€ããŠãç¥ããã ãããžã§ã¯ãã§å·¥å€«ããç¹ãšãã®å¹æã«ã€ããŠè©³ããç¥ããã ããŸããããªãã£ãããšããããããã€ã³ããå
±æããŠã»ãã ã¹ã±ãžã¥ãŒã«ãå³ãããªã£ãæã®ãªã«ããªãŒæ¹æ³ããé¢ä¿è
ãšã®èª¿æŽã®ä»æ¹ãç¥ããã ä»åŸã®ããŒãèšå®ããã©ãŒããããæ¹åããŠãããšãã«ãåæ ã§ããã°ãšæããŸãïŒ æåŸã« BASE BANKã§ã¯ãããããå匷äŒãéããŠããããã¯ããæé·ãããåãããŒã å
šäœã§äŒžã°ããŠãããŸãïŒ åè·çš®ãæ¡çšãè¡ã£ãŠãããŸãã®ã§ããã²ãã²ãå¿åãã ããïŒ open.talentio.com ãŸãã¯å匷äŒã®å
·äœçãªå
å®¹ãæ®æ®µã®åãæ¹ãªã©ãèããŠã¿ãããšããæ¹ã¯ããã²ã«ãžã¥ã¢ã«é¢è«ã§ã話ãããŸãããïŒïŒ ãããªå匷äŒãéå¬ããŠããããããªãããžã§ã¯ããªãŒãããã£ãŠãããšãã話ããèããããã§ãïŒ Xçã§æ°è»œã«ãé£çµ¡ãã ããïŒ https://twitter.com/hiroki_saito_
ã¯ããã« ããã«ã¡ã¯ïŒ BASEã®ã«ãŒãããŒã ã§ããã¯ãšã³ããšã³ãžãã¢ãããŠãããããã®ïŒ @ykagano ïŒã§ãïŒ ã¿ãªãããECã«ãŒãã§ããèŠããã®ãããžããåç¥ã§ããïŒïŒå³äžã®èµ€äžžéšåã§ãïŒ ããã¯ã«ãŒãã«ååãããã€å
¥ã£ãŠãããã瀺ãã«ãŒããããžã§ãã ãã®ã«ãŒããããžã¯Pay IDã¢ããªã§ã¯ãã§ã«è¡šç€ºãããŠããŸããããããŸã§BASEã®Webã·ã§ããã«ã¯è¡šç€ºãããŠããŸããã§ããã ä»åã¯ãã®ã«ãŒããããžãWebã®ã·ã§ããã«ãªãªãŒã¹ããŸããã®ã§ããã®ã話ãããããšæããŸãã ã«ãŒããããžã®å®è£
æ¹æ³ ã«ãŒããããžã¯ä»¥åãWebã®ã·ã§ããã§ãäžææè¡šç€ºãããŠããŸããã ãããã衚瀺ã®éœåºŠãDBãžã®è² è·ãé«ããŠããŸããšãã課é¡ãåœæãããéå»ã«åãäžããããçµç·¯ããããŸãã åœæã®èª²é¡ BASEã®ã·ã§ããç»é¢ãšãã«ãŒãç»é¢ã¯å¥ã®ã¢ããªã±ãŒã·ã§ã³ã«ãªã£ãŠãããåœæã¯ãã®ã·ã§ããç»é¢ãšã«ãŒãç»é¢ã®ãã¡ã€ã³ãç°ãªã£ãŠãããšãã課é¡ããŸããããŸããã ãã®ãããã·ã§ããç»é¢ã«è¡šç€ºãããã«ãŒããããžã¯ããã¡ã€ã³ã®ç°ãªãã«ãŒãã¢ããªã±ãŒã·ã§ã³ã«ã¢ã¯ã»ã¹ããŠååæ°ã衚瀺ããå¿
èŠããããŸããã ã·ã§ããç»é¢ã«iframeã衚瀺ããŠã衚瀺ãããiframeããã«ãŒããã¡ã€ã³ã«ã¢ã¯ã»ã¹ããããšã§ã«ãŒãå
ã®ååæ°ã衚瀺ãããšããå®è£
ã§ããã ããããã®å®è£
ã§ã¯ããŠãŒã¶ãŒãã·ã§ããã«ã¢ã¯ã»ã¹ãã床ãiframeããã«ãŒãã®ããã¯ãšã³ãã«ãªã¯ãšã¹ããçºçããç¶æ
ã§ããã 衚瀺ã®éœåºŠçºçããDBã¢ã¯ã»ã¹ã«ããè² è·ãé«ããŠããŸããããã«ãŒããããžã¯åãäžããããããšã«ãªããŸããã åœæã®ã«ãŒããããžã®è¡šç€ºãã㌠import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs'; mermaid.initialize({ startOnLoad: true }); sequenceDiagram actor user as 賌å
¥è
ã®ãã©ãŠã¶ participant front as ã·ã§ãã participant cart as ã«ãŒã participant db as DB user ->> front: Webã·ã§ããã«ã¢ã¯ã»ã¹ front -->> user: ã·ã§ããç»é¢ã衚瀺 user -->> cart: ã·ã§ããç»é¢å
ã®iframeã§ã«ãŒããã¡ã€ã³ã«ã¢ã¯ã»ã¹ cart ->> db: ã«ãŒãå
ã®ååæ°ã®ååŸãèŠæ± db -->> cart: ååŸããååæ°ãã«ãŒããããžã«è¡šç€º çŸåšã§ã¯ãã·ã§ãããšã«ãŒãã®ãã¡ã€ã³ãäžèŽããããã«ãªã£ããããiframeã§å®è£
ããå¿
èŠããªããªããŸããã ãã®ãããä»å㯠Local Storage ã䜿çšããŠãã©ãŠã¶ã«ã«ãŒãã®ååæ°ãèšé²ããããšã«ããŸããã ã«ãŒãç»é¢ã§ã®åçš®ã€ãã³ãçºçæã«ãLocal Storageã®ååæ°ãæŽæ°ããã·ã§ããç»é¢ã«ååæ°ãåæ ããã«ãŒããããžã衚瀺ãããã®ãšãªããŸãã ãããªãããã¯ãšã³ãã«è² è·ã¯ããããŸããã ä»åã®ã«ãŒããããžã®è¡šç€ºãã㌠sequenceDiagram actor user as 賌å
¥è
ã®ãã©ãŠã¶ participant front as ã·ã§ãã participant cart as ã«ãŒã user ->> front: Webã·ã§ããã«ã¢ã¯ã»ã¹ front -->> user: ã·ã§ããç»é¢ã衚瀺 user ->> cart: ã·ã§ããç»é¢ã§ååã远å ïŒã«ãŒãç»é¢ã«ç§»åïŒ cart -->> user: Local Storageã®ååæ°ãæŽæ° user ->> cart: ååæ°éãå€æŽ cart -->> user: Local Storageã®ååæ°ãæŽæ° user ->> front: ã·ã§ããã«æ»ã front -->> user: ã·ã§ããç»é¢ã衚瀺 user ->> user: ååæ°ããã©ãŠã¶ã®Local StorageããååŸ user ->> user: ã«ãŒããããžã«ååæ°ã衚瀺 åãã¶ã€ã³ããŒãã«ãªãªãŒã¹ BASEã§ã¯ã·ã§ãããªãŒããŒãã·ã§ããã®ãã¶ã€ã³ãç°¡åã«ã«ã¹ã¿ãã€ãºã§ãããã³ãã¬ãŒãããã¶ã€ã³ããŒããšããŠçšæããŠããŸãã ã³ãŒããæžããªããŠãã·ã§ããã®èŠãç®ãæŽããããç¡æã»ææã®ãã¶ã€ã³ããŒãã«ã¯ã倧ããåããŠä»¥äžã®3çš®é¡ããããŸãã ãªãã£ã·ã£ã«ããŒãïŒBASEã®æäŸããç¡æããŒã ãã¶ã€ããŒãºããŒãïŒææºã¯ãªãšã€ã¿ãŒã«ãã£ãŠäœæãããææããŒã ã«ã¹ã¿ã ããŒãïŒãHTMLç·šéAppãã«ãã£ãŠã·ã§ãããèªç±ã«ã«ã¹ã¿ãã€ãºããç¡æããŒã ä»åãã®å
šãŠã®ãã¶ã€ã³ããŒãã«ã«ãŒããããžã衚瀺ã§ããããã«ãªãªãŒã¹ããŸããã ããŒãã®éãã«ã€ããŠã®è©³çްã¯ä»¥äžã®ãµã€ãããåç
§ãã ããã baseu.jp ãããã以äžã®æ¥çšã«ã«ãŒããããžããªãªãŒã¹ããŠããŸãã æ¢åã®ã«ã¹ã¿ã ããŒããšææã®ãã¶ã€ããŒãºããŒãã«ã«ãŒããããžã衚瀺ããå Žåã¯ãããããã·ã§ãããªãŒããŒæ§ãããŒãäœè
æ§ã§ã®è¿œå 察å¿ãå¿
èŠãšãªããŸãã 察象 ãªãªãŒã¹æ¥ åè ç¡æã®ãªãã£ã·ã£ã«ããŒã 2024/10/25 ã«ãŒããããžãèªååæ ãããŠè¡šç€ºãããŸã ç¡æã®ã«ã¹ã¿ã ããŒã ïŒãHTMLç·šéAppãã§ç·šéããããŒãïŒ 2025/2/5 æ°èŠäœææã¯ã«ãŒããããžã远å ãããŠããŸã æ¢åã®äœææžã¿ã«ã¹ã¿ã ããŒãã¯äœè
ã®ã·ã§ãããªãŒããŒæ§ã«ããHTMLç·šéãå¿
èŠã§ã ææã®ãã¶ã€ããŒãºããŒã 2025/2/5 ããŒãäœè
æ§ã§ã®è¿œå 察å¿ãå¿
èŠã§ã æ¢åã®ã«ã¹ã¿ã ããŒãããã¶ã€ããŒãºããŒãã¯ãªã察å¿ãå¿
èŠãªã®ã ã«ã¹ã¿ã ããŒããšãã¶ã€ããŒãºããŒãã®ãã¶ã€ã³èªäœã¯BASEã§ç®¡çãããŠããŸããããBASEåŽã§å
±éã®ã¿ã°ã«å¯ŸããŠã³ãŒããåã蟌ãããšã¯å¯èœã§ãã åœåã¯ã«ã¹ã¿ã ããŒãããã¶ã€ããŒãºããŒãã«ãããªãã£ã·ã£ã«ããŒããšåæ§ã«æ±çšçãªã«ãŒããããžã衚瀺ããæ³å®ã§éçºãé²ããŠããŸããã ãã¡ãã®ããŒãžã«BASEã®DevelopersããŒãžã§ã®Template仿§ãèšèŒãããŠããŸãã <body>仕様 · Developers äžèšããŒãžã«èšèŒã®éããæ¢åã®BASEã¡ãã¥ãŒã®ã¿ã°ããã§ã«åã蟌ãŸããŠããŸãã {BASEMenuTag} ä»åããã¡ããä¿®æ£ããŠã«ãŒããããžã®HTMLèŠçŽ ãåã蟌ãã§ããŸãã BASEã¡ãã¥ãŒã¿ã°ã¯äžèšã®ããã«åºåãããŸãïŒã«ãŒããããžã¯éè¡šç€ºç¶æ
ã§ãïŒã < div id = "baseMenu" > < ul class = "clearfix" > < li class = "base" > < a target = "_blank" href = "https://thebase.in?from=ã·ã§ããID &amp; p=shop" > < img src = "/img/shop/base.png" alt = "ãããã·ã§ãããéèšãããªãBASE" title = "BASE" height = "30" > </ a > </ li > < li class = "cart" > < a href = "https://c.thebase.in/order/cart/ã·ã§ããID" > < img src = "/img/shop/cart.png" alt = "shopping cart" height = "30" > < div class = "cart-badge" style = "display: none;" > < div class = "cart-qty" style = "display: none;" ></ div > </ div > </ a > </ li > </ ul > </ div > æ±çšçãªã«ãŒããããžã衚瀺ããããã«ãçŽ100ä»¶ãããã¶ã€ããŒãºããŒãã®å
šãŠã§ãã¹ããè¡ãäºå®ã§ããããçµæãšããŠãã¹ãã¯å®æœéäžã§æã¡åããŸããã ã«ã¹ã¿ã ããŒãããã¶ã€ããŒãºããŒãã¯ããããã·ã§ããã®é°å²æ°ã«åãããŠçްããã«ã¹ã¿ãã€ãºãããããŒãã«ãªããŸãã ããã«æ±çšã®ã«ãŒããããžãäžåŸã§è¡šç€ºããã®ã¯é£ãããšå€æããããã§ãã ãã®ãããã¢ãããŒãæ¹æ³ãå€ããŠãæ¢åã®ã«ã¹ã¿ã ããŒãããã¶ã€ããŒãºããŒãã«ã¯ããŒãäœè
æ§ã«çµã¿èŸŒãã§ããã ãæ¹æ³ãåããŸããã å
·äœçã«ã¯äžèšCSSãçµã¿èŸŒãã§ããã ã圢ãšãªããŸããäœçœ®ããµã€ãºçã¯åå¥ã«ã«ã¹ã¿ãã€ãºãã ããã .cart { position : relative ; } .cart-badge { display : block !important ; } .cart-qty { position : absolute ; top : 4px ; right : 5px ; padding : 0 1px ; min-width : 14px ; background : #fa5171 ; border-radius : 50% ; color : #fff ; font-size : 10px ; font-weight : 700 ; line-height : 16px ; text-align : center ; } ã«ãŒããããžã®çµã¿èŸŒã¿æ¹æ³ã®è©³çްã¯ãã¡ãã®ããŒãžããåç
§ãã ããã <body>仕様 · Developers ãã¶ã€ããŒãºããŒãã¯ã«ãŒããããžã®è¡šç€ºã«ã©ãããã察å¿ããŠããã®ã ãã¶ã€ããŒãºããŒãã¯ããŒãäœè
æ§ã®ä¿®æ£åŸã«BASEãžã®ç³è«ãè¡ã£ãŠããã ããBASEã§å¯©æ»ãè¡ããŸãã ä»åãã«ãŒããããžã«ã€ããŠã¯ç§ã®æ¹ã§å¯©æ»ãè¡ãããŠããã ããŸããã çµæã2/5ã®ãªãªãŒã¹ãã2é±éã§çŽ22%ã®ãã¶ã€ããŒãºããŒããã«ãŒããããžã衚瀺ããŠãããããã«ãªããŸããïŒ ãªãªãŒã¹åŸã«ãç¥ãããéç¥ããã®ãã2/12ã®ãããå®éã«ã¯ãç¥ãããã1é±éã§ããŒãç³è«ããããã®ãã»ãšãã©ã«ãªããŸãã ãªãªãŒã¹åŸã«ãç¥ããããããšãäžéšã®ããŒãäœè
æ§ã¯ããã«å¯Ÿå¿ããŠç³è«ããã ããããšãåãããŸããã ããŒãã®äœè
æ§ã¯ã©ã®ãããªå®è£
ããããŠããã®ãã§ããããŸãäžèšCSSã®éãå®è£
ãããšäžèšã®ã«ãŒããããžã衚瀺ãããŸãã ã«ã¹ã¿ã ããŒãã®æ°èŠäœææã«è¡šç€ºãããã«ãŒããããž ãã¶ã€ããŒãºããŒãã®äœè
æ§ã¯åã
ã®ãã¶ã€ã³ã«åãããŠè²ããµã€ãºãäœçœ®ã现ãã調æŽãããŠããŸããã 以äžã«ãã®äŸãšããŠãããŒãããšã®ã«ãŒããããžã3ã€ã玹ä»ããŸãã EuforiaïŒãŠãŒãã©ãªã¢ïŒ OULU Retail Pro Dolce Vivace æ§ã«ãŠäœæ GRAYEL Inc. æ§ã«ãŠäœæ ymtk æ§ã«ãŠäœæ ããŒãã®è©³çްãèŠã ããŒãã®è©³çްãèŠã ããŒãã®è©³çްãèŠã åå¥ã«ã«ã¹ã¿ãã€ãºããã ããããšã§ãããè¯ã圢ã§ã«ãŒããããžã衚瀺ã§ããããã«ãªã£ããšæããŸãã ãããã« Webã§ã®ã«ãŒããããžã®è¡šç€ºã¯BASE瀟å
ã§ã¯ãã£ãšåãçµã¿ããã£ãæ¡ä»¶ãšãªããŸãã ä»åãã«ãŒãããŒã ã§å¯Ÿå¿ãè¡ããŸãããããããŸã§ããŸãé¢ããã®ãªãã£ãã·ã§ããã®ãã¶ã€ã³ããŒããããã«ä»éãã審æ»ãªã©ã«ãé¢ããããšãã§ããéåžžã«è¯ãçµéšãã§ããŸããã ãã®ããã«BASEã§ã¯ãåºãé åã§ã®éçºãçµéšããããšãã§ããŸãã èå³ã®ãããšã³ãžãã¢ã¯ãã²åŒç€Ÿã«ãå¿åãã ããïŒ binc.jp
2025/3/21ïŒéïŒ- 3/23ïŒæ¥ïŒã®3æ¥éãäžéã»ã³ãã©ã«ããŒã¯ã«ã³ãã¡ã¬ã³ã¹ & ãã³ãã³çæŸéã§ PHPerKaigi 2025ãéå¬ãããŸãã BASEæ ªåŒäŒç€Ÿã¯ãŽãŒã«ãã¹ãã³ãµãŒãšããŠPHPerKaigi 2025ãžåè³ããŠããŸãã phperkaigi.jp PHPerKaigiãšã¯ PHPerKaigiã¯ããªãŒãã³ãœãŒã¹ã®ã¹ã¯ãªããèšèª PHP ïŒæ£åŒåç§° PHP:Hypertext PreprocessorïŒã䜿çšããŠããæ¹ãéå»ã«PHPã䜿çšããŠããæ¹ãããããPHPã䜿ããããšæã£ãŠããæ¹ããããŠPHPã倧奜ããªæ¹ãã¡ããæè¡çãªããŠããŠãšPHPæãå
±æããããã®ã€ãã³ãã§ãã 2025幎ã¯äžéã»ã³ãã©ã«ããŒã¯ã«ã³ãã¡ã¬ã³ã¹ & ãã³ãã³çæŸéã§ããªãã©ã€ã³åã³ãªã³ã©ã€ã³ã®ãã€ããªããéå¬ãšãªããŸãããã±ããã¯äžèšãããç³ã蟌ã¿ããã ããŸãã https://fortee.jp/phperkaigi-2025/ticket-shop/index ç»å£ã¡ã³ããŒã®ãçŽ¹ä» PHPerKaigi 2025ã§ã¯ãBASEã§æŽ»èºããŠãã4åã®ã¡ã³ããŒãç»å£äºå®ã§ãããã²èãã«ããããŠãã ããã 3/22ïŒåïŒ day1 11:10- é«çºå²è¡£ãããBCMathãé«éåããäžéšå§çµãCèšèªã§ã¬ãç®ã«è§£èª¬ããã 3/23ïŒæ¥ïŒ day2 10:30- ããã°ã©ãã³ã°ããããã³ããããã¢ãžã¥ã©ãŒã¢ããªã¹ã§ã¹ã±ãŒã©ãã«ãªã·ã¹ãã ãèšèšã»éçºããã 13:35- 02ãããPHP8.4ã«ãããJITãã¬ãŒã ã¯ãŒã¯IRãšäžé衚çŸã«ã€ããŠçè§£ãæ·±ããã 15:40- meiheiãããList ãšã¯äœãïŒã ãããã« ãããŸã§èªãã§ãã ãã£ãæ¹ã®ããã«ãPHPerKaigiã§è¡ããããPHPerãã£ã¬ã³ãžãã®PHPããŒã¯ã³ããç¥ããããŸãã PHPerãã£ã¬ã³ãžã¯èŠã€ããããŒã¯ã³ã®æ°ã§åçš®äŒç»ãžã®åå æš©ãåŸãããå
šå¡åå åã®äŒç»ã§ãã詳现ã¯PHPerKaigiå
ã§ã®ã¢ããŠã³ã¹ããã³ãã¬ãããã芧ãã ããã #be_hopeful #move_fast #speak_openly ä»å¹Žã¯BASEã®ãããã¯ãã¥ããã®ããã®è¡åæéã§ãããBe HopefulããMove FastããSpeak Openlyãã®3ã€ãããŒã¯ã³ãšãããŠããã ããŸããã è¡åæéã®æå³ã«ã€ããŠã¯æ¡çšæ
å ±ã«èŒã£ãŠããŸãã®ã§ããã¡ãããã²ã芧ãã ããã binc.jp PHPerKaigi 2025ã§ãã¿ãªããŸã«ãäŒãã§ããããšã楜ãã¿ã«ããŠãããŸãïŒ
ã¯ããã« BASE BANK Division ã§ ãã«ãµã€ã¯ã«ãšã³ãžã㢠ãããŠãã02 ïŒ @cocoeyes02 ïŒã§ãã 2025/02/22ïŒåïŒã«éå¬ãããPHPã«ã³ãã¡ã¬ã³ã¹åå€å± 2025ã«ç»å£ããBASE瀟ãšããŠãããã³ãºã¹ãã³ãµãŒãšããŠåè³ããŸããã ä»åã®èšäºã§ã¯ç»å£ã«ã€ããŠã®ã³ã¡ã³ããšãäŒå Žã®æ§åã«ã€ããŠãå±ãããŸãïŒ ä»åã®ã»ãã·ã§ã³ãšåè³ã«ã€ã㊠ä»åã¯LTã§ã®ç»å£ã§ãã speakerdeck.com LTå§ãŸããŸããïŒïŒïŒ #phpcon_nagoya pic.twitter.com/0DUiNYIYy4 — PHPã«ã³ãã¡ã¬ã³ã¹åå€å± (@phpcon_nagoya) 2025幎2æ22æ¥ éå»ã«ã話ãã PHPUnit 10 ã PHPUnit 11 ã«ç¶ããŠPHPUnit 12ã®è©±ã§ããå¶éæé5åã§ç¡çãããPHPUnit 12ã§Removeãšãªã£ãæ©èœã®å¯Ÿå¿æ¹æ³ã«ã€ããŠè©±ããŸããïŒ å¯Ÿå¿æ¹æ³ãšããã€ã€ããããããããã¹ãããã¹ã察象èªäœã®èšèšãèŠçŽãã¹ãããšãªãã±ãŒã¹ãå€ãã£ãã®ãå°è±¡çã§ãããPHPUnit10~12ãéããŠã倿Žç®æã«ã€ããŠå
šãŠã§ã¯ãªãã«ãããå€ãã®å€æŽã«ã€ããŠè©±ããŠããŸãããçããã®PHPUnitããŒãžã§ã³ã¢ããäœæ¥ã«åœ¹ç«ãŠãŠãã°å¹žãã§ãã ãŸããä»åã®åè³ã¯ã BASE BANK, äžå°èŠæš¡ã®ãšã³ãžãã¢ã€ãã³ãã«ãäŒå Ž&飲é£ã¹ãã³ãµãŒããŸãïŒ ãã®èšäºãèŠãŠãéå¶ã®çããŸãããé£çµ¡ãããã ããå®çŸããããŸãããããããšãããããŸããïŒ äŒå Žã¹ãã³ãµãŒã飲é£ã¹ãã³ãµãŒãåŒãç¶ã宿œããŠãããŸãã®ã§ããæ°è»œã«ãé£çµ¡ãã ããã â±ð£ã¹ãã³ãµãŒæ§ã®ã玹ä»ð£â° PHPã«ã³ãã¡ã¬ã³ã¹åå€å±2025ã«åè³ããã ããŠããã¹ãã³ãµãŒäŒæ¥æ§ã®ã玹ä»ã§ãïŒ BASEæ ªåŒäŒç€ŸïŒBASE BANKããŒã ïŒæ§ïŒ @binc_jp ïŒãèª ã«ããããšãããããŸãïŒð€ ã¹ãã³ãµãŒããŒãžã¯ãã¡ãð https://t.co/mONG7dtmeR #phpcon_nagoya pic.twitter.com/0lfi9Ja97G — PHPã«ã³ãã¡ã¬ã³ã¹åå€å± (@phpcon_nagoya) 2025幎2æ21æ¥ çŸå°ã®æ§å ããããã¯ãçŸå°ã®æ§åãäžéšãå±ãããŸãïŒ ãªãŒããã³ã°ã®æ§å ãªãŒããã³ã°ã¯ãå¹³éç¶Ÿããã®ãã¬ãŒã·ã§ã³ã§å§ãŸããåå€å±ã®èгå
å°ã®å
æ¯ãé£ã¹ç©ãªã©ãæ ãåºãããŸããïŒ â±ð¥ãªãŒããã³ã°ã»ãšã³ãã£ã³ã°ã ãŒããŒå€§å
¬éïŒâ° ã«ã³ãã¡ã¬ã³ã¹åœæ¥ã«äžæ ãããªãŒããã³ã°ã ãŒããŒã»ãšã³ãã£ã³ã°ã ãŒããŒãã #å¹³éç¶Ÿ ããã®ãã€ã¹å
¥ãã§ãYouTubeã«å
¬éããŸããïŒððð ãªãŒããã³ã°ïŒ https://t.co/DiRcQtbr6z ãšã³ãã£ã³ã°ïŒ https://t.co/TKpdhPGkGf #phpcon_nagoya — PHPã«ã³ãã¡ã¬ã³ã¹åå€å± (@phpcon_nagoya) 2025幎2æ24æ¥ ãã®åŸãå瀟ã¹ãã³ãµãŒã«ã€ããŠã玹ä»ããããŸããã ã¹ãã³ãµãŒç޹ä»ã§BASEããŽãšå
±ã«èªã¿äžããããæ§å ã¹ãã³ãµãŒããŒã¹ã®æ§å ã¹ãã³ãµãŒããŒã¹ã®ãšãªã¢ãè³ãã£ãŠããŸããïŒããŒã¹ä»¥å€ã«ãããžã§ãããŒããããŒã ã«ãŒãã®äœæã³ãŒããŒãè¬è§£ãããã€ã«ãã³ãŒããŒããŒã¹ãªã©ãããããã®ã³ã³ãã³ãããããŸããïŒ ã¹ãã³ãµãŒããŒã¹ãšãªã¢ã®æ§å ãžã§ãããŒã ããŒã ã«ãŒã ã©ã³ãã«ã€ããŠããè€æ°äººã§ã°ã«ãŒããçµãã§åå€å±ãªãã§ã¯ã®ã©ã³ããã¿ããªã§è¡ãã¢ã³ããŒã£ã¡ã©ã³ããããããã¹ãã¿ãªãã£ãæããŸããïŒ ã¢ã³ããŒã£ã¡ã©ã³ãã®é²æã§ãð€ åå€å±ã®ãšããã©ã€é£ã¹ãŠãŸãðŠ #phpcon_nagoya pic.twitter.com/pP4q0cNzpe — PHPã«ã³ãã¡ã¬ã³ã¹åå€å± (@phpcon_nagoya) 2025幎2æ22æ¥ ãããã« ã¹ã¿ããã®æ¹ã
ã«ã¯ãå¿ããã«ãé¢ããããå€ãã®æéãæºåã«è²»ãããŠããã ãããšæããŸãããã®å ŽãåããŠåŸ¡ç€Œç³ãäžããŸãã åå€å±ã®é
åãååã«ã¢ããŒã«ããŠãããšãŠãçŽ æµãªã«ã³ãã¡ã¬ã³ã¹ã§ããããŸãéå¬ããããæ¯éåå ãããã§ããïŒ BASE / BASE BANKã§ã¯ãçµ¶è³PHPerãæ¡çšäžã§ããäžèšã®æ¡çšæ
å ±ãã«ãžã¥ã¢ã«é¢è«ãªã³ã¯ãããã²ã芧ãã ããïŒ binc.jp open.talentio.com
ã¯ããã« BASE ã® Product Dev Division ã§ Advanced Engineer ã®ããã°ã©ãã³ã°ããããã³ãïŒ @Panda_Program ïŒã§ãã2幎åé Senior Engineer ããã£ãŠãä»ã¯ Advanced Engineer ã«ãªããŸããã ä»åãçžãé ããŸã㊠Developers SummitïŒãããµãïŒ2025 ã«åå ã»ç»å£ããŸãããç»å£å
容ã¯ã¹ã©ã€ããå
¬éããŠãããŸãã®ã§ãã¡ããã芧ãã ããã ããã¯ãšã³ããšã³ãžãã¢ã®ããã®ããã³ããšã³ãå
¥é speakerdeck.com ã¹ã©ã€ãã®å
¬éåŸã«ã¯ãŠãã®ãã¬ã³ãå
¥ããããããã¹ã©ã€ãã®PVã7,000 view ã«è¿«ã£ãããšå¥œè©ã ã£ãããã§èžãæ«ã§äžãããŸããããŸããåå
容ã¯èšäºãšã㊠CodeZine æ§ã§ãé£èŒäžã§ãã®ã§ããããã°ãã¡ããã芧ãã ããã codezine.jp æ¬èšäºã§ã¯èªåãåå ããã»ãã·ã§ã³ã®ãŸãšããšææ³ãæžããŠãããŸããèªåãåå ããã»ãã·ã§ã³ã®äžããã忥ãšãã«çŸå Žã§åœ¹ç«ã€ããŒãã®ã»ãã·ã§ã³ã3ã€ãã€ããã¯ã¢ããããŠããŸãããªããåã»ãã·ã§ã³ã®è³æã¯ ãDevelopers Summit 2025ãè¬æŒã¹ã©ã€ãã»åå ããã°ãŸãšã ããã芧ãã ããããªããèªåãç»å£ããææ³ã¯å¥ã®èšäºã§æžãäºå®ã§ãã 忥ã®ã»ãã·ã§ã³ èªåãã¹ãã®äžçã«ããã®5幎éã§èµ·ããããš Autify ã®æ«æããã®ã»ãã·ã§ã³ã§ããçŽè¿5幎éã§èªåãã¹ããåãå·»ãç°å¢ãå€ãã£ãããšã玹ä»ãããŠããŸãã çºè¡šã«ãããšãããŒã«ãšéçºè
ã®ãã€ã³ãã»ããã«å€§ããªå€åããããŸãããCypressãPlaywrightãTesting Libraryãšãã£ã䟿å©ãªããŒã«ãå©çšããããšã§ãã¹ãã®ããŒãã«ãäžãããŸããããŸãããœãããŠã§ã¢ã®å質ãé«ããšéçºã¹ããŒããäžãããšããèãæ¹ãæµžéããçµæãèªåãã¹ãã¯åœããåã«ãªããŸããã èªåãã¹ããæ®åããŠããäžã®äžã§æ¬¡ãªã課é¡ã¯ãE2Eã®ã«ãã¬ããžãå¢ããããããã©ããªãã¹ããããã°é害ã®äºé²ãã§ããã®ãããªã©ã®ãã¹ãèšèšã§ãããããã¯å®ååã§ããªãã£ãã®ã§ãããLLMã®ãããã§ä»æ§æžãããã¹ããèšèšãããªã©ãéå®åçãªãã¹ãèšèšã®ã³ã¹ããäžããã§ããããšã®ããšã§ããã 顧客ã®ããŒãºã¯å€åãããã®ã®ãåžžã«ãã¹ããè¡ãããšã§ããŸããŸãªããŒãºã«è¿
éã«å¯Ÿå¿ããé«éãªãªãªãŒã¹ãå®çŸã§ããããšã匷調ãããŠããŸããã BASE ã§ã¯ããã¯ãšã³ãã®ãã¹ãã¯åäœãã¹ããçµåãã¹ããšãã«åœããåã«æžããŠããŸããäžæ¹ãããã³ããšã³ãã«ã€ããŠã¯ãã£ããå®ãããŠããéšåãšããã§ãªãéšåããããŸããäŸãã°ã«ãŒããšããæ±ºæžã«é¢ããã³ã¢æ©èœã§ã¯E2Eãã¹ãããã£ããæžãããŠããããäž»èŠãªæ©èœã§ Mabl ã䜿ã£ãE2Eãã¹ãã宿å®è¡ãããŠããã®ã§ãããã·ã§ãããªãŒããŒåãã®ç®¡çç»é¢ã§ã¯ã³ã³ããŒãã³ããã¹ãããŠããããã¹ããã¡ãã»ãæžããå§ããŠãããšããå°è±¡ãªã®ã§ããã®æµããæšãé²ããããããªãšæããŸãã ãšã³ãžãã¢ãã£ãªã¢å³éãïœãšã³ãžãã¢ãªã³ã°ãããŒãžã£ãŒ VS ããã¯ãªãŒãïœ ã«ã±ãã·ã®å°ç°äžããããã°ã©ã¹ã®å¡©è°·ãããææ¬ããã®ãã£ã¹ã«ãã·ã§ã³ã§ãããå°ç°äžããããšã³ãžãã¢ãã£ãªã¢å³éãšããåãçµã¿ã§ããšã³ãžãã¢ãèªåã®ããŒã«ã¢ãã«ãèŠã€ããŠããã£ãªã¢åœ¢æã®ãã³ããåŸãæ©äŒãäœãã®ãç®æãããŠãããšã®ããšã ããã§ããã°ã©ã¹ã§ãšã³ãžãã¢ãªã³ã°ãããŒãžã£ãŒãšããã¯ãªãŒãããããŠãããäºäººã«è©±ãèããšããã®ãæ¬ã»ãã·ã§ã³ã§ãã ãããŒãžã£ãŒãšããã¯ãªãŒãã®éããšããŠããããŒãžã£ãŒã¯ã¡ã³ããŒã®ãã£ãªã¢ãæ¯æŽãã圌ãã®ããããããšãèŠã€ããæå©ãããã圹å²ãããäžæ¹ã§ãããã¯ãªãŒãã¯ãããŒã ãäŒç€Ÿå
šäœã®æ¹åæ§ã«æ²¿ã£ãŠãããã確èªããäºæ¥ã«è²¢ç®ã§ããéçãåŒãããšã®éèŠæ§ãèªãããŠããŸããã ãã£ãªã¢ãåºããããã«ã¯äºæ¥ã®èŠç¹ãæã¡ãèŠåº§ãé«ãæã£ãŠèªåã®è²¬ä»»ç¯å²ãåºããããšãèå¿ã ãšçè§£ããŸããã ãªããBASEã§ã¯EMïŒPeople軞ïŒãšããã¯ãªãŒãïŒTech軞ïŒä»¥å€ã«EPMïŒEngineering Program ManagerãPJ軞ïŒãšãã圹è·ãã©ããŒãèšå®ãããŠãããæè¡ã人ãã®äºè
æäžã§ã¯ãªãããµãŒãã¹å¿åãšãããã£ãªã¢ãæ©ãããšãã§ããŸãã æ¥åçè§£ã®æ·±åãšå®è·µïœãã¡ã€ã³ã¢ããªã³ã°ã§åºå¹¹ã·ã¹ãã ãæãã MonotaRO ã® CTO-Office ã·ãã¢ã¢ãŒããã¯ã ã®å°Ÿé«ããã«ããçºè¡šã§ããBASE瀟ã§ã¯ã¢ããªã¹ããã¢ãžã¥ã©ãŒã¢ããªã¹ãžã®ãªã¢ãŒããã¯ãã£ãé²ãã§ããããã忥ã®ã»ãã·ã§ã³ã®äžã§ã¯èªåã«ãšã£ãŠäžçªåŠã³ã倧ããã£ãã»ãã·ã§ã³ã§ããã ãŸãè€éæ§ã«ã¯2ã€ããã®ã ãšèªãããŸãããç«¶åä»ç€Ÿãšå·®å¥åãå³ãããã«ã¯ãæ¬è³ªçãªè€éæ§ã«éäžçã«åãçµã¿ãå¶æçãªè€éæ§ãæé€ããããšãéèŠã§ãããšã®ããšã§ããäºæ¥èªäœã¯è€éãªãã®ãªã®ã§ããœãããŠã§ã¢ãæ¬è³ªçãªè€éæ§ãæã€ããšã¯å
ããŸãããããããå¶æçãªè€éæ§ãå¢ãããšã«ããããœãããŠã§ã¢ã®å€æŽã容æã§ã¯ãªããªããããããã¯æé€ããªããã°ãªããªããšãã話ã«å
±æããŠããæ¹ãå€ãèŠãããŸããããªããæ¬è³ªç/å¶æç 㯠essential/accidental ã®èš³èªãªã®ã§å¿
é ã®è€éæ§/ä»éçãªè€éæ§ãšããããšãã§ããŸãïŒåè: å¿
é ïŒä»éåå² (Essential/Accidental Split) ïŒã ãŸããäºæ¥ãæ¥åãçè§£ããããã«ããã¡ã€ã³å
šäœãšæ¥åé åãæµããšæ§é ã®ãããªã¯ã¹ã§åé¡ãã4çš®é¡ã®ææ³ãæ¡çšããŠãããšã®ããšãããããããã°ãã¯ãã£ãã³ã³ããã¹ãããããããã»ã¹ã¢ãã«ããã¡ã€ã³ã¢ãã«ãšããã¢ããªã³ã°ææ³ã§ãïŒè©³çްã¯ã¹ã©ã€ããã芧ãã ããïŒãã³ã³ããã¹ããããããã¡ã€ã³ã¢ãã«ã¯ç¥ã£ãŠãããå®è·µããŠããã®ã§ããããããäºæ¥ãçè§£ããæŽ»åã®ã©ãã«äœçœ®ã¥ããããã®ãããã£ãŠåŠã³ã«ãªããŸããã ãããã¯äžåºŠå®æœããã ãã§ã¯ãã¡ã§ãç¶ç¶çã«éå¬ããå¿
èŠããããšããããšãå°è±¡ã«æ®ããŸããã確ãã«äŒç€Ÿã¯äººã®å
¥ãæ¿ããããããŸãããäºæ¥ãå€åãç¶ããŸããå€§èŠæš¡ãªã€ãã³ãã¹ããŒãã³ã°ã¯ïŒæ¥ãããããšãããããã§ããããšã³ãžãã¢ã®ã¿ãªããè·çš®ãè¶
ããŠã¿ããªã§èªèãåãããããšã§ããã®åŸã®ã³ãã¥ãã±ãŒã·ã§ã³ããœãããŠã§ã¢èšèšãã³ãŒãã£ã³ã°ãã¹ã ãŒãºã«ãªãã®ã§ããã°æãã¹ãã³ã¹ãã ããããå¥å
šãªæè³ã ãšæããŸããã 2æ¥ç®ã®ã»ãã·ã§ã³ éçºã¹ããŒãã¯äžãã£ãŠããâŠå質ã¯ã©ãããïŒ ïœã¹ããŒããšå質ãäž¡ç«ãããããã®ãããã¯ãéçºã®é²ãæ¹ãšã¯ïœ Graatã®éŽæšãããSReEE ã®å®éããã10X/B-Testing ã®é¢šéããïŒãããã³ãªãŒããïŒã«ããããã«ãã£ã¹ã«ãã·ã§ã³ã§ãã ãœãããŠã§ã¢ã®å質ã¯ããã»ã¹å質ãå
éšå質ãå€éšå質ãå©çšæã®å質ã®4ã€ãããšåé ã§èªãããŸããã ã¹ããŒããšå質ãäž¡ç«ãããããã«ã¯ãé©åãªèšèšãšãã¹ãããã»ã¹ãå¿
èŠã§ãããšããããšãèªãããŠããŸãããã¢ãžã£ã€ã«éçºã§ã¯ãå€éšå質ã®ç¶æã ãã§ãªããå
éšå質ã®åäžãå©çšæã®å質åäžã«ç¹ãããããããã»ã¹ãæ§é ã®æ¹åãéèŠã§ãããšã®ããšã§ãã ãŸããã¢ãžã£ã€ã«éçºã§ã¯ãQAãšã³ãžãã¢ãæ©ã段éããéçºããŒã ã«åå ããŠã段éçãªãã¹ã掻åãè¡ãããšã®ã¡ãªããããããšã®ããšããããã¯ããªãŒããŒãšéçºè
ããã¹ãã®åãå
¥ãåºæºãäœãéã«ãã³ãŒãã仿§ã«ã€ããŠè©³ããç¥ã£ãŠããªãããšãéã«åŒ·ã¿ãšããŠããQAãšã³ãžãã¢ãšè©±ãããšã§ãå®è£
åã«èŠç¹ã®æãæŒãã«æ°ã¥ãããšãã§ãããçµæçã«ããã¹ãã®ã·ããã¬ãããå®çŸã§ããã®ã ãšããããšã§ããã ãªããããŒã ã«QAãšã³ãžãã¢ãããªãå Žåã¯ãã仿¥ã¯ããªãããã¹ãã®èŠç¹ãæã€äººããšããããã«é çªã«ããŒã«ãã¬ã€ãããŠã广ããããšç޹ä»ãããŠããŸããã èªåã仿å±ããŠããããŒã ã§ã¯QAãšã³ãžãã¢ã®æ¹ãããããžã§ã¯ãçµææç¹ããåå ããŠããŸãããããã倧äœãããããã®ãäœããšããå
±æã¯ããŠããã®ã§ããããã¹ãã®èгç¹ã¯ã¹ããªã³ãã¬ãã¥ãŒã§äœã£ãŠåããšããããèãå§ããŠããããšããæµãã«ãªã£ãŠããŸããã ãã®ããã仿§æ±ºãã®æ®µéã§ããŸãé Œããªãã£ããªããã£ãšå¯ã«é¢ãã£ãŠãããæ¹æ³ãããã®ã§ã¯ãšæããªããåå ããããããŸãã«åãå
¥ãåºæºãäžç·ã«äœã£ãŠãããšããç¹ã§é¢ãã£ãŠè²°ãã°ãããã ãšããçããæããŠããã£ãæ°æã¡ã«ãªã£ãã»ãã·ã§ã³ã§ããã ãœãããŠã§ã¢éçºããã»ã¹å
šäœã§ãAIãã¢ãããŒã·ã§ã³é«ãåãããã«å¿
èŠãªãã®ã¯ããã¬ã³ã¿ã€ã³ããŒã®ãã§ã³ãã§ã¯ãªããGitLabã«ããäžè²«ããã³ã³ãã¯ã¹ããã ã£ããšãã話 GitLab ã®äœã
æšããã«ããçºè¡šã§ãã AIããã«æŽ»çšããããã«ã¯ãäžè²«ããã³ã³ãã¯ã¹ããæäŸããããšãéèŠã§ãããGitLab ã§ã¯ãã«ãªã¢ãŒãã¯ãŒã¯ãå®çŸããããã«åŸ¹åºããããã¥ã¡ã³ããŒã·ã§ã³ãè¡ãããŠããããŸããGitLab ã䜿ããšã³ãŒãã®ç®¡çã ãã§ãªããã±ãã管çãCI/CDãªã©ãå¯èœãéçºã«ãŸã€ããå¹
åºãã³ã³ããã¹ãã GitLab äžã«éããŠãããšãGiaLab ã® AI ãçµéšè±å¯ã§ã暪æçãªã³ã³ããã¹ããç¥ã£ãŠããã¡ã³ããŒãšããŠåããŠããããšã®ããšã§ãã äŒå Žã§ã¯ãCIã倱æããæã®ãšã©ãŒã¡ãã»ãŒãžã GitLab ã® AI ãèªã¿åã£ãŠãã©ããªã³ãããã§ãšã©ãŒã«ãªã£ãããã©ããã£ããä¿®æ£ã§ããã®ããåçãããã¢ã宿œãããŠããŸãããåè·ã§ã¯2幎å GitLab ã䜿ã£ãŠããããšãããã®ã§ãããã³ã³ããã¹ããåæãããªãçµ±åãã©ãããã©ãŒã ã®åŒ·ã¿ãAIã«ãã£ãŠããã«åŒ·åãããŠããããšãæããŸããã åŒç€Ÿã§ã¯ GitHub Copilot ã¯ãã¡ãããNotion AI ãæŽ»çšããŠããŸããNotion AI ã¯ä»æ§ãCopilot ã¯ã³ãŒããšããããã«çšéãåããŠäœ¿ã£ãŠããã®ã§ãGitLab ã® AI ã®ããã«ãããã®ã³ã³ããã¹ããçµ±åã§ããAIããããšããéçºé床ãäžããã®ã ãããªãšæã£ãŠã»ãã·ã§ã³ãèŠãŠããŸããã ããšã¿Ãã¢ãÃAIïŒããŒããŠã§ã¢éçºã§ã®ã¢ã掻çšãšãAIæä»£ã®ãœãããŠã§ã¢ãããŒã éçºã ããšã¿èªåè»ã®ç«¹å
ãããåå€å±å€§åŠã®æ£®åŽãããGitHub Japanã®æéšããã®ãã£ã¹ã«ãã·ã§ã³ã§ããïŒåžäŒã¯YesNoButã®å·å£ãããšç¿æ³³ç€Ÿã®å°çããïŒã ããšã¿ã®ç«¹å
ããããäž»ã«é¡§å®¢ã®ããŒãºã®å€åã«å¯Ÿå¿ããããã«ãããŒããŠã§ã¢éçºã§ãã¢ãžã£ã€ã«éçºãå°å
¥ããããšãã¢ãã¯ãŒã¯ãå°å
¥ããããšã§å
šå¡åå ã®å
±åäœæ¥ãä¿é²ãããåŸ
ã¡æéããªããªã£ãŠäœæ¥ã®å¹çãåäžããããšãèªãããŸããããŸãã瀟å
ã«ãããé人ããã¡ã®ããã«AIãé人ã«è²ãŠãããã«ã¯ãæé»ç¥ã圢åŒç¥ã«å€æããéå»ã®ãã©ãã«ãªã©å¿
èŠãªããŒã¿ãã€ã³ãããããããšãéèŠã ãšè©±ãããŠããŸããã ä»ã«ãããã€ã話é¡ããããŸããããç¹ã«ã¢ãäœæ¥ãã¢ãããã°ã©ãã³ã°ã§ã®å¿ççå®å
šæ§ã®éèŠæ§ã¯å匷ã«ãªããŸãããè¬èããšã¯äžäººã§ã¯äœãã§ããªããšèªããããšã§ãããšå®çŸ©ãããŠããããæé·ã®ã¹ãããã humilityïŒè¬èã«ãªãïŒ â Respect & CollaborationïŒãªã¹ãã¯ããæã¡ååããïŒ â GrowthïŒæé·ããïŒ â FearlessïŒæããã«ææŠããïŒã«åè§£ãããŠãããåŠã¶ãšãããå€ãã£ãã§ããç¹ã«éçºããã»ã¹ãå¿ççå®å
šæ§ã®ãããªäººå£ã«èŸçããæŠå¿µãšæ¹ããŠåãåããæ·±æãããå®çŸ©ããå§¿å¢ã«ããšã¿ç€Ÿã®ã«ã«ãã£ãŒãå£éèŠãæ°ãããŸããã BASEã§ã¯ãã¢ãããã¢ããããããŒã ããšã«åãå
¥ãããåãå
¥ããªãã£ãããèªç±ã«éžæããããšãã§ããŸããçµéšäžããããžã§ã¯ãã®ç«ã¡äžãããã§ãŒãºãè€éãªç®æã®éçºã®æã«ã¹ãããã§ãã¢ãããåãå
¥ããŠããå°è±¡ã§ãããäºãã«ææçéãã§ããçµæãæã£ãéãã®ã³ãŒããåºãŠããããã«ãªãéçºã®çµç€ã§ã¯çºå±çè§£æ¶ãšãã圢ã§ãã¢ãããããªããªãã±ãŒã¹ãå€ã
ãããŸããéçºè
èªèº«ããã¢ããã®å©ç¹ãæèããŠãããæå€§ã«ãªãå Žé¢ã§èªçºçã«åãå
¥ããŠããŸãã ãããã« æ¬åå ã¬ããŒãã§ã¯èªåãåå ããã»ãã·ã§ã³ãããã€ãããã¯ã¢ããããŠããããããŸãšããŠèŠãŠã¿ãŸãããããããçŸå°ã§æããã€ãã³ãã«åå ããŠãããŒããå
±éããŠããè€æ°ã®ã»ãã·ã§ã³ãèããŠãããšãã®ããŒãã«å¯ŸããŠããã«æ·±ãã€ã³ãµã€ããåŸãããŸããããã®è©±ã«ã€ããŠã¯ãŸãã©ããã§æžãããšæããŸãã æ¹ããŸããŠãããµã2025ã«ç»å£ãããæ¹ãéå¶ã®æ¹ãåå ãããæ¹ãçæ§ããããšãããããŸãã&ãç²ãæ§ã§ããã BASE ã§ã¯ Web ã¢ããªã±ãŒã·ã§ã³ãšã³ãžãã¢ãåéããŠããŸããããèå³ãããã°æ¡çšããŒãžããå¿åããé¡ãããŸãã binc.jp
ã¯ããã« BASE BANK Department ã§éçºè²¬ä»»è
ãããŠããæè€ã§ãã 2025/2/22(å)ã«éå¬ããã PHPã«ã³ãã¡ã¬ã³ã¹åå€å± 2025ã«BASE BANKã®ãšã³ãžãã¢ã®02ãããç»å£ããŸãã å ããŠãBASE瀟ãšããŠãããã³ãºã¹ãã³ãµãŒãšããŠåè³ããŸãã phpcon.nagoya PHPã«ã³ãã¡ã¬ã³ã¹åå€å±2025 ã»ãã·ã§ã³ã®çŽ¹ä» fortee.jp 2025/2/7ã« PHPUnit 12 ããªãªãŒã¹ãããŸããïŒ ä»åã®ã¢ããããŒãã§ã¯ã25ç®æä»¥äžã®å€æŽãè¡ãããŸããã ããã€ãã®ã¡ãœããããªãã·ã§ã³ãAttributeãåé€ãããŠãããæ¢åã®ãã¹ãã³ãŒãã«åœ±é¿ãåºãå¯èœæ§ãé«ãã§ãã ãã®ãããªåé€äºå®ã®æ©èœã«ã€ããŠãã©ãå€æŽ / 察å¿ãããããããLTã§çºè¡šããŸãïŒ 02ããã®ã»ãã·ã§ã³ã¯ãã«ãŒã ã«ã«ããããã§17:00ããéå¬ãããLTã»ãã·ã§ã³ã®ãããããã¿ãŒã«ãªããŸãïŒ ãã²è¶³ãéãã§ãã ããïŒ 02ããã¯æèŠªäŒã«ãåå ããŸãã®ã§ãçºè¡šã§æ°ã«ãªã£ãç¹ãBASEã®ããšã§æ°ã«ãªã£ãŠããç¹ãªã©ãæ°è»œã«å£°ããããŠãã ããïŒ ã¹ãã³ãµãŒã«ã€ã㊠ä»åã®åè³ã¯ã BASE BANK, äžå°èŠæš¡ã®ãšã³ãžãã¢ã€ãã³ãã«ãäŒå Ž&飲é£ã¹ãã³ãµãŒããŸãïŒ ãã®èšäºãèŠãŠãéå¶ã®çããŸãããé£çµ¡ãããã ããå®çŸããããŸããã ããããšãããããŸãïŒ äŒå Žã¹ãã³ãµãŒã飲é£ã¹ãã³ãµãŒãåŒãç¶ã宿œããŠãããŸãã®ã§ããæ°è»œã«ãé£çµ¡ãã ããã ãããã« åå€å±ã§ã®PHPã«ã³ãã¡ã¬ã³ã¹ãåéå¬ãããããšãå¿ããå¿æŽããŠãããŸãïŒ 2025幎2æ12æ¥çŸåšãPHPã«ã³ãã¡ã¬ã³ã¹åå€å± 2025ã®åœæ¥ã®ãã±ããã¯ã以äžã®ãªã³ã¯ãããç³ã蟌ã¿ããã ããŸãã fortee.jp ããã§ã¯çæ§ãPHPã«ã³ãã¡ã¬ã³ã¹åå€å±ãšBASEãã©ãããããããé¡ãããããŸãïŒ
ã¯ããã« åããŸããŠãBASEã®ãšã³ãžãã¢ã®ç°äžå€§è²Žã§ããã客æ§ã®å®å¿å®å
šãªè³Œå
¥ãå®çŸããããããŒã¿åæãäžæ£æ±ºæžæ€ç¥ã¢ãã«ã®éçºã»éçšãé 匵ã£ãŠããŸãã ä»åã¯ãããŒã ã®ããè¯ãéçºç°å¢ãäœãããã«è¡ã£ãŠããæœçã®äºäŸãã玹ä»ããŸãã(æ©æ¢°åŠç¿ã«ç¹æã®åé¡ã§ã¯ãªãæœçãå€ãã§ãã) éçºãã㌠BASEã§ã¯ãã·ã§ããã®éèšãã賌å
¥ã«è³ããŸã§ãæ§ã
ãªã·ãŒã³ã§æ©æ¢°åŠç¿ã¢ãã«ãéçšãããŠããŸããç§ãæå±ããData StrategyãšããããŒã (以äžåŒããŒã )ã§ã¯ãã®ãããªæ©æ¢°åŠç¿ã¢ãã«ã®éçºéçšãããŠããŸãã æ©æ¢°åŠç¿ã¢ãã«ã«ããæšè«ã¯ãAPIã«ãããªã¢ã«ã¿ã€ã æšè«ãããã¯ã¯ãŒã«ãŒã«ãããããæšè«ã«ãã£ãŠæäŸããŸããåŒããŒã ã§ã¯APIã»ããããECSãLambdaã䜿ã£ãŠå®è£
ããŠããããšãå€ãã§ããå
žåçãªæšè«éšã®éçºã®æµãã¯ä»¥äžã®éãã§ããäŸãšããŠECSäžã§åããŠããAPIã«äœãããã®å€æŽãè¡ãã±ãŒã¹ã瀺ããŠããŸãã æ©æ¢°åŠç¿ããŒã ãæ¡çšããŠãããããã€ãã㌠APIã®ã³ãŒããšIaC(Terraform)ã®ã³ãŒãã¯å¥ã®ã¬ããžããªã§ç®¡çããŠãããAPIã³ãŒã倿ŽãšTerraformã³ãŒã倿Žã®2段éã«ãã£ãŠæ¬çªç°å¢ãžã®å€æŽãè¡ããŸãã éçºç°å¢æ¹åã®åãçµã¿ ãã®ãããªéçºãããŒã®ããšãéçºç°å¢ã®æ¹åã®ããã«ä»¥äžã®ãããªåãçµã¿ãè¡ã£ãŠããŸããã APIã³ãŒã倿Žã¬ãã¥ãŒã»Terraformã³ãŒã倿Žã¬ãã¥ãŒ (æéâ
ââã»å¹æâ
â
â) 以åã¯ã以äžã®ãããªèª²é¡ããããŸããïŒ branch protection ruleãäžéšã®ã¬ããžããªã«ã®ã¿å°å
¥ãããŠãã æå³ããªãmainãã©ã³ããžã®pushãçºçããå¯èœæ§ããã£ã(ãã©ã³ããåãã®ãå¿ããŠmainã«pushããããŠãã€ããšããçµéšã¯èª°ããããã¯ãâŠç¬) mainãã©ã³ãã®ã³ãŒãããã©ãŒããããã§ãã¯ããŠããããã¹ããééããŠããªãå Žåã§ãããŒãžãããŠããŸãå¯èœæ§ããããã³ãŒãå質ã®äœäžã«ç¹ãããªã¹ã¯ããã£ã ãã«ãªã¯ãšã¹ãäœææã«ãã¬ãã¥ã¯ãŒã®æå®ã鿬¡è¡ãå¿
èŠããã£ã ã¬ãã¥ãŒäŸé ŒæŒããã¬ãã¥ã¯ãŒã®éžå®ã«æéããããå Žåããã£ã ãããã®èª²é¡ã解決ããããã«ã以äžã®æœçã宿œããŸããã Branch Protection Ruleã®èšå® å
šãŠã®ã¬ããžããªã«å¯ŸããŠããRequire a pull request before mergingããšãRequire status checks to pass before mergingããæå¹å Code Ownerã®èšå® .github/CODEOWNERS ãã¡ã€ã«ãäœæããããŒã ãCode OwnerãšããŠæå® branch protection ruleã«ãRequire review from Code Ownersããèšå® ããã«ããã以äžã®å©ç¹ãåŸãããŸããã æå³ããªãmainãã©ã³ããžã®pushãé²ãããšãã§ããããã«ãªããã³ãŒã管çã®å®å
šæ§ãåäž mainãã©ã³ãã®ã³ãŒãããã©ãŒããããã§ãã¯ããŠããããã¹ããééããŠããããšãä¿èšŒã§ãããããã³ãŒãå質ãä¿ã€ããšãã§ãã ãã«ãªã¯ãšã¹ãã宿ãããšãèªåã§ããŒã ã«ã¬ãã¥ãŒäŸé Œãé£ã¶ä»çµã¿ãäœãããšã§ãã¬ãã¥ãŒäŸé ŒæŒããæéãåæž ECRãžã®ã€ã¡ãŒãžããã·ã¥èªåå (æéâ
â
âã»å¹æâ
â
â
) 以åã¯ãã³ãŒã倿Žã®approveåŸãéçºè
ã®ããŒã«ã«PCã§latestã¿ã°ãã€ããŠæåã§ãã«ããè¡ããããŒã«ã«PCããECRãžã€ã¡ãŒãžããã·ã¥ãè¡ã£ãŠããŸããã ãã®ããã»ã¹ã«ã¯ä»¥äžã®ãããªèª²é¡ããããŸããã ã€ã¡ãŒãžããã·ã¥ã®ãå¿ãã®å¯èœæ§ããã£ã ææ°ããŒãžã§ã³ã®ã³ãŒããECRã«ããã·ã¥ãããŠããããéçºè
ã«äŸåããŠãããããŒã å
ã§ææ°ã®ã€ã¡ãŒãžã䜿çšãããŠãããäžæç¢ºãªç¶æ³ããã£ã æ¬çªç°å¢ã§çšŒåããŠããã³ãŒãã®ããŒãžã§ã³ãçŽã¡ã«ææ¡ã§ããªãã£ã ããŒã«ã«PCã®ç°å¢å·®ç°ã«ãã£ãŠãããã·ã¥ããã³ãŒããåããªãå Žåããã£ã(ç¹ã«Intel補CPUããApple補CPUãžã®ç§»è¡æã«ãããŠåé¡ãé¡èã§ãã) ãã«ãããã»ã¹ãç
©éã«ãªããšããªã³ããŒãã£ã³ã°ã³ã¹ããé«ããªã£ã ãããã®èª²é¡ã解決ããããã«ã以äžã®æœçã宿œããŸããã Github Actionsã«ããèªåå mainãã©ã³ããžã®ããŒãžãããªã¬ãŒã«ãGithub Actionsäžã§ã€ã¡ãŒãžããã«ãããECRãžèªåã§ããã·ã¥ããä»çµã¿ãå°å
¥ Gitã³ãããããã·ã¥ãçšããã¿ã°ä»ã ECRãžããã·ã¥ããã€ã¡ãŒãžã«ã¯ latest ã¿ã°ã«å ããGitã®ã³ãããããã·ã¥ãã¿ã°ãšããŠä»äžããããšã§ãããŒãžã§ã³è¿œè·¡æ§ãåäž ããã«ããã以äžã®å©ç¹ãåŸãããŸããã ãã«ãããã»ã¹ãCIã«éçŽããããšã§ãå±äººçãªäœæ¥ãåæžããæéããã¹ã鲿¢ ææ°ããŒãžã§ã³ã®ã³ãŒããåžžã«ECRã«ããã·ã¥ãããŠããç¶æ
ãä¿èšŒ æ¬çªç°å¢ã§çšŒåããŠããã³ãŒãã®ããŒãžã§ã³ãå³åº§ã«ææ¡ã§ããããã«ãªãããã©ãã«æã®èª¿æ»å¹çãåäž ããŒã«ã«PCã®ç°å¢äŸåã«ããåé¡ãæé€ããå®å®ãããã«ãç°å¢ãæäŸ ç£èŠ ãµãŒãã¹ãå®å®çã«éçšããããã«ã¯ãµãŒãã¹ã®ç¶æ
ãç£èŠããããšãéèŠã§ããããããã¯ç£èŠã®æ¹åã«ã€ããŠåãçµãã ããšãã玹ä»ããŸãã ç°å¢ã»ãã°ã¬ãã«å¥ã®ã¢ã©ãŒã 管ç (æéâ
â
â
ã»å¹æâ
â
â
) 以åã¯ã以äžã®ãããªèª²é¡ããããŸããã 1ã€ã®Slackãã£ã³ãã«ã«éèŠåºŠé«~äœã®æ§ã
ãªã¢ã©ãŒã ãæ··åšããŠãã éèŠãªã¢ã©ãŒã ãèŠéããããå¯èœæ§ããããã€ã³ã·ãã³ã察å¿ãé
ãããªã¹ã¯ããã£ã äžèŠãªã¢ã©ãŒã ãå€ããå¿
èŠååãªã¢ã©ãŒã èšå®ãã§ããŠããªãã£ã ãããã®èª²é¡ã解決ããããã«ã以äžã®æœçã宿œããŸããã ã¢ã©ãŒã éç¥å
ã®æŽç å
šç€Ÿåãã®ã¢ã©ãŒããã£ã³ãã«éçšæé(ç·æ¥åºŠé«ã»äžã»äœã®3段éã§ç°å¢å¥ã«ãã£ã³ãã«ãäœæ)ã«åŸããã¢ã©ãŒã éç¥å
ãæŽç ã¢ã©ãŒã ã®ã¬ãã¥ãŒãšæŽç çŸç¶èšå®ãããŠããã¢ã©ãŒã ã1ã€ãã€ã¬ãã¥ãŒããå¿
èŠãªã¢ã©ãŒã ã¯æ°ãã«äœæããã¢ã©ãŒããã£ã³ãã«ãžéç¥ããããèšå® ç¹ã«ç·æ¥åºŠã®é«ãã¢ã©ãŒã ã«ã€ããŠã¯ãçºç ²åŸã«äœã®ã¢ã¯ã·ã§ã³ãåãããŠããªãã¢ã©ãŒã ã¯å»æ¢ ããã«ããã以äžã®å©ç¹ãåŸãããŸããã ç·æ¥åºŠã®é«ãéèŠãªã¢ã©ãŒã ãéçŽããèŠéãããªã¹ã¯ãäœäž ã¢ã©ãŒã ãç·æ¥åºŠå¥ã«é©åãªãã£ã³ãã«ã«éç¥ãããããšã§ãèªèè² è·ã®è»œæž äžèŠãªã¢ã©ãŒã ãåé€ããããšã§ãéçšè² è·ã®è»œæž ã¢ã©ãŒã ã¯æŸçœ®ããŠãããšåºæ¬çã«ã¯ã©ãã©ãå¢ãç¶ããŠãããã®ã§ãã宿çã«ã¬ãã¥ãŒããã¡ã³ããã³ã¹ãè¡ãããšãéèŠã§ãã ECSãµãŒããããã¬ãŒã«ãŒã®èšå® (æéâ
ââã»å¹æâ
ââ) ãã¡ãã¯åå¥ã®èšå®ã«ãªã£ãŠããŸããŸãããECSãå©çšããŠããæ¹ã®åèã«ãªãã°ãšæã玹ä»ããŸãã ECSãããŒãªã³ã°ã¢ããããŒãã§æŽæ°ããå Žåã«ããããã€ãäœããã®åå ã§å€±æããéã«ãECSã¯ãããã€ãç¹°ãè¿ããŸãããã®ããããããã€ãããšæã£ãŠãã倿Žãå®ã¯ãããã€åºæ¥ãŠããªãã£ãâŠãšããäºæ
ãçºçããå¯èœæ§ããããŸããã ECSãµãŒããããã¬ãŒã«ãŒ ã¯ãã®ãããªãããã€å€±æãèªåã§æ€ç¥ããäžå®åæ°ã®ãªãã©ã€åŸã«ãããã€ãäžæã»ããŒã«ããã¯ããæ©èœã§ããECSã¿ã¹ã¯å®çŸ©ã§ãã©ã°ãtrueã«ããã ãã§ãå°å
¥ã¯ãšãŠãç°¡åã§ãã åŒããŒã ã§ã¯ããµãŒããããã¬ãŒã«ãŒãå°å
¥ããäžã§ãEventBridgeã§ãµãŒããããã¬ãŒã«ãŒçºåã€ãã³ããæŸããSlackã«éç¥ãè¡ã£ãŠããŸããããã«ãããéçºè
ã¯ãããã€åŸAWSã³ã³ãœãŒã«ã«åŒµãä»ããŠããªããŠãããããã€å€±æã«æ°ãã€ãããšãã§ããããã«ãªããŸããã (åèãŸã§ã«ãEventBridgeã®ã€ãã³ããã¿ãŒã³ã¯ä»¥äžã®ããã«èšå®ããŠããŸã) { " source ": [ " aws.ecs " ] , " detail-type ": [ " ECS Deployment State Change " ] , " detail ": { " eventName ": [ " SERVICE_DEPLOYMENT_FAILED " ] } } ãããã« BASEã®æ©æ¢°åŠç¿ããŒã ã§ããè¯ãéçºç°å¢ã®å®çŸã®ããã«åãçµãã§ããããšã玹ä»ããŸãããããå°ãæ©æ¢°åŠç¿ã£ãœãäžèº«ã«ã§ããã°è¯ãã£ãã®ã§ãããããããMLOpsçãªå
容ã¯ãŸãå¥ã®æ©äŒã«ã玹ä»ã§ããã°ãšæããŸãã ãã®ãããªæœçã¯å°å³ãªãã®ãå€ãã§ããã誰ããäžåºŠèšå®ããã°ããŒã å
šå¡ãæ©æµãåããããšãã§ããã®ã§ãã¬ãã¬ããžå¹æã倧ããã§ãããŸããæœåšçãªã€ã³ã·ãã³ããæžãããããæéçã»ééçã³ã¹ãã«ããã«ãç¹ãã£ãããããã®ãå€ãã§ããæéãã§ããæã«ãã²è«žã
ã®èšå®ãéçºãããŒãèŠè¿ããŠã¿ãŠãã ããã BASEã§ã¯ã¡ã³ããŒãæ¡çšäžã§ãïŒãèå³ã®ããæ¹ã¯æ¯é以äžãã芧ãã ããã binc.jp
ã¯ããã« BASE Dept. Product Devã«ãŠããã¯ãšã³ããšã³ãžãã¢ãããŠãã ãªãªã ã§ãã 2024幎æ«ãåŒç€Ÿã®ãœãããŠã§ã¢ãšã³ãžãã¢ïŒä»¥äžãSWEïŒã§SREã«èå³ãæã€ã¡ã³ããŒãåãããSREãã¯ãããããã顿ã«ãã茪èªäŒã宿œããŸãããæ¬èšäºã§ã¯ãåéšã»åç« ã®èŠç¹ãæŽçããå®è·µã«åœ¹ç«ã€ç¥èŠãå
±æããŸãã â»åŒçšå
: O'Reilly Japan SREãã¯ãããã 第1éš SREå
¥é ãã®éšã§ã¯ãSREã®å®çŸ©ãSREã®æåã®ãããªãSREã®æŠè«ã«è§ŠããŠããŸãã SREã®å®çŸ© æžç±ã§ã¯ãSREã以äžã§å®çŸ©ããŠããŸãã ãµã€ããªã©ã€ã¢ããªãã£ãšã³ãžãã¢ãªã³ã°ã¯ãçµç¹ãã·ã¹ãã ããµãŒãã¹ã補åã«ãã㊠é©åãªã¬ãã«ã®ä¿¡é Œæ§ãæç¶çã«éæã§ããããæ¯æŽããããšãç®çãšããå·¥åŠåéã§ããã å·¥åŠã®åéã®ïŒã€ãšèªèãããŠããŸãããæ
å ±ç³»ã®åŠéšåºèº«ã®åŒç€Ÿç€Ÿå¡ã®äžã§ãå·¥åŠåéãšããŠã®SREãšããèšèãè³ã«ããããšãããæ¹ã¯ããŸããã§ãããããããããšãå°æ¥çã«å€§åŠã®è¬çŸ©ã§ãSREãåãäžãããããããããŸããã ãŸããSREãçè§£ããã®ã«æé©ãªïŒæã®ã¹ã©ã€ãã玹ä»ãããŠããŸãã â»åŒçšå
: Keys to SRE ãã®ã¹ã©ã€ãã¯SREã®å§ç¥ãšãèšãããŠããBen Treynor Slossãã2014幎5æ31æ¥ã®SREconã®åºèª¿è¬æŒã§ç޹ä»ãããã¹ã©ã€ãã§ãã ç§ãç¹ã«çåã«æã£ãã®ã¯ãäžãã6ã€ç®ã® Excess Ops work overflows to DEV team ã§ããåèš³ãããšããäœèšãªéçšäœæ¥ã¯éçºããŒã ã«ãªãŒããŒãããŒãããããšããæå³ã«ãªãããªãéçšäœæ¥ãéçºããŒã ã«ãªãŒããŒãããŒãããã®ã茪èªäŒã§è©±ãåãã以äžã®å
容ã§è§£éããŸããã äœèšãªéçšäœæ¥ãããããšãæå³çã«éçºããŒã ã«æ°ã¥ãããããã«ãã SREã®éçšäœæ¥ã¯éå°ã«ãªããã¡ã§ãããéèŠãªæ¥åã«æ³šåããããã«ãéçºããŒã ã«äžéšãå§è²ãã ã€ã³ã·ãã³ããèµ·ãããšãã«ãSREã®äžã§éããªãããã«ãã DevOpsãšSREã®é¢ä¿æ§ DevOps ã³ãŒããæ¬çªç°å¢ã«ãªãªãŒã¹ããããã«äœãå¿
èŠãèããŸãã SRE æ¬çªç°å¢ãèµ·ç¹ã«ãä¿¡é Œã§ããéçšãå®çŸããã«ã¯äœããã¹ããèããŸãã â»åŒçšå
: SREã®æ¢æ± SREã®å¿æ§ã æ¬æžã§ç¹ã«éèŠãšãããSREã®å¿æ§ããšããŠã以äžã®4ç¹ãæããããŸãã 1. ãã£ãŒãããã¯ã«ãŒããéãã ä¿¡é Œæ§åäžã®äžå¿ãšãªãã®ã¯ãç¶ç¶çãªæ¹åãå¯èœã«ãããã£ãŒãããã¯ã«ãŒãã®æ§ç¯ã§ãã 2. å
±åäœæ¥ãéèŠãã SREã¯ãããŸããŸãªåéã®ååãšååããªããã·ã¹ãã ã®ä¿¡é Œæ§ãåäžãããŸãããŸãã顧客ãšãä¿¡é Œæ§ã«é¢ããå
±åäœæ¥ãè¡ãå§¿å¢ãéèŠã§ãã 3. ãªãŒããŒã·ãããæã€ éçšãããµãŒãã¹ã«å¯ŸããŠè²¬ä»»ãæã¡ãäž»äœçã«åãçµã¿ãŸãã 4. 倱æããåŠã¶ ã·ã¹ãã ã®ãšã©ãŒãåŠç¿æ©äŒãšæããããããæ¹åã®ã¢ã€ãã¢ãåŸãŸãã SREã®æåãéžæãã æ¬æžã§ç޹ä»ãããŠããSREæåãéžæããããã®åãçµã¿ã®äžã§ãçµç¹ã«åãå
¥ãããããšæãããã¢ã€ãã¢ã以äžã«ãŸãšããŸããã 1. ãã€ã«åæžãç¥ãæåãäœã ãã€ã«ïŒä»¥äžã®ç¹åŸŽãæã€ç¹°ãè¿ãäœæ¥ïŒãåæžããåãçµã¿ãçµç¹å
šäœã§ç¥ãæåãäœããŸãã æäœæ¥ã§ãã ç¹°ãè¿ããã èªååå¯èœ é·æç䟡å€ãæããªã ãµãŒãã¹ã®æé·ã«æ¯äŸããŠå¢ããïŒO(n)ïŒ 2. ããã¹ãã¢ãŒãã äŒããããã¶ã€ã³ããã¥ã¡ã³ãäŒãã®éå¬ ãã¹ãã¢ãŒãã ãšã¯ãã€ã³ã·ãã³ãçºçåŸã®äºåŸæ€èšŒããã»ã¹ã§ããã€ã³ã·ãã³ãã¬ããŒããããŒã å
šäœã§å
±æããæåããæ¯ãè¿ãã®å Žã宿çã«èšããããšã§ãçµç¹çãªåŠã³ãæ·±ããããå¯èœæ§ããããŸãã 3. ããŒã éã®ããŒããŒã·ã§ã³ SWEãäžå®æéSREããŒã ã«åå ããã亀æçåŠãã宿œããããšã§ãSREæåãçµç¹å
šäœã«åºãããŸããåŒç€Ÿã§ã2025幎ãããã®åãçµã¿ãéå§ããäºå®ã§ãã SREãæå±ãã SREãæå±ã§ããåã¯ãçµç¹å
å€ã§ãã®ååšæçŸ©ã説æããå Žé¢ã§éèŠã§ããäŸãã°ãçµç¹ã®ã¹ããŒã¯ãã«ããŒã«SREã®ååšæçŸ©ãäŒããSREãšããçµç¹ãååšãããå Žé¢ã§ãå¿
èŠã§ãããæ¡çšæŽ»åãè»¢è·æã«ã¯ãSREã®åœ¹å²ãæåãåè£è
ãæ¡çšåŽãšå
±æããã®ã£ãããèªèããããšãæ±ããããŸãã ãŸããä»è
ã®çµéšãã¹ããŒãªãŒãåŠã¶ããšãéèŠã§ããæ¬æžã§ã¯ãã€ãã³ããå匷äŒãžã®åå ãåŒ·ãæšå¥šãããŠããŸããç§ããã£ããã2025幎1æ26æ¥ã«éå¬ããã SRE Kaigi 2025 ãžã®åå ç³ã蟌ã¿ãè¡ããŸããã 第2éš å人ãSREãã¯ãããã«ã¯ ãã®éšã§ã¯ãå人ãSREãå§ããããã«å¿
èŠãªã¹ãã«ãèãæ¹ã«ã€ããŠèª¬æããŸãã SREã«ãªãããã®æºå SREã«ãªãããã«å¿
èŠãªã¹ãã«ãšããŠãæ¬æžã§ã¯ä»¥äžãæããŠããŸãã 1. ã³ãŒãã£ã³ã°ã¹ãã« ã³ãŒãã£ã³ã°ã¹ãã«ã¯SREã«ãšã£ãŠäžå¯æ¬ ã§ããã·ã¹ãã ã®æ§é ãæ·±ãçè§£ããæœåšçãªæ
éãäºæž¬ã»é²æ¢ããèœåãåããã«ã¯ããã®ã¹ãã«ãæ±ããããŸãã 2. èšç®æ©ç§åŠã®åŠäœ èšç®æ©ç§åŠã®åŠäœã¯å¿
é ã§ã¯ãããŸããããã³ãŒãã£ã³ã°çµéšãéããŠåçã®ç¥èãç¿åŸããå¿
èŠããããŸãã 3. ã¢ããªã¹ã忣ã·ã¹ãã ãžã®çè§£ OSããããã¯ãŒã¯ã®ä»çµã¿ãçè§£ããããšã¯ãå€§èŠæš¡ã§ã¹ã±ãŒã©ãã«ãªã·ã¹ãã ã®æ§ç¯ã«äžå¯æ¬ ã§ãããŸããè¿å¹Žã§ã¯ãã€ã¯ããµãŒãã¹ããã«ããªãŒãžã§ã³å¯Ÿå¿ãªã©ã®åæ£ã·ã¹ãã ãæ±ãã±ãŒã¹ãå¢ããŠããŸãã 4. çµ±èšãšããŒã¿ã®å¯èŠå SLIïŒService Level IndicatorïŒãSLOïŒService Level ObjectiveïŒã§äœ¿çšãããããŒã»ã³ã¿ã€ã«ã®çè§£ã«ã¯çµ±èšåŠã®ç¥èãå¿
èŠã§ãã茪èªäŒã§ã¯ ãã³ã¬ã§ãããçµ±èšåŠ ïŒOhmshaïŒ ãšããæžç±ãæšèŠãããŠããŸããã ãã®ä»ãã¹ããŒãªãŒããªã³ã°ãNALSDïŒéæœè±¡çãªå€§èŠæš¡ã·ã¹ãã èšèšïŒãã¬ãžãªãšã³ã¹å·¥åŠãæ§èœå·¥åŠãAI/MLã®ç¥èãéèŠãšãããŠããŸãã è©æžãã ãã®å€æŽã¯NG æ¬æžã§ã¯ãåŠçãSWEãSREã«è»¢åããæ¹æ³ãè¿°ã¹ãããŠããŸãããã·ã¹ãã 管çè
ãDevOpsã¡ã³ããŒå
šå¡ã®è©æžããåã«ãSREãã«å€æŽããããšãžã®èŠåãå«ãŸããŠããŸãã æåçã»æŠç¥çã»çµç¹çãªå€é©ã䌎ããªãè©æžãã®å€æŽã§ã¯ãSREã®æ¬è³ªçãªã¡ãªããã享åã§ããŸãã ã³ã©ãã¬ãŒã·ã§ã³ã¢ãŒã SREã¯ããããªãå
±åäœæ¥ãã«ãã£ãŠæãç«ã€ã𿬿žã§ã¯åŒ·èª¿ãããŠããŸãã å
·äœäŸãšããŠãSLI/SLOã®çå®ã宿œãæããããŸãããŸããç£èŠæ¥åãéããŠé¡§å®¢ã®å£°ã«è³ãåŸãã顧客ãšã®å
±åäœæ¥ãå®çŸããŠããŸãã åŒç€Ÿã§ã¯éé±ã§ãå®ç¹èŠ³æž¬äŒããéå¬ããBASEã®ã³ã¢æ©èœãæŽãåºããSLI/SLOã®èŠçŽããè¡ã£ãŠããŸãã ãã€ã«ãšã®é¢ä¿ãç¯ã SREã¯ããSREã®æåãéžæãããã§è§Šãããã€ã«ã«ç¶ç¶çã«åãåãå¿
èŠããããŸããæ¬æžã§ã¯ããã®çç±ãšããŠä»¥äžã®3ã€ãæããŠããŸãã 1. çŸåŠ ãã€ã«ã¯éå¹çã§çŸãããæ¬ ããæé©åã®é害ãšãªããŸãã 2. ãé é«åºŠãªãšã³ãžãã¢ããã€ã«ã«è²»ããã®ã§ã¯ãªãã䟡å€ãçãä»äºã«éäžãããããšã§ãçµç¹ã®ã³ã¹ãåæžã«ç¹ãããŸãã 3. æéã®äœ¿ãæ¹/ä»äºã®æºè¶³åºŠ ãšã³ãžãã¢ã¯ãã€ã«ã§ã¯ãªãéçºæ¥åã«æéã䜿ããããšèããŸããéå°ãªãã€ã«ã¯çç£æ§ãšæºè¶³åºŠãäœäžãããŸãã åŒç€Ÿã§ã¯æ¯é±ãæå¿ã¡ã³ããŒã«ããããªã¢ãŒãžäŒãéå¬ããŠããŸãããã®äŒã§ã¯ãSentryãNewRelicã®ã¢ã©ãŒãã確èªãã解決ãã¹ãIssueãã¿ã¹ã¯ãšããŠèµ·ç¥šããŠããŸãã ãŸããOKRãæŽ»çšããç®æšãéæããããã®ãã€ã«è§£æ¶ã«åãçµãã§ããŸãã â» åè: OKRãèšå®ãã( https://rework.withgoogle.com/jp/guides/set-goals-with-okrs ) 倱æããåŠã¶ æ¬æžã§ã¯ã倱æããåŠã¶æ¹æ³ãšããŠãã€ã³ã·ãã³ãåŸã®ã¬ãã¥ãŒãéèŠã§ãããšãããŠããŸãã ã€ã³ã·ãã³ãåŸã®ã¬ãã¥ãŒã§ã¯ãåãªãææžãå ±åæžãã¢ã¯ã·ã§ã³ãªã¹ãã®äœæã«çãŸããã以äžã®ç¹ãéèŠããããšãæ±ããããŸãã æç³»åã§ã®è©³çްãªèšé² ã€ã³ã·ãã³ãã®ååŸã§äœãèµ·ããã®ããæç¢ºã«èšèŒããŸãã ããã»ã¹ã®èšè¿° ã©ã®ãããªè³æãåç
§ããã®ãã解決ãŸã§ã®ããã»ã¹ã詳现ã«èª¬æããåãªãäºè±¡ã®æ¯ãè¿ãã«ãšã©ãŸãããå°æ¥ã®äºé²çãä¿¡é Œæ§åäžã®ããã®å
·äœçãªç¥èŠãåŸãããŸãã ãŸããã€ã³ã·ãã³ãåŸã®ã¬ãã¥ãŒãè¡ãéã«ã¯ã以äžã®è¡åãé¿ããããšãéèŠã§ãã ç¯äººæ¢ã åé¡ã®åå ãç¹å®ã®äººç©ã«åž°çµãããããšã¯ãçç£çãªåŠã³ãæ¹åã«ã¯ã€ãªãããŸããã ãã¥ãŒãã³ãšã©ãŒãžã®è²¬ä»»è»¢å« 人éã®ãã¹ã«çŠç¹ãåœãŠãã ãã§ã¯ãã·ã¹ãã å
šäœã®ä¿¡é Œæ§åäžã劚ããŸãã æåç¹ã®ç¡èŠ åé¡è§£æ±ºã«ãããŠããŸãæ©èœããç¹ãåŠã³ã®äžéšã§ãããèŠèœãšããªãããšãéèŠã§ãã ã€ã³ã·ãã³ãåŸã®ã¬ãã¥ãŒã¯ã倱æããã®åŠã³ãã·ã¹ãã ã®æ¹åãããã»ã¹ã®æŽç·Žã«çµã³ã€ããããã®éèŠãªææ®µã§ãããããé©åã«æŽ»çšããããšã§ãçµç¹å
šäœã®ä¿¡é Œæ§ãåäžãããããšãã§ããŸãã ãªããªãåæã¯ã¢ã³ããã¿ãŒã³ ããªããªãåæãã¯ãããšã¿ã°ã«ãŒãã®åµå§è
ã§ããè±ç°äœåãèæ¡ããææ³ã§ãããã®ææ³ã§ã¯ãäºè±¡ã«å¯ŸããŠããªãããç¹°ãè¿ãåãç¶ããããšã§ãæ ¹æ¬åå ãçªãè©°ããŠãããŸããäžè¬çã«ã5åããªãããç¹°ãè¿ããšæ ¹æ¬çãªåå ã«å°éã§ãããšãããŠããŸãã æ¬æžã§ã¯ãããªããªãåæãã¯ç¹å®ã®äºè±¡ãæ·±æãããŠåå ãçºèŠããã®ã«ã¯é©ããŠãããã®ã®ãã€ã³ã·ãã³ããçè§£ããããããåŠã³ãåŸãããã«ã¯äžååã§ãããšææãããŠããŸãããã®çç±ã¯ä»¥äžã®éãã§ãã éèŠãªæ
å ±ãèŠéãå¯èœæ§ãé«ã ã·ã¹ãã å
šäœã®çè§£ãé»å®³ããéšåçãªèŠå ã«åããã¡ã«ãªã ãã®ãããããªããªãåæãã¯ã€ã³ã·ãã³ãåæã«ãããŠã¯ã¢ã³ããã¿ãŒã³ãšãããŠããŸãã ããªãããç¹°ãè¿ãåã«ããŸãã¯ãäœãèµ·ãã£ãã®ããã詳现ã«ç¢ºèªããå
šäœåãææ¡ããããšãéèŠã§ããã€ã³ã·ãã³ãã®ããã»ã¹ã圱é¿ãå
šãŠæŽãåºãããšã§ãå
æ¬çãªåŠã³ãšæ¹åã«ã€ãªãããŸãã 第3éš çµç¹ãSREãã¯ãããã«ã¯ ãã®éšã§ã¯ãçµç¹ãSREã®å°å
¥ã«æåããããã®èŠå ãæ¢ã£ãŠããŸãã Dickersonã®ä¿¡é Œæ§ã®éå±€æ§é æ¢åã®çµç¹ãSREãéå§ããããã®ããããããããŒãããããšããŠãDickersonã®ä¿¡é Œæ§ã®éå±€æ§é ããããŸãã ããã¯ãå
Google瀟å¡ã®Mikey DickersonããããºããŒã®æ¬²æ±é段説ãåŒçšãããã®ã§ãã â»åŒçšå
: O'Reilly Japan SREãã¯ãããã p.198 ããºããŒã®éå±€æ§é ãšåæ§ã«ãéå±€ã®äžçªäžããã¯ãããŠãäžã®éå±€ã匷åºã«ãªã£ãæç¹ã§åããŠäžã®éå±€ã«é²ã¿ãŸãã 1段ç®ã®ç£èŠ/ãªãã¶ãŒãããªãã£ã«é¢ããŠãç£èŠããŒã«ããªãã¶ãŒãããªãã£ãã©ãããã©ãŒã ãå°å
¥ããŠããçµç¹ãã»ãšãã©ã ãšã¯æããŸãããæå€ãšSLI/SLOãŸã§ãã£ããå®è·µããŠããçµç¹ã¯å°ãªããããããŸããã SREãçµç¹ã«çµã¿èŸŒã æ¬æžã§ã¯ãSREã0ããã¹ã±ãŒã«ã¢ããããïŒæ¬æžã§ã¯SRE0ãšåŒã¶ïŒããã«å¿
èŠãªãã®ã¯ã建ç¯å·¥åŠãåæšå·¥åŠãªã©è³æ Œãæã£ã人ãããªããšã¯ãããããªããã®ã§ã¯ãªãããµãŒãã¹ãã·ã¹ãã ã«å¯Ÿãã奜å¥å¿ãšãSLI/SLOãå§ããããã®æ©äŒã§ãããšè¿°ã¹ãŠããŸãã ãŸããSREãæ¢ã«çµç¹ã«çµ±åãããŠããã¢ãã«ãšããŠã以äžã®3çš®é¡ãå®çŸ©ããŠããŸãã 1. äžå€®éæš©å/ããŒãããŒåã¢ãã« Googleãæåã«å°å
¥ãæ®åããããã®ã§ãç¬ç«ããçµç¹ãšããŠãæ¡çšããã»ã¹ãã人å¡ããžã§ãã©ããŒãæã¡ãŸããäŸãã°Googleã§ã¯ãGoogleãããã®SREããŒã ãGmailã®SREããŒã ãåºåã®SREããŒã ãååšããŸãã 2. 忣å/åã蟌ã¿åã¢ãã« Metaã§å°å
¥ãããŠããã¢ãã«ã§ãSREãéçºããŒã ã«åå ããŸãã詳现ã¯ã SREã®æ¢æ± ã®ç¬¬13ç« ã«èšèŒãããŠããŸãã 3. ãã€ããªããåã¢ãã« äžèš2ã€ã®ã¢ãã«ãæ··ããŠå°å
¥ãããã®ã§ãäžå€®éæš©çãªçµç¹ã§åãSREãšãåã
ã®äºæ¥éšéã§åå¥ã«éçšãããŠããSREãããŸãã åŒç€ŸãæäŸãããµãŒãã¹ã«ã¯ãECã¹ãã¢ããã³ããæäŸãããBASEãã®ã»ããIDæ±ºæžæ©èœãšã·ã§ããã³ã°ã¢ããªæ©èœãæäŸãããPayIDããéèãµãŒãã¹ãæäŸãããBASE BANKããªã©ããããŸããïŒãã®ä»ã®ãµãŒãã¹ã«ã€ããŠã¯ããã§ã¯å²æããŸãïŒ ããããäžèšã®3çš®é¡ã®ã¢ãã«ã«åœãŠã¯ãããšããBASEãã¯äžå€®éæš©å/ããŒãããŒåã¢ãã«ã«ããPayIDããšãBASE BANKãã¯åæ£å/åã蟌ã¿åã¢ãã«ã«è©²åœãããšèããããŸãã ãã®ããšãããåŒç€Ÿå
šäœãšããŠã¯ãã€ããªããåã¢ãã«ãæ¡çšããŠãããšèšããã§ãããã SREçµç¹ã®é²å段é SREããŒã ã®é²åã«é¢ããæŠå¿µçãªæ çµã¿ãšããŠãæ¬æžã§ã¯ãSREcon Asia 2018ã§å
LinkedInã®Benjamin Purgasonæ°ãè¡ã£ãè¬æŒå
容ãåŒçšããŠããŸãããã®é²å段éã¯5ã€ã®ã¹ããŒãžã«åãããŠããŸãããå¿
ãããé åºéãã«é²ãå¿
èŠã¯ãªããã¹ããŒãžãé£ã°ããŠé²åããããšãå¯èœã§ãã æ®µé1: æ¶é²å£« å€ãã®SREããŒã ããã®ã¹ããŒãžããã¹ã¿ãŒãããŸããäž»ãªåœ¹å²ã¯é害察å¿ãªã©ã®ãç«æ¶ããã§ãããéèŠãªã®ã¯ç«çœãšç«çœã®éã«äœãè¡ããã§ããäŸãã°ããã®æéãæŽ»çšããŠãDickersonã®ä¿¡é Œæ§ã®éå±€æ§é ã§ããæåã®2ã€ã®éå±€ïŒç£èŠ/ãªãã¶ãŒãããªãã£ãšã€ã³ã·ãã³ãã¬ã¹ãã³ã¹ïŒã®æ§ç¯ãããã€ã«ïŒç¹°ãè¿ãäœæ¥ïŒãæ²æ»
ããããã®èªååïŒæ¬æžã§ã¯ãèªåæ¶ç«è£
眮ããšè¡šçŸïŒã«åãçµãããšãæšå¥šãããŠããŸãã æ®µé2: ã²ãŒãããŒããŒïŒéçªïŒ ãã®æ®µéã§ã¯ãSREããã²ãŒãããŒããŒãã®åœ¹å²ãæãããã·ã¹ãã ã«é¢ãããã¹ãŠã®æ±ºå®ãSREãééããªããã°ãªããªãç¶æ
ã«ãªããŸããããããã²ãŒãããŒããŒçãªæ¯ãèãã¯ãä»ã®éçºè
ãçµç¹å
ã®ã¡ã³ããŒã«äžå¿«æãäžããå¯èœæ§ããããŸããæ¬æžã§ã¯å
·äœäŸãšããŠã空枯ã®çšé¢è·å¡ãã€ã¡ãŒãžãã説æããªãããŠããŸãã æ®µé3: æå±è
ãã®æ®µéã§ã¯ãSREãšä»ã®ã¡ã³ããŒã®é¢ä¿ãããååçã«ãªããŸããSREã¯ãèšèšãã¢ãŒããã¯ãã£ã®è°è«ãªã©ããœãããŠã§ã¢ã©ã€ããµã€ã¯ã«ã®åææ®µéããç©æ¥µçã«é¢äžããŸããããã«ãããå
šå¡ãååããŠæ¬çªç°å¢ãæ§ç¯ããä¿¡é Œæ§ãé«ããããšãç®æããŸãã æ®µé4: ããŒãã㌠段é3ã®çºå±åœ¢ã§ãããSREãšSWEãããŒãããŒãšããŠå¯Ÿçã«ååããç¶æ
ã§ããå
·äœçã«ã¯ãèšç»ãããŒããããã®äœæãå
±åã§è¡ããããŒã éã®é£æºããã匷åãããŸãã æ®µé5: ãšã³ãžã㢠ãã®æçµæ®µéã§ã¯ãSREãšãã®ä»ã®ãšã³ãžãã¢ã®åœ¹å²ã®å¢çç·ãææ§ã«ãªããŸããå
šå¡ãã·ã¹ãã ã®ã©ã€ããµã€ã¯ã«å
šäœã«é¢äžããä¿¡é Œæ§åäžãç®çãšããæŽ»åã«åãçµã¿ãŸããSREã®æŽ»åãããŒã å
šäœã«èªç¶ã«çµã¿èŸŒãŸããä¿¡é Œæ§ãçµç¹å
šäœã®æåãšããŠæ ¹ä»ããç¶æ
ã§ãã ä»åŸã®å±æ æ¬èšäºã§åãäžãããSREãã¯ãããããã®å
容ã茪èªäŒã§ã®è°è«ãéããŠãSREæåã®éžæãå®è·µãžã®çè§£ãæ·±ãŸããŸãããä»åŸãåŒç€Ÿã§ã¯ä»¥äžã®ãããªåãçµã¿ãå¯èœã§ã¯ãªãããšã茪èªäŒã§è°è«ããŸããã 1.ãã€ã«åæžãç¥ãæåã®éžæ ããªã¢ãŒãžäŒãOKRãæŽ»çšãããã€ã«åæžæŽ»åãç¶ç¶ããåæžãããã€ã«ã®ææã瀟å
ã§å
±æããã¢ãããŒã·ã§ã³ãé«ããæåãéžæããŸãã 2. ç¥èå
±æã®åŒ·å å€éšã€ãã³ããã«ã³ãã¡ã¬ã³ã¹ãžã®åå ãç»å£ãè¡ããèªåãªãã®SREã®å®çŸ©ãèªããããã«ããŸãã 3. 倱æããã®åŠã³ãæå€§å ãã¹ãã¢ãŒãã äŒã宿çã«éå¬ããã€ã³ã·ãã³ãåŸã®åŠã³ãçµç¹å
šäœã«å
±æããŸã ãããã« åŒç€Ÿã§ã¯ãSREã®æ¹ã ãã§ã¯ãªãããµã€ããªã©ã€ã¢ããªãã£ãšã³ãžãã¢ãªã³ã°ã«èå³ãæãããŠããSWEã®æ¹ãç©æ¥µæ¡çšããŠããŸããèå³ãæã£ãŠããã ãããããã²äžèšãããå¿åãã ããïŒ binc.jp
ã¯ããã« ããã«ã¡ã¯ïŒBASEæ ªåŒäŒç€Ÿã§Pay IDããŒã ãããã¯ããããŒãžã£ãŒãããŠããbunã§ãã Pay IDã¯ãBASEã§äœãããã·ã§ããã§ã®ãè²·ããã®ã楜ããããã®ã·ã§ããã³ã°ãµãŒãã¹ãšã¯ã€ãã¯ã§ã¹ã ãŒãºãªæ±ºæžæ©èœãæäŸããŠããŸãã å»å¹Ž1å¹Žãæ¯ãè¿ããšãå€ãã®å€±æãæãããã«ãããªãããšãéãªãããã®ãã³ã«å
çãããæéãæã€ããšãå€ãã£ãã§ãããã®éçšã§åŒ·ã倧äºã ãšæããããšã¯ã ãããã¯ããããžã¡ã³ãã§çªãè©°ããã¹ãã¯ã誰ããªã幞ãã«ãªãã®ãããèŠå€±ããªãããš ã§ãã ãããŸã§æ°å€ãšè«çãæŠåšã«ãã£ãªã¢ãç©ãã§ããŸãããããããã¯ãã¥ããã«ãããŠã¯ããããæåªå
äºé
ã§ã¯ãªãã·ãŒã³ãå€ãããšãçæããŸããããã®èšäºã§ã¯ãæ°å€ãè«çãããããã¯ãã¥ããã®è»žãšããããšã®å眪ãå確èªããã©ã®ããã«æŽ»ããã®ããèªåãªãã«æŽçããŠã¿ãããšæããŸãã æ°å€ å®éåæãšã¯AãBã®ã©ã¡ããåªäœããæç¢ºã«ç€ºããããŒã å
šäœã®æææ±ºå®ã«çŽåŸã»æ£ããã»æ©ããæãããããšãã§ããŸããèšå€§ãªæ
å ±ã®äžãããèŠãã¹ããã€ã³ãããå®çŸ©ããããã«ãã©ãŒã«ã¹ãåœãŠãããšã§é¢ä¿è
å
šå¡ãå€æåºæºãå
±æã§ããããšãæ°å€ã®åœ¹å²ãªã®ã§ã¯ãªãããšèããŠããŸãã ãããããã®ãæç¢ºåãã®è£åŽã«ã¯ããèŠãªãããšã決ããããšããããšã§ããããŸããã€ãŸããæç¢ºãªåºæºãèšããŠç¹å®ã®ææšã远ããšããããšã¯ããã以å€ã®èŠçŽ ã«æ³šæãæããªãããããã¯è»œèŠããããšãšè¡šè£äžäœã§ããçµæãšããŠãæ°å€ããŒã¹ã®åæã«ç¹åãããããšæ°ã¥ããªããã¡ã«èŠéãçãŸã£ãŠããŸãããšãåŸã
ã«ããŠãããŸãã äºäŸïŒãã£ã³ããŒã³ã¯ãŒã㳠売äžãçæçã«æŒãäžããããã«ãã¯ãŒãã³å©çšçããšããææšãäœã£ããšä»®å®ããŸããå®éçãªç®æšãèšå®ããã¯ãŒãã³ãã©ãã ãããŠã³ããŒããããäœïŒ
ã®å©çšçã«éãããããã©ããã³ã°ããããšã§ãã¯ãŒãã³ååŸæ°ãå©çšæ°ãçå®ã«å¢ããããšãã§ãã売äžãäžæçã«äžæããããŒã¿äžã¯ãæåããšèšããç¶æ
ãçãŸããŸããäžæ¹ã§ãã¯ãŒãã³å©çšçããšããç¹å®ã®æ°å€ææšã«ç
§æºãåãããããšã§ãå®éåãã«ãããæ¬è³ªçã«éèŠãªèŠçŽ ãèŠçããæ¶ããŠããŸããŸãã ãã©ã³ãã€ã¡ãŒãž ïŒã¯ãŒãã³ã®ä¹±çºã«ããããå®å£²ãããŠåœããåããšããã€ã¡ãŒãžãå®çããé·æçãªãã©ã³ã䟡å€ãäžããå¯èœæ§ãããã 顧客ãã€ã€ãªã㣠ïŒã¯ãŒãã³ããªããªã£ãç¬éã«é¢åãã顧客ãå¢ããäŸ¡æ Œä»¥å€ã®äŸ¡å€ãèŠãã¥ãããªã£ãŠããŸãã ãããŸã§äžäŸã§ããæ°å€åæã®åŒ·ã¿ã§ãããããããããããšãæææ±ºå®ã®æç¢ºåãã¯ãåæã«ã倿§ãªèгç¹ã®åãæšãŠãããããããŠããããšã«ãªããŸãã æ°å€ç®æšã®éæã«ã¯æåãããšããŠããâããã«ã¯æ ããªãæ¬è³ªâãèŠèœãšããŠããå¯èœæ§ããããŸããå®éææšã瀺ããæ£ãããã¯ãããŸã§æ¡ä»¶ä»ãã®ãã®ã§ãããåºãèŠéãæããªããšãããã¯ããå£ããŠããŸãé£ããããããŸãã èŠãããã®ã ãã¿ãŠãæ°å€ããŒã¹ã§æœçãè¡åããã¹ããšèšã£ãŠããå Žåã¯ããªãå±ããç¶æ³ãªã®ã§ã¯ãªãããªãšæããŸãã è«ç è«çã¯æ¢ã«ç¥ã£ãŠããææãæ
å ±ãå
ã«ãçéãç«ãŠãŠåé
眮ããããã®æ çµã¿ã®ããšã ãšèããŠããŸããäžèŠãããšå€±æã®ãªã¹ã¯ãäœæžããŠããã»ã¹ãåæåœ¢æããããããäžæ¹ã§ããæ¢åã®ã²ãŒã ã«ãŒã«ã®äžãæ©ãã ãããšããåŽé¢ã§ããããŸãã ãã®ãããé¡§å®¢ã®æ³åãè¶
ããªãæ©èœã¯é©ããæåã®ãããªå¿ãåãããããªããšã¯ã§ããã倧ããªçµæã¯çã¿åºããªãå¯èœæ§ãé«ãã®ã§ã¯ãªãããšèããŠããŸãã 誰ããçŽåŸãã圢ã«èœãšã蟌ãããšãããšã©ãããŠããå®éçã€ã³ãã¯ãããæå確çããšãã£ãèšèã§äŒç»ãã¢ã€ãã¢ãèªããã¡ã«ãªããçµæçã«ç«¶åä»ç€Ÿãšã®ãå·®å¥åããé£ãããªããŸãã 説åŸåãé«ããããã®â客芳çãªèª¬æâãéããã°éããã»ã©ããã€ã®éã«ããŠãŒã¶ãŒã®é¡ãææ
ãèããŠãããŸãã è«ççæŽåæ§ãé«ããããšã¯å€§åã§ããããããã¯ãã䜿ãã®ã¯ã人ãã§ããã圌ããã©ã®ãããªåã³ãæ©ã¿ãæ±ããŠããããæ·±ãçè§£ããããšãããæ žå¿ã§ã¯ãªãããšèããŠããŸãã è£å©ç·ãåŒãããã®éå
· ãããã¯ãéçºã§ãŸãåãã¹ã㯠ã誰ããªã幞ãã«ãªãã®ããããå§ãŸãã¹ãã§ãããæ°å€ãè«çã¯ãã®åãã«çããããã§ã®ãè£å©ç·ãã«ãããªã ã®ã§ã¯ãªãããªãšèããŠããŸããæœçã®æ€èšŒçµæã仮説ãåŸããåž°çŽçã«èããããšã«éå®ãã¹ãã ãšæããŸãããŸãã äŒç»æ®µéã§ã®æœçã®æ£ããã¯æ°å€ãšè«çã§ã¯ãªã顧客ãæã€ã€ã·ã¥ãŒã®è§£ååºŠã®æ·±ããšå®è¡çµæã§å€æãã¹ã ãªã®ã§ã¯ãªãããªãšèããŠããŸãã éå
·ã®æ±ãæ¹ æ°å€ã«å·Šå³ãããããªãïŒ æ°å€ã¯çæçææãæž¬ãææšã«ãããªããèŠéãåºãæã¡ãå®éåã§ããªãéšåã«ãç®ãåããã è«çã§åºããããªãïŒ è©Šäœãå®éšã®ãã§ãŒãºã§ã¯ãâç±éâãâçŽæâã倧åã«ããé¡§å®¢ã®ææ
ãæ³å®å€ã®è¡åã«ç®ãåããã å²åŠã»ããžã§ã³ãæç¢ºã«æã€ïŒ ã誰ãããªã幞ãã«ãªãã®ãããåžžã«åãç¶ããããšã§ãæ°å€ãšè«çã«ç¿»åŒãããªã軞ãæã€ã æåŸã« æ°å€ãè«çã¯ãã¡ãã倧åã§ãããããã«é¡§å®¢ã«æäŸããŠâèªåãã¡ãæ¬åœã«æ¬²ããæªæ¥âãå®è£
ãããã€ã¢ã¹ãå
¥ã£ãŠããªããã°ãããµããæ©èœããçãŸããªãã®ã§ã¯ãªãããšèããŠããŸããããšãããããæ©èœã§ãã¡ãã£ãšããæ°é£ãããããã©ããã«å·®ãçŸããŠãããšæããŸãã ãŸãã顧客ã®ã€ã³ãµã€ã(æ¬äººãæ°ã¥ããŠããªãé ããæ¬²æ)ã«ä»®èª¬ãç«ãŠãŠäžç¢ºå®æ§ã®é«ããããã¯ãéçºãããã«ã¯è©Šè¡é¯èª€ããªããçŽ æ©ãæ€èšŒããŠããããšãæ¬ ãããªããšçæããŸããã ä»å¹Žã¯åŒ·ãç±éãâãã€ã¢ã¹âã«åŒã£åŒµãããããšãããžãã£ãã«æããªãããå®éã«æãåãããæ©ãã©ã€ãã«å®éšãã倱æããããã§åŸãåŠã³ãç©ã¿éããªãããããã¯ããããžã¡ã³ãããã£ãŠãããããšæã£ãŠããŸãã binc.jp
æ¬èšäºã¯ BASEã¢ããã³ãã«ã¬ã³ããŒ2024 ã®24æ¥ç®ã®èšäºã§ãã ã¯ããã« CTOã®å·å£ ( id:dmnlk ) ã§ãã æšæ¥ã®èšäºã¯äžèšã§ããããããããèšäºãªãã§èªãã§ãã ä»ããªã¢ãŒãã¯ãŒã¯ã«ã€ããŠæãããš çµ±æ¬ãããŒãžã£ãŒ(EM of EM)ã®ä»äº7éž BASE瀟ã§ã¯çŸåšããšã³ãžãã¢æ¡çšãè¡ã£ãŠããŸãã ãã®äžã§ãã質åãé ãã®ã¯ãBASEã«ä»ããå
¥ç€Ÿããå Žåã«ããããšã¯ããã®ãïŒããšãããã®ã§ãã ãããŸã§èªãã BASEéçºããã°ãã¡ã³ã®æ¹ã¯ãæ°ã¥ããããããŸãããããããªå
容ã®èšäºãä»¥åæžããŸããã ä»BASEã«å
¥ç€ŸããŠããããšããã®ïŒãšããçåã«çããã ãã®èšäºãã3幎çµã£ãä»ãçŸåšã®BASE瀟ã®çŸç¶ãèžãŸããå¿
èŠãšãããŠããããšãæžããŠããããšæããŸãã ãµãŒããŒãµã€ãã¢ããªã±ãŒã·ã§ã³ã®ãªã¢ãŒããã¯ã㣠BASEã®ã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³ã¯CakePHP2ç³»ã§æžãããŠããŸãã ãã®ã¢ããªã±ãŒã·ã§ã³ã®FWç§»è¡ããªã¢ãŒããã¯ãã£ãæ°å¹Žç¶ããŠããŸãã éèŠæ©èœã§ããã«ãŒãéšåã¯ãªã¢ãŒããã¯ãã£ãå®äºãçŸåšã¯CakePHP4ç³»ã§åããŠããŸãã ãã®ã¢ããªã±ãŒã·ã§ã³ã¯CakePHP4ç³»ãããŒã¹ã«äœãããŠããŸãããFWã«æ¥µç«¯ã«äŸåããããšãé¿ãã¢ãžã¥ã©ã¢ããªã¹ãšã¯ãªãŒã³ã¢ãŒããã¯ãã£ã ããŒã¹ãšããã¢ãŒããã¯ãã£ãæ¡çšããŠããŸãã 詳现ã«é¢ããŠã¯åŒç€Ÿããã¯ãªãŒããçºè¡šãããã®è³æãåç
§ããŠããã ããã°ãšæããŸãã BASEå€§èŠæš¡ãªã¢ãŒããã¯ãã£ãªã³ã° ãã®åŸããªã¢ãŒããã¯ãã£ã®éçºã¯é²ãã§ãããæ°æ©èœãªã©ã¯å¯èœãªéããã®ã¢ããªã±ãŒã·ã§ã³äžã«æ§ç¯ããããã«ãªã£ãŠããŸãã ãã¡ããäŸå€ã¯ãããŸããããã®éããªãæ§ãªããžããªã§éçºããå¿
èŠãããããšããã®ãããããŒã¶ã«ãæžãããã«ãªã£ãŠããŸãã ãšã¯ããBASEã®å€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³çŸ€ã¯ãŸã ãŸã ç§»è¡ããªããã°ãªããªãã®ã§ãã¡ãã®ç§»è¡éçºãã¹ã«ãŒãããé«ãç§»è¡éçºããå¿
èŠããããŸãã ãã®ãããã®åºç€éçºãã¬ã¬ã·ãŒã¢ããªã±ãŒã·ã§ã³ã®ãã€ã°ã¬ãŒã·ã§ã³ãªã©ãè¡ãããæ¹ã®ãå¿åããåŸ
ã¡ããŠããŸãã äžæ£æ€ç¥ BASE瀟ã¯PAYæ ªåŒäŒç€ŸãåäŒç€Ÿã«æã¡ãPAY.JPãšãããªã³ã©ã€ã³æ±ºæžãµãŒãã¹ãæããŠããŸãã ãã£ãŠãECååŒããæ±ºæžåŠçã«è³ããŸã§ã暪æçãã€å
æ¬çãªäžæ£æ€ç¥ã®ä»çµã¿ãæ§ç¯ã§ãããŠããŒã¯ãªç«å Žã«ãããŸãã ãããŸã§ã«äžæ£æ€ç¥ã·ã¹ãã ãæ§ç¯ããäžå®ã®ææãäžããŠããŸãããããããæ¥éã«é²åãããµã€ããŒç¯çœªãäžæ£ãªæ±ºæžã«å¯Ÿå¿ãç¶ããããããããªã匷åãå¿
èŠã§ãããã®åãçµã¿ã¯ãBASEãPAY.JPãå©çšãã顧客ãå çåºã®å®å
šæ§ã確ä¿ããä¿¡é ŒããããµãŒãã¹ãæäŸããããã«æ¬ ãããªããã®ã§ãã æ±ºæžã®ãã©ã³ã¶ã¯ã·ã§ã³åŠçãECã®è³Œè²·ããŒã¿ãªã©ãå©çšããæšªæçã«ãã广çãªäžæ£æ€ç¥ã·ã¹ãã ãæ§ç¯ããŠãããæ¹ãåéããŠããŸãã ã¬ã³ã¡ã³ã ãã㯠Pay ID ããŒã ãäž»äœãšãªããŸãããPay IDã§ã¯å€ãã®ã·ã§ããã®ååãæããŠããå€çš®å€æ§ãªé¡§å®¢ããŒãºã«å¿ããŠããŸãã ããããååã®å€æ§æ§ãè±å¯ã§ããäžæ¹ãèšå€§ãªååããŒã¿ãã顧客ãé©åãªååãèŠã€ããã®ã¯å®¹æã§ã¯ãããŸããããã®èª²é¡ã解決ããããã«ãã¬ã³ã¡ã³ãã·ã¹ãã ã¯äžå¯æ¬ ãªåœ¹å²ãæãããŸãã èšå€§ãªååããŒã¿ããªã¢ã«ã¿ã€ã ã«åŠçããŠããã«ã¯èšç®ãªãœãŒã¹ã®ç®¡çãšå¹ççãªã¢ã«ãŽãªãºã ãæ±ããããŸãã ãã®ãããªã¬ã³ã¡ã³ãã·ã¹ãã ãæ§ç¯ããŠããã«ãããããŒã¿ãµã€ãšã³ã¹ãæ©æ¢°åŠç¿ã®ã¹ãã«ã ãã§ãªãå¹ççã§ãã€ã¹ã«ãŒããããªã€ã³ãã©ã¹ãã©ã¯ãã£ãæ§ç¯ããŠãããªããã°ãããŸããã ã¬ã³ã¡ã³ãã·ã¹ãã ã®ãããªãé²åãå
±ã«è¿œæ±ããæ°ããªè³Œè²·äœéšãåµãåºãããæ¹ããåŸ
ã¡ããŠããŸãã ã°ã«ãŒãé飿ºãšæè¡ã¬ããã³ã¹ å
æ¥ãBASEã¯è¶å¢ECäºæ¥ãå±éããwant.jpã®æ ªåŒãååŸãåäŒç€ŸåããŸããã åäŒç€Ÿåãããããšãã£ãŠããããŸBASE瀟ããã¹ãŠã管çããŠãããšããããšã«ã¯ãªããŸãããããããã坿¥ãªé£æºãè¡ãäºå®ã§ãã ãã®äžã§ã°ã«ãŒãéã§ã®ã¢ããªã±ãŒã·ã§ã³é£æºãéçºçµç¹ãæ§ç¯ããŠããå¿
èŠããããæè¡æ°Žæºãã»ãã¥ãªãã£æ°ŽæºãåãããŠããããšã«ãªããŸãã ãã®ãããªçµéšãè¡ã£ãããšã¯èªåèªèº«ããªããããç¥èŠãæã£ãŠããæ¹ããåŸ
ã¡ããŠãããŸãã ã°ããŒãã«ãããã¯ã è¶å¢ECäºæ¥ãè¡ã£ãŠããäŒç€ŸãåäŒç€ŸåããŠããããšãããåããéãBASE瀟ã¯ã°ããŒãã«ãªãããã¯ããžã®éçãæš¡çŽ¢ãã¯ãããŠããŸãã BASEãã®ãã®ãã°ããŒãã«ãããã¯ãã«ããŠãããã¯çŸç¶äžéæã§ãããäžçãèŠæ®ãããããã¯ãéçºãå¿
èŠã«ãªã£ãŠããããšã¯ããã£ãŠãããã éçºçµç¹ã®å€§å¹
ãªå€æŽããã°ããŒãã«ã«å±éãããããã¯ãã«å¿
èŠãªæè¡éçºããçµéšãããæ¹ããåŸ
ã¡ããŠãããŸãã SLI/SLO BASEã§ã¯æ±ºæžååŒã®ä¿¡é Œæ§ãããŒãžã®é«éãªã¬ã¹ãã³ã¹ããããŠåžžæã¢ã¯ã»ã¹å¯èœãªãµãŒãã¹ã®æäŸããããžãã¹æåã®éµãæ¡ã£ãŠããŸããç¹ã«ã売äžã«çŽçµããããµãŒãã¹ã®å質ãã¯ãç§ãã¡ã«ãšã£ãŠæåªå
課é¡ã§ãã ããã§ç§ãã¡ã¯ãã·ã¹ãã ã®ä¿¡é Œæ§ãæ°å€ã§æç¢ºã«ç€ºããé©åãªç®æšãå®ããããã«ãSLIïŒãµãŒãã¹ã¬ãã«ææšïŒ/SLOïŒãµãŒãã¹ã¬ãã«ç®æšïŒ ã®çå®ã«åãçµã¿å§ããŸããããã®åãçµã¿ãéããŠãäŸãã°ãã«ãŒãããŒãžã®ã¬ã¹ãã³ã¹ã¿ã€ã ã¯Xms以å
ãããæ±ºæžåŠçã®æåçã¯X%以äžã(ãããŸã§äŸã§ã)ãšãã£ãå
·äœçãªç®æšãèšå®ãããµãŒãã¹åè³ªãæ¹åããŠãããŸãã SLI/SLOã®çå®ã¯ãåãªãæè¡çãªæ¹åã§ã¯ãããŸãããããã¯ãããŠãŒã¶ãŒã«ã©ããªäœéšãå±ããããããããŒã å
šäœã§èãæãäœæ¥ã§ããããŸããECãã©ãããã©ãŒã ãšããç¹æ§äžããŠãŒã¶ãŒã¯å°ãã®é
å»¶ããšã©ãŒã§ãé¢è±ããå¯èœæ§ããããŸããã ãããããç§ãã¡ã¯ã·ã¹ãã å
šäœã®åããããŒã¿ã«åºã¥ããŠææ¡ããäºé²çã«åé¡ã解決ããããšã§ããŠãŒã¶ãŒäœéšãæé©åããããšèããŠããŸãã ãã®æŽ»åã«ã¯äž»ã«NewRelicãå©çšããŠããŸãã ãã®æŽ»åãè¡ãã®ã¯ç¹å¥ãªããŒã«ãšããããã¯éçºãšã³ãžãã¢ãããããåãçµãã§ããã¹ãããšã§ãã ä»åŸãSLI/SLOãåºç€ã«ãããä¿¡é Œæ§ã®é«ãã·ã¹ãã ãæ§ç¯ããããŒã å
šå¡ãå
±éã®ãŽãŒã«ãç®æããç°å¢ãæŽããŠãããŸãããã®ææŠã«åå ããç§ãã¡ãšäžç·ã«ãããè¯ãECãã©ãããã©ãŒã ããäœãäžããŠãããæ¹ãåéããŠããŸãã ã»ãã¥ãªã㣠ãã¡ããååã®èšäºã§æžããŠããŸããããã»ãã¥ãªãã£ã®éèŠæ§ã¯å¹Žã
å¢ããŠããŸãã ä»ç€ŸäºäŸã«ã¯ãªã£ãŠããŸããŸãããã»ãã¥ãªãã£ã€ã³ã·ãã³ãã«ããäºæ¥åæ¢ã®ãªã¹ã¯ã¯éåžžã«å€§ãããªã£ãŠããŸããæ»æã¯é«åºŠåããŠããŸãã BASEã¢ããªã±ãŒã·ã§ã³ã ãã§ãªã瀟å
ã·ã¹ãã ãåŸæ¥å¡æè²ãªã©ãå¿
èŠã«ãªã£ãŠãããCISOæ
åœãšå
±ã«è¡åããŠããã ãããšã«ãªããšæã£ãŠããŸãã ã»ãã¥ãªãã£ãšéçºäœéšãªã©ã¯ãã¬ãŒããªããšãããã¡ã§ãããã»ãã¥ãªãã£ã®ããã«éçºã®ã¹ã«ãŒããããèœãšããã»ãã¥ã¢ã«ãã€ã¹ããŒãã§éçºã§ããããã«ããŠããããšãç®æããŠããŸãã AWSã€ã³ãã©ã®ã³ã¹ãæé©åããã³ã¢ãã³å BASEãæ¯ããAWSã€ã³ãã©ã®ã³ã¹ãæé©åããã³ã¢ãã³åã«ç©æ¥µçã«åãçµãã§ããŸãããããã®æœçã¯ãå¹ççãªéçšãšã¹ã±ãŒã©ããªãã£ã®åäžãå³ããªãããããåªãããŠãŒã¶ãŒäœéšãæäŸããããã«æ¬ ãããªããã®ã§ãã ECãã©ãããã©ãŒã ã«ãããŠããã©ãã£ãã¯ã®å¢å ãå©çšè
ããŒãºã®å€æ§åã«äŒŽããã€ã³ãã©ã³ã¹ããäžæããããšã¯é¿ããããŸããã å ããŠæšä»ã®åå®äºæ
ã«ããã³ã¹ãæé©åã¯ç¶ç¶ããŠè¡ãã€ã·ã¥ãŒãšããæèãšãªã£ãŠããŸãã ããããåã«ã³ã¹ããåæžããã ãã§ã¯ãªããã·ã¹ãã ã®ä¿¡é Œæ§ãã¹ããŒããæè»æ§ãç¶æããªããæé©åããããšãæ±ããããŸãããŸããæ°ããæè¡ãå°å
¥ããæè¡çè² åµãè§£æ¶ããããšã§ãå°æ¥ã®æ¡åŒµæ§ãéçšå¹çã確ä¿ããŠããŸãã ã³ã¹ãæé©åã«ãããŠã¯ã€ã³ã¹ã¿ã³ã¹ãªã©ã®ãªãœãŒã¹å©çšã®åçãªå€æŽãã¢ãã¿ãªã³ã°ã®åŒ·åãç»åé
ä¿¡ã®ãããã¯ãŒã¯æé©åãªã©ãåãçµãã§ããŸãã ã¢ãã³åã«ãããŠã¯ã³ã³ããåãIaCãå¹ççã§ãªãã€ã³ãã©æ§ç¯æé ã®ç°¡çŽ åãªã©ãåãçµãã§ããŸãã SREããŒã ãäž»ã«åãçµãã§ããŸãããéçºè
ãããããåãçµãã§ããã¹ã課é¡ãšæããŠããŸãã®ã§ã¢ããªã±ãŒã·ã§ã³ã€ã³ãã©ãç©æ¥µçã«è§ŠããŠããããæ¹ããåŸ
ã¡ããŠããŸãã ãããã« ãããã ãã§ãªããŸã ãŸã å€ãã®èª²é¡ãæªæ¥ãžã®éçºãBASEç€Ÿã¯æ±ããŠããŸãã æè¡ã¯ãããŸã§ææ®µã§ãããç§éã®éçºçµç¹ãæ§æãããšã³ãžãã¢ãšããŠç©æ¥µçã«æè¡ç éœãããŠäºæ¥ãšãããã¯ãã«ã³ãããããŠããããšãæ±ããŠããŸãã ããããšãªãããªããŠããšã¯å
šããªãã®ã§ã«ãžã¥ã¢ã«é¢è«ããã§ãããã®ã§BASEã«èå³ãæã£ãŠããã ããã°ãšæããŸãã
æ¬èšäºã¯ BASEã¢ããã³ãã«ã¬ã³ããŒ2024 ã®24æ¥ç®ã®èšäºã§ãã ã¯ããã« ããã«ã¡ã¯ïŒBASEäºæ¥ãšã³ãžãã¢ããŒã ã«ãŠè²¬ä»»è
ïŒãšã³ãžãã¢ãªã³ã°ãããŒãžã£ãŒïŒãããŠãã æ€ç° ã§ããããããã¢ããã³ãã«ã¬ã³ããŒã仿¥ãå«ããŠã©ã¹ã2æ¥ãšãªããŸããã仿¥ãææ¥ã¯ãªã¹ãã¹ã楜ããæ¹ãå€ãã®ã§ã¯ãªãã§ããããã ããŠãç§ã¯ä»åãâçµ±æ¬ãããŒãžã£ãŒ(EM of EM)âãšã¯ã©ãããä»äºããæ¥ã
ã©ããªããšãèããŠä»äºãããŠãããããå±ããããã¢ããã³ãã«ã¬ã³ããŒãå·çããŸããã æ³å®èªè
ã¯ä»¥äžã®æ¹ã
ã«ãªããŸãã çŸåšãšã³ãžãã¢ãªã³ã°ãããŒãžã£ãŒ(以äžEM)ãããŠããŠä»åŸEM of EMãç®æããŠããããæ¹ çµ±æ¬ãããŒãžã£ãŒãšã¯ã©ããªä»äºãªã®ãèå³ã®ããæ¹ ç§ã®çµç¹ãç°¡åã«ãçŽ¹ä» ãŸãç§ã®çµç¹ãšç§ã®ç«å Žãã玹ä»ããŸãã ã¯ããã«çµç¹æ§æã§ãããProduct Dev DivisionãBASEäºæ¥ã®éçºããŒã ã«ãªã£ãŠããDivisionã®é
äžã«è€æ°ã®éçºããŒã ãååšããŠããŠãéçºããŒã ã«ã¯EMãã€ããããžã¡ã³ãããŠããŸãã ç¶ããŠãéçºçµç¹ã®ããã·ã§ã³ã¯å€§ããåããŠ3ã€ãããŸãã BASEäºæ¥ã«ããããã£ãŒãã£ãŒ(æ©èœ)ãããªããªãŒããŠããããš æ¢åæ©èœãéçšã»ä¿å®ããŠããããš æè¡èª²é¡ã解決ããŠããããš ç§ã®ããã·ã§ã³ã¯ãã®çµç¹å
šäœã®ããã©ãŒãã³ã¹ãæå€§åããå®å¿å®å
šãªãã©ãããã©ãŒã ãæ§ç¯ããŠããããšã«ãªããŸãã仿¥ã¯ç§ã®ç«å Žãâçµ±æ¬ãããŒãžã£ãŒâãšè¡šçŸããæ®æ®µã®ä»äºã«ã€ããŠç޹ä»ããŠãããããšæããŸãã çµ±æ¬ãããŒãžã£ãŒã®ä»äº7éž å
šãŠã§ã¯ãããŸãããèªåãéèŠã§ãããšèããŠããä»äºã7ã€æžãåºããŠã¿ãŸããã çµç¹ã®æ¹åæ§ãæã¡åºããçµç¹ã®ãã¯ãã«ãæãã æªæ¥ãèŠéããå
æãæã€ EMãéããŠçµç¹ãåãã éçºçµç¹ãšããŠäœã«æè³ãããã®æææ±ºå® çµç¹äœã 飿¥çµç¹ãšã®ãã圹 çŸå Žã¡ã³ããŒãšã®ã³ãã¥ãã±ãŒã·ã§ã³ ãªã1人ã®äººéã¯ãããŸã§äžèœã§ã¯ãªãã®ã§ããããã1人ããã§ãã£ãŠãããšããããšã§ã¯ãªããé ŒããEMé£ãšæ¥ã
ååããªããå®è¡ããŠããŸããããã§ã¯ããããã®ä»äºã现ãã玹ä»ããŠãããŸãã 1. çµç¹ã®æ¹åæ§ãæã¡åºããçµç¹ã®ãã¯ãã«ãæãã ç§ãçµ±æ¬ãããŒãžã£ãŒã®ä»»çšãæèšºããããšãã«å§ãã«èããã¢ã¯ã·ã§ã³ã¯ãã¡ãã§ãããç§ã®çµç¹ã¯æ°å人ã®ãšã³ãžãã¢ãåšç±ããŠããã®ã§ãããäœããããšãéçºã¯èªç¶ãšé²ãã§ããããããæãããŠãã®æšé²åã¯æå€§åã§ããŠããã ãããããšãã©ããªã«åªç§ãªãšã³ãžãã¢ãåšç±ããŠããŠããã©ãã©ã®æ¹åãåããŠããŠã¯ãã®åã¯æå€§éçºæ®ããããšã¯ã§ããªãããã¡ããšããžã§ã³ãæ¹åæ§ãæã¡åºãããšã§ãããã©ãŒãã³ã¹ãæå€§åã§ããã®ã§ã¯ãªãããšèããããšããã£ããã§ãããæ¹åæ§ã¯æã¡åºããŠçµããã§ã¯ãªããããã«å¯ŸããŠçè§£ãæ·±ãããæµžéãããŠããããšã倧äºã§ããããã¯æéãããã話ããªã®ã§çŸåšé²è¡ç³»ã§ãããããžã§ã³ãæ¹åæ§ãæã¡åºãããšã§ãçµ±æ¬ãããŒãžã£ãŒãšããŠã®èããè¡åã«1æ¬çãéãè¯ãã£ããšèããŠããŸãã æ¹åæ§ãæã¡åºããããšã®çްãã話ã¯ä»¥äžã®èšäºã§ãè§ŠããŠããã®ã§ããã¡ããåãããŠèªãã§ããã ããã幞ãã§ãã https://basebook.binc.jp/entry/2024/10/04/132904 2. æªæ¥ãèŠéããå
æãæã€ çµç¹ã®äžã§ã¯ç«å Žã圹å²ã«ãã£ãŠãã©ã®çšåºŠå
ãèŠæ®ããŠãããã¯ããçµç¹ãèããããå€ãã£ãŠããŸããçŸå Žã®ã¡ã³ããŒã§ããã°çŸåšã3ã¶æå
ãããŒã ãä»»ããããŠããEMã§ããã°å幎ã1幎ããããçµ±æ¬ãããŒãžã£ãŒã§ããã°1ã3幎ãããå
ãèŠéããã®ãçæ³çãããããŸãããçµ±æ¬ãããŒãžã£ãŒã®ç«å Žã§ããã®ã«çŸå ŽãšãŸã£ããåãç®ç·ã§ä»äºãããŠããŠã¯ãå°ãå
ã®æªæ¥ã«æ³å®ããŠããªãããšãèµ·ããæãçµç¹ããšæ²æ²¡ããŠããŸããŸããããã¹ãŠãåŸæåŸæã«åã£ãŠããŸããŸããæªæ¥ãèŠéãèµåãããŠããããããçµç¹ã¯ãã©ã¿ãªãæé·ããŠãããã®ã ãšèããŠããŸãããã£ãŠå¯èœãªéãæªæ¥ãèŠéãèšç»ãç«ãŠãŠããã®ãéèŠãªã®ã§ãããç§ã3幎å
ã®ããšãè§£å床é«ãèããããŠããããšãããšããã¯å®¹æã§ã¯ãªãä¿®è¡ãå¿
èŠã ãšèããŠããŸãã 3. EMãéããŠçµç¹ãåãã çµ±æ¬ãããŒãžã£ãŒã«ãªãããšã®1çªå€§ããªå€åã¯ãçŽæ¥çã«ã¡ã³ããŒããããžã¡ã³ãããªããªãããšããããšãããããŸãããã¡ã³ããŒãšçŽæ¥æ¥ç¹ãããã°ãPJã«å¯Ÿããã¢ããã€ã¹ããªã¢ã«ã¿ã€ã ã§ã§ããããã¡ã³ããŒã®ãã£ãªã¢ãæé·ã«å¯Ÿããã¢ããã€ã¹ãããããšæãã°æ¯é±ã§ããŸããã¡ã³ããŒãšçŽæ¥å®æçã«äŒè©±ããã®ã§ã¡ã³ããŒãçŸå Žã®ããšã«å¯Ÿããè§£å床ãé«ãç¶æã§ããŸããã§ããçŽç²ãªçµ±æ¬ãããŒãžã£ãŒã¯ã¡ã³ããŒãšã®æ¥ç¹ã¯æžã£ãŠããŸãã®ã§ãã®å©ç¹ã倱ãããšã«ãªããŸãããããªã£ãæã«éèŠãªã®ãèªåã®é
äžã®EMãšäŒè©±ãææçéãããŸãã¯èªåã®èããäŒãããããåºããŠããããšã§ãããŸãç«å Žçã«åœ¹å¡ã®æ¹ã
ãšçŽæ¥äŒè°ãããäŒè©±ããããšãå¢ããããã ãéèŠãªæææ±ºå®ãæ
å ±ã«è§ŠããŠããããã§ããããŸãããããã£ãäžæ¬¡æ
å ±ã«è§ŠããŠãããããªã®ã§å¯èœãªéãEMã«ã飿ºãæ
å ±æ Œå·®ããªããåãèŠéã§çµç¹éå¶ã§ããç¶æ
ãæŽããããããçµ±æ¬ãããŒãžã£ãŒã®éèŠãªä»äºã ãšèããŠããŸãã 4. éçºçµç¹ãšããŠäœã«æè³ãããã®æææ±ºå® åæãšããŠãäºæ¥æé·ã®ããã«éçºãè¡ã£ãŠãããããªã®ã§ãéçºçµç¹ã®ã¿ã§äœãããŠããããèããŠããã®ã§ã¯ãªããåºæ¬ã¯äºæ¥ã«ãããåªå
床ã«åãå¿
èŠãªéçºãããŠããŸãããšããåºæ¬çãªèããããäžã§ãç®å
ã®äºæ¥æé·ã ããèããŠãããšãå°ãå
ã®æªæ¥ã«èµ·ããåŸãã·ã¹ãã ã®ããã©ãŒãã³ã¹åé¡ãã»ãã¥ãªãã£ãªã¹ã¯ãšãã£ããã®ã¯èŠéããããã¡ã«ãªã£ãŠããŸããŸããBASEã§ã¯Qããšã«èšç»ãç®æšãç«ãŠããµã€ã¯ã«ã«ãªã£ãŠããŸãããèšç»ãç®æšãèããããšã¯ã€ãŸãäœã«æè³ãããã®æææ±ºå®ã§ãããšèããŠããŸããäºæ¥æé·ã®ããã«ã©ããªéçºãããŠããã®ãããã©ã¹ã¢ã«ãã¡ã§éçºçµç¹ãšããŠããã¹ãããšã¯ãªã«ãïŒãåžžã«èããŠè¡åããŠããŸãã 5. çµç¹äœã çµç¹äœãã¯ãçµç¹æ§é ãèããããšãã¡ã³ããŒãè²æããããšãæ¡çšãéããŠæ°ããªä»²éãèŠã€ããŠããããšãçµç¹ã®æå圢æãªã©ããããããŸããçµ±æ¬ãããŒãžã£ãŒãšããç«å Žã§ããã°ãåäžããŒã ãè¶
ããããåºãèŠç¹ã§çµç¹ãèããŠããããšãæ±ããããŸããäºæ¥ãããã«å éããŠããããã«ã¯ã©ããªããŒã ãå¿
èŠããã©ããªäººæãã©ãã ãå¿
èŠãã誰ãã©ãã«é
眮ãã¹ãããéçºãããã«å éãããããã«å¿
èŠãªæåãšã¯äœããèšç»ããè²æãæ¡çšãæå圢æããããã®ææ®µãããã¯ã¹ãããªããçµç¹äœããããŠãããŸãã 6. 飿¥çµç¹ãšã®ãã圹 BASEäºæ¥ã«ãããŠã¯ãBizDev DivisionãMarketing DivisionãOwners Success Divisionãªã©ãçµç¹ãæ§æãäºæ¥ãæ¯ããŠããŸãããã®ãããªé£æ¥çµç¹ãšäºãã®æåŸ
å€ã調æŽãããããå
·äœçãªæ¥åãäŸé ŒãããäŸé Œãããããšãã£ãã³ãã¥ãã±ãŒã·ã§ã³ãæ¥ã
çºçããŸããããçšåºŠçŸå ŽããŒã ã«çŽã¥ãæ¥åã¯èªåãä»å
¥ããã«æžãããšãå€ãã§ãããããããããŒã ã®éã«èœã¡ãããŒã«ããçªçºçãªæ¡ä»¶ãªã©ã¯çŽæ¥çžè«ãèã蟌ãããšãå€ãããªãã¹ããªãããã«äºãã®çµç¹ã®æ¥åãé²ãããã«ãããšãªãã®ã倧äºãªä»äºã§ããçµç¹ã®é¡ãšããŠåãããšã«ããªãããäžå®ã®ç·åŒµæãæã£ãŠèšãã§ããŸãã 7. çŸå Žã¡ã³ããŒãšã®ã³ãã¥ãã±ãŒã·ã§ã³ ããã»ã©EMãéããŠçµç¹ãåãããšããããšã玹ä»ããŸãããããšã¯ããã¡ã³ããŒãšçŽæ¥äŒè©±ããæ©äŒãäœãããšã倧äºã§ããçŸåšã¯3ã¶æã«1床ã®é »åºŠã§ã¡ã³ããŒãšã®1on1ã®æéãèšããŠããŸããããããã¹ãããã¬ãã«ããŒãã£ã³ã°ã§ãããã¡ã³ããŒãã声ããããã®ãåŸ
ã€ã®ã§ã¯ãªãèœåçã«èªåããã³ãã¥ãã±ãŒã·ã§ã³ã®å Žãäœã£ãŠããŸããã¡ã³ããŒãšçŽæ¥äŒè©±ãçŸåšã¯ã©ããªæ§åãªã®ããçµç¹ã«å¯ŸããŠèª²é¡ã«æã£ãŠããããšã¯ãªãããªã©ããã¢ãªã³ã°ããŠããŸããäŒè©±ãããããšã§ã¡ã³ããŒã«å¯Ÿããè§£å床ãé«ããªãã¡ã³ããŒã«å¯Ÿããæè«ãæã€ããšãã§ããŸããèªåã®ããªã·ãŒãšããŠã¡ã³ããŒãšè©±ããå
容ã¯EMã®æ¹ã«ãå
±æããããã«ããŠããŸããEMã®ç«å ŽããèŠãŠèªèº«ã®èŠããªããšããã§ãã¡ã³ããŒãšäžé·ãäŒè©±ããŠãããšããã®ã¯ãœã¯ãœã¯ãããã®ã§ãããã£ãŠã¡ã³ããŒã«èš±å¯ãåã£ãäžã§ã¡ã¢ã¯å
±æããããã«ããŠããŸãããŸãã¡ã³ããŒãšEMã®ä¿¡é Œé¢ä¿ãè¶
ããŠèªåãäžå¿
èŠã«ã¡ã³ããŒãšèæã«ãªããªãããã«ãããŠããŸããããã¯ããŒã ãšã¡ã³ããŒããããžã¡ã³ãããŠããEMãšããç«å Žãå°éããŠããããã§ãã ãããã« æ¬æ¥ã¯çµ±æ¬ãããŒãžã£ãŒ(EM of EM)ã®ä»äºã7ã€ç޹ä»ããŸããã1ã€ã§ãåèã«ãªã話ãããã°å¹žãã§ããBASEã§ã¯Webã¢ããªã±ãŒã·ã§ã³ãšã³ãžãã¢ããšã³ãžãã¢ãªã³ã°ãããŒãžã£ãŒãããã¯ãªãŒãããããç©æ¥µçã«æ¡çšäžã§ãããèå³ããæ¹ã¯ãæ°è»œã«ã声ãããã ããã ããŠãææ¥ã¯ã¢ããã³ãã«ã¬ã³ããŒæçµæ¥ã§ããæ¯å¹ŽæäŸåŒç€Ÿ CTO ã®èšäºã§ãã®ã§ã楜ãã¿ã«ã binc.jp
æ¬èšäºã¯ BASE ã¢ããã³ãã«ã¬ã³ã㌠2024 ã® 24 æ¥ç®ã®èšäºã§ãã ããã«ã¡ã¯ããšã³ãžãã¢ãªã³ã°ãããŒãžã£ãŒã®æŸå( @simezi9 )ã§ãã æ°åã³ãããŠã€ã«ã¹ã®æµè¡ã«ç«¯ãçºããäžã®äžã®å€åãããããã5幎ãçµéããããšããŠããŸãã åœæã®ææå¯Ÿçã®æµãã§å€ãã®äŒæ¥ããªã¢ãŒãã¯ãŒã¯å¶åºŠã®å°å
¥ãé²ããŸããããã®èšäºãèªãã§ããæ¹ã®äžã«ããã®ã¿ã€ãã³ã°ã§ã¯ãããŠãªã¢ãŒãã¯ãŒã¯ã«åãçµãã æ¹ãå€ãã®ã§ã¯ãªãã§ããããã ç§ããã®åœæã«ãBASEæ ªåŒäŒç€Ÿã®ãªã¢ãŒãã¯ãŒã¯ãžã®åãçµã¿ããšã³ããªãšããŠå
¬éããããšããããŸããã åèïŒ ãšã³ãžãã¢ã®ãªã¢ãŒãã¯ãŒã¯ in BASE ãã®ãšã³ããªãæžããŠãã4幎ããã®éããããŒãžã£ãŒãšããç«å Žãããªã¢ãŒãã¯ãŒã¯ã®å¶åºŠãéçšããŠããçµéšãèžãŸããŠãç§ãããŸãªã¢ãŒãã¯ãŒã¯ãšããã·ã¹ãã ã«å¯ŸããŠæã£ãŠããããšãççŽã«æžããŠã¿ãããšæããŸãã ãã®æç« ãããªã¢ãŒãã¯ãŒã¯ã®å°å
¥ã»å»æ¢ã§æ©ã管çè
ãããããã®æ±ºå®ãã©ãããçµç·¯ã®ããšã§é²ãã§ããã®ãçŽåŸã§ããªãã¡ã³ããŒã®æ¹ã
ã®çè§£ã®å©ãã«ãªãã°ãããªãšæã£ãŠããŸãã ïŒãšã¯ã¹ãã¥ãŒãºïŒBASEã§ã¯ãªã¢ãŒãã¯ãŒã¯ã®éçšã¯ããŒã ã«ä»»ãããŠããéšåãå€ãåãçµã¿æ¹ãåå·®äžå¥ãªã®ã§ãåè¿°ã®ãšã³ããªãšã¯éã£ãŠãã®èšäºã¯äŒç€Ÿå
šäœã®åãçµã¿ãšã¯äžåé¢ä¿ããªããäžäººã®äžé管çè·ãšããŠã®ç§èŠãè¿°ã¹ããã®ã§ããããšã¯äºåã«ãèªèããã ããã°ãšæããŸãã äžã®äžã®ãªã¢ãŒãã¯ãŒã¯ã«å¯Ÿããåå ãŸãããã®4幎ã§ã¯ã£ããããŠããæµãã¯ãªã¢ãŒãã¯ãŒã¯å¶åºŠãžã®ååã§ãããšæããŸãã ã³ãããŠã€ã«ã¹ã®äžççãªæµè¡ããã£ããã«æ®åãããšããããšã¯ããã®å¶åºŠã¯èšãæããã°å€çãªåæ©ã«ãã£ãŠé§åãããŠãããã®ã§ãããå
çãªåæ©ã«æ¯ãããããã®ã§ã¯ãªãã£ããšèšããããšæããŸãã ãããŠãã®å¶åºŠã«ãã£ã¬ã³ãžããçµæãšããŠããçµç¹ã®çµæåã匱ãŸãããã€ãããŒã·ã§ã³ãçãŸããªããªãããšãã£ãçç±ã§å¶åºŠã®çž®å°ã»æ€å»ãããŠããäŒæ¥ãã©ãã©ãçŸããŠããããã«æããŸãã ããã¯æ¥æ¬äŒæ¥ã®ã¿ãªããã¢ã¡ãªã«ã®ããã°ããã¯ã§ãã£ãŠãåæ§ããšãããããããé¡èã§ãã£ãŠãGoogle,Apple,OpenAIãšãã£ãäžçã代衚ããäŒæ¥ã§ãã£ãŠããªã¢ãŒãã¯ãŒã¯ã«åŠå®çãªã¹ã¿ã³ã¹ãåããåºç€Ÿã«ãããåãçŽãããšããŠããäºäŸã¯ãããã§ãã§ãŠããŸãã SNSãªã©ãçºããŠããŠããåºç€Ÿã®ã«ãŒã«ãèšå®ãããäŒç€Ÿãšããã«æã瀟å¡ãšããæ§å³ã¯ããèŠãããå
æ¯ã«ãªã£ããšæããŸãã ãããããŠããã®å眪ã«ã€ããŠèªåã®èããè¿°ã¹ãŠã¿ãããšæããŸããããã§ã¯äžè¬è«ãšããŠèšãããŠããããšã¯åæãšããŠçããŠããããŸã§ç§èªèº«ã匷ãæããã¡ãªããã»ãã¡ãªããã®ããšãæžããŠãããããšæã£ãŠããŸãã ãªã¢ãŒãã¯ãŒã¯ã®ã¡ãªãã ã¡ãªããã«ã€ããŠã¯æ£çŽãäžéäžè¬ã§èšãããŠããããšããã¹ãŠãšããæãã§ãæ¹ããŠæžããããªããšãå°ãªãã®ã§ããããšããã倧ãããªãšæãããšã ãã«ãšã©ããŠæžããŸãã ã¯ãŒã¯ã©ã€ããã©ã³ã¹ã®åãããã è²å
ã®æäžããããã¯æç
ãæ±ããŠããæ¹ãå®¶æã®ä»è·ãæ±ããŠããæ¹ã«ãšã£ãŠã¯éå€ã«ããæææéãçããªã£ãŠå€åäžã«ãã¡ãã£ãšããå²ã蟌ã¿ã¿ã¹ã¯ãæãããçæŽ»ãšäž¡ç«ãã§ãããšããã®ã¯å€§ããªã¡ãªãããšããŠååšããŠããŸããä»äºã®ååšã«ãã£ãŠæ¥ã
ã®ã¹ã±ãžã¥ãŒã«ãå§è¿«ãããŠå€§å€ã ãšæãç¬éã¯æžã£ãããã«æããŸãã é倿éã®ç¯çŽ ç¹ã«äžåç£äŸ¡æ Œã®é«éš°ãç¶ãéŠéœåã«ãã£ãŠã¯é¡èã§ãããçé1æéã®éå€ããã®é倿éãäžèŠã«ãªããšããã®ã¯å€§ããã¡ãªããã§ããäŒç€ŸãšããŠã亀éè²»çšã®æåœãäžèŠã«ãªãã瀟å¡åŽãæ¯æ¥é·ãé倿éã®ææãæžããæºå¡é»è»ã§ç²åŒããŠããŸããšããäºæ
ãé¿ããããŸãã ãªã¢ãŒãã¯ãŒã¯ã®ãã¡ãªãã ãã¡ãã¯çµç¹ãéå¶ããç«å Žã®äººéãšããŠãæãããšãå€ãã£ãã®ã§åéãšããŠã¯å€§ãããªããŸãããã¡ãªãããšããã¹ãã§ã¯ãªããè³åŠãããèããå€ãå«ãŸããŠããŸãã çµç¹åã®äœäž ã瀟å¡ã®ç·æ¥åå§èšåã 衚çŸãšããŠã¯å°ãéæ¿ã§ãããªã¢ãŒãã¯ãŒã¯ãæšæºã®çµç¹ã«ãã£ãŠã¯ããªãã£ã¹ã§åããŠããé ã»ã©ã®äººéé¢ä¿ãçµã¶ã®ã¯çžåœã«å³ãããã®ã§ãããšæããŠããŸãã æ®æ®µã®ã³ãã¥ãã±ãŒã·ã§ã³ã®èŒªã¯ã©ãããŠãããŒã ã®å€ã«ã¯åºãã£ãŠãããŸããããæ·¡çœãªåãæ¹ã«ãªããããåŸãªãéšåã¯ããããšæããŸãã ããã¯çµç¹ã®ãµã€ãåãšããŠããªã¢ãŒãã¯ãŒã¯ã®æ¬ ç¹ãšããŠæããããŠããããšãå€ãããã«æããŸãã å®éã«ãäŒç€ŸãäœãèããŠããã®ãããããªããªã£ããä»ã®ããŒã ãäœãããŠããã®ãããããããªãããšãã話ãããŠããå
æ¯ãç®ã«ããæ©äŒã¯äœæãšããŠå¢ããŠãããããªæè§Šã¯åããŸãã ãŸããã¹ãã«ã®ããŒã¿ããªãã£ãé«ãã転è·ã容æãªæè¡è·ã«ãã£ãŠã¯ãåå
µã®ããã«åãã飜ãããæ¬¡ã®çŸå Žã«ãã£ãšç§»ã£ãŠããŸããšããåããå¢ããããã«æããŠããŸãã ãªã¢ãŒãã¯ãŒã¯ãæšæºã«ãªãããšã§è»¢è·ã®ããŒãã«ã倧ããäžãããŸãããå Žæãç¥ããªããã¡ãã¡ã®ãªãã£ã¹ã«äœåºŠã蚪åããŠé¢æ¥ãããããšãã倧å€ãªéçšãæžãããšããããZoomãMeetã§æåã®é¢æ¥ããããšããæµãã«å€ãã£ãããšã¯å€§ãããšæããŸãã å°æ°ã®ç€Ÿå¡ã§åœ¹è·ã®å£æ ¹ãè¶
ããŠå¯ãªã³ãã¥ãã±ãŒã·ã§ã³ã§çäžå°œãäžæ¡çãä¹ãåããªããšãããªããã§ãŒãºã®äŒç€Ÿã§ã¯ããã¯éåžžã«èŠããç¶æ
ã§ããããšæããŸãã ãããã¯ããªã¢ãŒãã§èº«äœæèŠã䌎ããå
¥ç€ŸããŠããæ¹ããåºã人éé¢ä¿ãæ§ç¯ããããšãªããªã¢ãŒãã§ãµãã£ã𿬡ã®è·å Žã«ç§»ã£ãŠããå
æ¯ãããèŠãããŸããã ãããŠããã黿¢ããã¹ããªã³ããŒãã£ã³ã°ã®ããã»ã¹ãäžå¯§ã«è¡ãããšããããšãããè¡ãããŠããããã«æããŸãããã ãªã³ããŒãã£ã³ã°ã ãã§çµç¹ãžã®æçãéžæããã®ã¯é£ããããšã§ãããããã§ããïŒç¬¬äžæ©ãšããŠã¯éèŠã ãšæããŸãïŒ ãŠã§ãããªäººéé¢ä¿ãä»äºã«æã¡èŸŒãããšã«å¯ŸããŠåŠå®çãªèãããããŸãããããã¯ããã§å°éãããããšã ãšæããŸãããªã®ã§ãå¶åºŠãèããåŽã¯èªåã®çµç¹ãã©ããã圢ã§ãã£ãŠã»ããã®ãããšããã®ãèããŠéžæããå¿
èŠããããŸãã ãããèªèº«ã¯ãªãã£ã¹ã§åããŠããé ã«æ¯ã¹ããšããªã¢ãŒãã¯ãŒã¯ã¯ãåºæ¿ã«ä¹ããéå±ã§ããããšããå°è±¡ããã£ãŠããã®ã¯åœããããšããã§ãã ããã«ã€ããŠã¯ç¹ã«ãããŒãžã£ãŒãšã¡ã³ããŒã®éã§æèŠã®åæã倧ããé åã§ãããšæããŠããŠãŸãã責åãäžããŠãããã°ããªããŸããããã§ãªã«ãäžè¶³ã¯ãããŸããããšããã¡ã³ããŒããã®ææãšãæç¢ºãªåœ¢ã«ã¯ãã¥ãããçµç¹äœã®åŒ·åã«ãããŠåºç€Ÿã¯éèŠã§ãããšèãããããŒãžã£ãŒã®éã®åæã¯å°ãªããšãèªåã瀟å
å€ã§è©±ãèãããšããã§ã¯äžå®èµ·ããŠãããããªæ°ãããŸã ãªã³ã©ã€ã³ããŒãã£ã³ã°ã®é£ãã ããã«ã€ããŠã¯ç¹ã«åäººã®ææ³ãšããéšåã倧ããã®ã§ããã察é¢ã§è¡ãããããŒãã£ã³ã°ã«æ¯ã¹ãŠããªã³ã©ã€ã³ããŒãã£ã³ã°ã¯ãšãŠãé£ãããšæããŠããŸãã ããã¯ããã£ã©ã³ã²ãŒãžã®æ
å ±éãã¬ã¯ããšèœã¡ãŠããŸã£ãããäŒè©±ã®éãã€ãã¿ã«ããããåããçãäžãããªãããšã§ãã£ãããåå ã¯æ§ã
èããããŸãã以åãªã«ãã®èšäºã§ã¯å¯Ÿé¢ãšæ¯ã¹ãŠãªã³ã©ã€ã³ã ãšäŒããæ
å ±éã7â8å²èœã¡ããªããŠè©±ãèŠãèŠãããããŸãã ç§èªèº«ããªã³ã©ã€ã³ããŒãã£ã³ã°ã¯ç»é¢ã«éäžããã®ãé£ãããã€ãä»ã®ãŠã€ã³ããŠãèŠã«è¡ã£ãŠããŸã£ãããäŒè©±ã«åå ãç¶ããã®ãé£ãããšæããç¬éããããããŸãã ãŸãããªã³ã©ã€ã³ããŒãã£ã³ã°ã¯äŒè°å®€ãšããç©ççå¶çŽãåããªããããç¡é§ã«äœäººãåå è
ãå¢ãããŠããŸã£ãŠãæç«ããŠããŸãããšããç¹åŸŽããããŸããçµæãšããŠã15人åå ããŠããããã©10人ã¯ç»é¢ããã€ã¯ããªãã§æ®ãã®5人ãäŒè©±ããŠãã ãããšããè¶
çµ¶ã«äžæ¯ãªæéãçãŸãããããããšããããŸããäŒè°å®€ã§è¡ãããŒãã£ã³ã°ã§ã¯ããããããšã¯ãªããªãèµ·ãããŸããã ãªã³ã©ã€ã³ããŒãã£ã³ã°ã®äž»å¬è
ã¯äººæ°ãçµããè°é¡ãæç¢ºã«ããåå è
ã®éäžåãåãããªãããã«ããããã«ã察é¢ã®ããŒãã£ã³ã°ãããã¯ããã«æ°ãé
ãå¿
èŠããããŸãã äžåºŠå§ãããšå»æ¢ã®ããŒãã«ãé«ã ãªã¢ãŒãã¯ãŒã¯ã®è©±ã«æ»ããŸãããã äžè¬è«ãšããŠãäžåºŠç²åŸããæš©å©ã奪ãããããšããããšã«å¯ŸããŠäººã¯åŒ·ãæµæã瀺ããŸãã ãããŠãã®çç±ãšãããã®ã¯ãéå€ãå«ã ããšãããããªã¡ãã£ãšããç®ã®åã«èŠããåé¡ã«å¯ŸããæåŠåå¿ã§ãã£ãããå°æ¹ã«å®¶ãè²·ã£ãŠããŸã£ããããããªç°¡åã«åºç€ŸãããŒã¹ã«ã§ããªããšãã£ã倧ããªåé¡ãŸã§æ§ã
ã§ãã ãªã¢ãŒãã¯ãŒã¯ã®å¶åºŠãçž®å°ããå¯èœæ§ãå°ãã§ããããªãã°ããã®å¶åºŠã¯ãããŸã§çŸæç¹ã®ãã®ã§ããæ°žç¶çã«ä¿èšŒãããŠãããã®ã§ã¯ãªãããšããã®ãäºåã«ç¢ºèªããŠããã¹ãã§ããå Žåã«ãã£ãŠã¯åŽäœ¿å¥çŽã§ã¡ãããšç¢ºèªããŠããå¿
èŠãããã§ãããã ã§ãªããšå¶åºŠãå€ãããšãã«äžæã«é¢è·ãçºçãããªã¹ã¯ã«ããªããŸãããäŒç€Ÿã«ãšã£ãŠãåŽåè
ã«ãšã£ãŠãäžå¹žãªçµæã«ãªã£ãŠããŸããããã§ãã ç¹ã«ããã«ãªã¢ãŒãã§åããŸãããšããã®ããŠãªæå¥ã«ããŠæ±äººãåºããŠããäŒç€Ÿã¯äžã®äžã«ãå°ãªããããããŸããããã®å¶åºŠã®å°æ¥æ§ãšããã®ã¯ãªãã¹ãé瀺ããã¹ãã ãšæããŸãããŸããã®äžæ¹ã§åŽåè
ã®åŽãããªã¢ãŒãã¯ãŒã¯ã®å¶åºŠãé·ãä¿èšŒãããŠããã±ãŒã¹ã¯å°ãªããšããããšãèªèããŠããã¹ãããšã§ãããšæããŸãã å°ãªããšãããçšåºŠã®åºãã®ãªãã£ã¹ãæ§ããŠããäŒç€Ÿã¯ãã€ãªãã£ã¹ååž°ãšãã倿ãäžããŠãããããã¯ãªãããšããã®ããããã®å°è±¡ã§ãã ãªã¢ãŒãã¯ãŒã¯ãšããå¶åºŠãå°å
¥ããã®ã¯ããã»ã©é£ãããªãïŒæ
å ±ã»ãã¥ãªãã£ãã¯ãŒã¯ãããŒã®æ§ç¯ãšãã£ãå®åã®åé¡ã¯åœç¶ãããŸãïŒã®ã«æ¯ã¹ããšããã®èŠæš¡ãçž®å°ããã廿¢ãããšããã®ã¯äŒç€Ÿãã²ã£ããè¿ããããªéšãã«ãªããããŸããã å¶åºŠãéçšããåŽã¯ãã®ç¹ãéåžžã«éãèããŠå¶åºŠãèšèšããã¹ãã§ãããšèããŠããŸãã ãªã¢ãŒãã¯ãŒã¯ã®æ§è³ª ã¡ãªããããã¡ãªããã§ã¯ãªããªã¢ãŒãã¯ãŒã¯ã£ãŠããããããšããããã¡ã ããããšããã®ãåæããŠã¿ãŸãã ã¢ãŠããããã«è©äŸ¡ã®æ¯éã倧ããåã ãªã¢ãŒãã¯ãŒã¯ã«ãããŠãæ®æ®µã®æ¥åæ
床ããµããŸããªã©ã¯èŠçã«å
¥ãã«ãããªããŸãã ãã®ãããããã®äººãäœããããããšããåœ¢ã«æ®ãã¢ãŠããããã«ã®ã¿è©äŸ¡ã®æ ¹æ ã眮ãããæ¥µç«¯ãªææäž»çŸ©ã«ãªãããããšæããŸãã è
ã«èªèº«ããã人ã«ãšã£ãŠã¯ããã§ååã ãšæãã§ããããã察é¢ã§ã®ãœããã¹ãã«ã«èªåã®äŸ¡å€ããããšæã人ã¯èŠæŠã匷ããããããšããããããããŸããã ç¹ã«ãªã³ã©ã€ã³ã§å
¥ç€ŸããŠãã人ã¯åŠãå¿ã§ãèªåã®äŸ¡å€ãå
·äœçãªäœæ¥ã§äž»åŒµããå¿
èŠããããè·å Žãžã®é©å¿ã«èŠåŽããããšãå€ãã®ã§ã¯ãªãããšæããŸãã ãã€ããªããã¯ãŒã¯ã¯æ¬åœã«ã¡ããã©ããã®ã ãªãã£ã¹ãžã®åºç€Ÿãšãªã¢ãŒãã¯ãŒã¯ã䜿ãåãããã€ããªããã¯ãŒã¯ãšããåèªãäžã®äžã§ã¯ãã䜿ãããããã«ãªã£ããšæããŸãã åã«ãåºç€ŸããŠããããããããæäœã§ããã®æ¥ã¯åºç€ŸããŠãã ããããšãããã¿ãŒã³ãŸã§æ¿æ·¡ã¯æ§ã
èŠåããããŸãã ããã¯ãªã¢ãŒãã¯ãŒã¯ãšãªãã£ã¹ã¯ãŒã¯ã®ãããšãåããããããšããåãã®ããã§ããŠãå®éã®ãšããã¯ãªã¢ãŒãã¯ãŒã¯ã®æ¬ ç¹ãè£ãããã«å°ãã§ããªãã£ã¹ã¯ãŒã¯ãåãå
¥ãããããšããã³ã³ããã¹ãããå¢ããŠããåãã§ããããšããæèŠã®ã»ããè¿ããããªæ°ã¯ããŠããŸãã ããããªããããã®ãã€ããªããã¯ãŒã¯ã®åãçµã¿ã¯ãªãã£ã¹ã¯ãŒã¯ãšãªã¢ãŒãã¯ãŒã¯ã®æªããšããã©ãã«ããªããããªãäžçªé£ããåãçµã¿ãªã®ã§ã¯ãªãããšæããŠããŸãã åºç€Ÿæ¥ã決ããªããã¿ãŒã³ã§ã¯çµå±ãªãã£ã¹ã«æ¥ãªã人ãåŸã
ã«å¢ããŠãã£ãŠããŸãæ©èœããªãç¶æ
ã«é¥ããããã§ãããåºç€Ÿæ¥ãèšå®ãããã¿ãŒã³ã§ãã£ãŠãåºç€Ÿæ¥ã®æ±ºãæ¹ãããªãã£ã¹ãªãã§ã¯ã®ã³ãã¥ãã±ãŒã·ã§ã³ãã¡ãããšçºçãããããªä»æãããããã£ãé
æ
®ããªããšããåã«ãªãã£ã¹ã«åŒã³åºãããŠå«ã
åºç€Ÿããã ãã®æ¥ãã«é¥ããããæ°ã¯ããŠããŸãã çŸå®ã®ãªãã£ã¹ãšããã§è¡ãããŒã ã¯ãŒã¯ãããã«é
åçã«ãããã管çè
ã®åéãéåžžã«æ±ãããããšããã§ãããšæããŠããŸããããã«ã³ã¹ãããããªãã®ã§ããã°ãããããã€ããªããã¯ãŒã¯ã¯ããŸããããŸããã 圢骞åãããããåºç€Ÿæ¥ã åé
ã§ã®è©±ã«è¿ãã®ã§ãããåºç€Ÿæ¥ãšãããã®ã«å¹åãããããã«ã¯äžå®ã®èŠåŸãå¿
èŠã§ãã ãã£ããåºç€Ÿæ¥ãã€ãã£ããšããã§ã仿¥ã¯é çãã®ã§å®¶ã§ãããŸããïŒãããªç§»åã§ããªãã»ã©é çããªãåºç€Ÿããªããšãã§ã¯ãªãäŒæãåã£ãŠäŒãã§ã»ããïŒãšãã£ãããšãã«ãžã¥ã¢ã«ã«è¡ãããããã«ãªããšãã®æå³ã¯èããŠãããŸãã ãããã«ããŸãã¬äºæ
ãã®åºæºã¯äººã«ãã£ãŠåå·®äžå¥ã§ããã©ããŸã§é
æ
®ããã¹ãã倧å€ã«é£ããåé¡ãšãªããŸãã ãããŠèª°ãããªãã£ã¹ã«ããªãå ŽåãäŒè°ããªã³ã©ã€ã³ã§å®æœããå¿
èŠãããããªãã£ã¹çµãšèªå®
çµã®åæãçãŸãããããŠãããªãã ãããããããã¥ããããšããç¶æ³ãæããŸããããã¯ç¹ã«åºç€Ÿäœéšãè¯ãããããã®ä»çµã¿ãè²ã
çšæããŠããã°ããã»ã©èµ·ãããããç¶æ³ã§ãããšæããŸãããã®ç¶æ³ã§ã¯ïŒäººã§ããªã¢ãŒãã¯ãŒã¯ã®äººããããšããŒã å
šäœã®åºç€Ÿäœéšãæªåã ãããšããèªèãå
šå¡ãæã£ãŠããå¿
èŠãããããªããšæããŸãã æ¬åœã«åºç€Ÿæ¥ãèšå®ãããªã宿ã«äŸå€ãäœããªãããšããåŒ·ãæ°æã¡ã管çè
ã®åŽã«èŠæ±ãããããã«æããŸãããšããããåºç€Ÿæ¥ãäœãã°ããããããŸãããã¯ãããšããã®ã¯ããŸãçŸå®çã§ã¯ãªããšæããŠããŸãã ããªãŒã¢ãã¬ã¹ã®å眪 ããã¯ãªã¢ãŒãã¯ãŒã¯ã®è©±ããã¯å°ããããã®ã§ããããªã¢ãŒãã¯ãŒã¯ãå°å
¥ããŠãªãã£ã¹ã®çšŒåçãæžã£ãŠããäžãæ¡çšã«ãã£ãŠäººå¡ãå¢ãããšåºå®åžãå²ãåœãŠãæçŸ©ãäœäžããŠãããŸãã ãªãã£ã¹ã«ããªã人å¡ã®ãã¹ã¯ã®ããã«ãªãã£ã¹ãå¢åºãããã¬ã€ã¢ãŠã倿Žããã³ã¹ããæãå¿
èŠã¯ãªãããšããããšã§ãªãã£ã¹åŽã§ããªãŒã¢ãã¬ã¹ãå°å
¥ããäŒæ¥ãã¡ãã»ããšèŠãããŸãã 衚é¢çã«ã¯éåžžã«åççãªææ³ãªã®ã§ãããããã¯ããã§çšå¿ããå¿
èŠããããšæã£ãŠããŸãããšããã®ããããªãŒã¢ãã¬ã¹ã«ããããšã§èªåã®æçã®æãŠããã¹ã¯ããªããªããæ¯åè¡ã£ãŠã¿ãªããšãã¹ã¯ç°å¢ãããããªãããšãããšããã§ãªãã£ã¹ããŸããŸãæ¬é ããçµæã«ãªããããªãããã§ãã ãŸãããªãŒã¢ãã¬ã¹ãšããããšã§ããŒã ã®ã¡ã³ããŒã§äŒè©±ããæ©äŒãæºãé¢ããŠç©ççã«åæãããããšã§å¥ªãããŠããŸãå¯èœæ§ããããŸãã ããªãŒã¢ãã¬ã¹ãæ
éã«è¡ããªããšããå®¶ãã¡ã€ã³ã§ãªãã£ã¹ã¯ããŸã«è¡ãå Žæããšããèªèãå®çãããããªããã®ã§ãããšããããšã¯çæããŠããå¿
èŠãããããã«æããŸãã çç£æ§ã¯åäžããã®ã æšä»ã§ã¯ãšããããçç£æ§ããšããã¯ãŒããæ³šç®ãéããŠããããã«æããŸãã ãªã¢ãŒãã¯ãŒã¯ã«ãŸã€ããè°è«ã§ããããªã¢ãŒãã¯ãŒã¯ã§ã¯ãµããããçç£æ§ããããããå®¶ã§åãã»ããèœã¡çããŠåãçµããã®ã§çç£æ§ãé«ããããšãã£ãçŽ æŽãªãšããããã¯ããŸãæ§ã
ãªå£°ãèŠãããŸãã ãã®è°è«ã«ã€ããŠã¯ããããçµè«ãåºãããšã¯ãªãã ãããšèŠãŠããŸãã ããããã®çç£æ§ãšããèšèãäœãæããŠããã®ãã®å®çŸ©ãéåžžã«é£ããã§ãããè·å Žãçµç¹ã®æ¡ä»¶æ¬¡ç¬¬ã§ããŸãã«å€æ°ãå€ã䟡å€ã®ããçµ±èšããŒã¿ãå°ãåºãããšãé£ããããã«æããŠããããã§ãã äŸãã°ããªãã£ã¹ã®ã¬ã€ã¢ãŠãããªãŒãã³ã«ããã»ããããããã¡ãããšä»åããäœã£ãŠã¯ããŒãºããªç°å¢ãäœã£ãã»ãããããããšãããããªè©±é¡ãæªã ã«æ±ºçãã§ãŠããããã«ã¯èŠããŸããã ãããæãã°ãã以äžã«å€æ°ã®å€ããªã¢ãŒãã¯ãŒã¯ã®çç£æ§ã«ã€ããŠäžè¬çãªçµè«ãåºãããšãæåŸ
ããã¹ãã§ã¯ãªãã§ãããã çµæãšããŠããçç£æ§ã®ããã«ãªã¢ãŒãã¯ãŒã¯ã廿¢ããã»ç¶æããããšããè°è«ã¯åæ¹ãçŽåŸããããšãªãäžæ¯ã«çµããããšãã»ãšãã©ã§ããããã«æããŸãã SNSã§ãããªã¢ãŒãã¯ãŒã¯ãããŸããããšæã£ãŠãã人ã¯ã¬ãã«ãäœããããªã¢ãŒãã¯ãŒã¯ã§çç£æ§ãèœã¡ãè·å Žã®ã¬ãã«ãäœãããšãããããªæ ¹æ ã®ãªãã¬ããã«è²Œããç
œãåãã«çµæ¢ããŠããŸã£ãŠããå
æ¯ãããèŠãŸãã çµç¹ã®å¶åºŠã決å®ããæš©éãæã£ãŠãã人ã¯ããã®çç£æ§ãšããæŠå¿µãè°è«ã«æã¡èŸŒãŸãªãã»ããæææ±ºå®ã®æ ¹æ ãæºãããã«æ±ºããããšãã§ããã®ã§ã¯ãªãã ããããšæã£ãŠããŸãã æåŸã«ïŒç®¡çè
ãšããŠæºãåãäžã§ ãããŸã§ãã¡ãªããããã¬ãã£ããªè©±ã®æ¯éãããªãå€ããªã£ãŠããŸããŸãããããã¯ãç§èªèº«ãå¿ã®äœåŠãã§ãªã¢ãŒãã¯ãŒã¯ã¯ããŸãè¯ããªããã®ã ããšèããŠããçµæãªã®ãããããŸããã ãªã¢ãŒãã¯ãŒã¯ã¯ã¡ãªããã»ãã¡ãªããã§å€©ç§€ã«ããããã®ã§ã¯ãªãäºæ¥ã®å©çã«ã¯çžåããçŠå©åçãªã®ã§ãããšå²ãåã£ãŠèããã¹ããªã®ãããããŸããããã®å Žåã¯äºæ¥ãžã®ãã¡ãŒãžããªãã¹ãæžãããªãããªã¢ãŒãã¯ãŒã¯ãè¡ãããšããèãæ¹ã«ãªãã®ã ãããšæããŸãã çµå±ã®ãšããããªã¢ãŒãã¯ãŒã¯ãæç«ãããã®ã¯è«žã
ã®åæãå¿
èŠã§ãããçµç¹ã®äžããäžãŸã§ãã®é£ãããèªèããŠåãçµãã§ããå¿
èŠããããã®ã ãšæã£ãŠããŸãã ãã®æããäŸãGitLab瀟ã§ãããšæããŸããå瀟ã¯ãªã¢ãŒãã¯ãŒã¯ã§åãããã«å¿
èŠãªéåæã³ãã¥ãã±ãŒã·ã§ã³ã培åºçã«æŽãã ã¬ã€ãã©ã€ã³ãå
¬éããŠããŸã ããéã«èšãã°ããã ãã®ã³ã¹ãããããèŠæãå¿
èŠã§ãããšãã蚌巊ã§ããããšæããŸãã ç§èªèº«ã¯ããªã¢ãŒãã¯ãŒã¯ã®é£ããã«ç«ã¡åããæéãšäºç®ãæãèŠæããªããã°ããªãã£ã¹ã§ä»äºãããã»ããæçµçã«äŒç€Ÿã®å©çã«ã¯ã€ãªããã®ã§ããããšæã£ãŠããŸãã äžæ¹ã§ç®¡çè·ãšããã©åŸæ¥å¡ã®ç«å Žã§ããããšã¯å€ãããªãã®ã§ãã£ãŠããªã¢ãŒãã¯ãŒã¯ããåŸãããå©çãæšãŠã決æãããããã®ãäºå®ã§ãããŸãã ãã®éšåã®æ±ºæã¯äžé管çè·ãçŸå Žã®å€æã§ã¯ãªãããªã¢ãŒãã¯ãŒã¯ç¶ç¶ã«ãã廿¢ã«ãããçµå¶è
ãããã«æºããç«å Žã®äººéããã·ããšæ±ºããŠã«ãŒã«ã«ããŠããŸãããšãå¿
èŠãªã®ã ãããšæããŸããåäœã«è£éãæž¡ããç¶æ
ã§ã¯çµç¹ãå
šäœãšããŠåŒãç· ãŸãããšã¯é£ããããã«æããŠããŸãã ããã§çµç¹ãå»ã人ãããã°ãããããçµç¹ãæ±ããŠããæ¹ãããããšããã®ã¯å®æãšããŠããã®ã§çµç¹ãäœãåºç€ãšããŠãã£ããææã瀺ããŠããããšã倧äºã§ãããšæããŠããŸãã ãªã¢ãŒãã¯ãŒã¯ã«ãŸã€ããè°è«ã¯åºç¯ã«è¡ãããŠããŠãç§èªèº«ã綺éºã«æç« ãšããŠæŽçãåãããšãã§ããããã®ãšã³ããªãæžãã®ã«ãéåžžã«èŠåŽããŸããããã®å²ã«ç¶ºéºã«ãŸãšãããã倧倿ãããšããã§ã¯ãããŸãããçæ§ã®åŽåãããæ¥œããå
å®ãããã®ã«ãªãã°ããšæã£ãŠããŸãã ææ¥ã¯ããããã¢ããã³ãã«ã¬ã³ããŒæçµæ¥ãåŒç€ŸCTOã® @dmnlk ã«ããèšäºã§ãããæ¥œãã¿ã«ïŒ