
- TOP
- ã¿ã°äžèЧ
- ããã°ã©ãã³ã°
ããã°ã©ãã³ã°
ã€ãã³ã
ãã¬ãžã³
æè¡ããã°
ããã«ã¡ã¯ãQAã³ã³ãµã«ã¿ã³ãã®ã€ããã§ãã ãœãããŠã§ã¢éçºã®çŸå Žã§ã¯ãæ¥ã
ãå質ã®ç¢ºä¿ãçç£æ§ã®åäžããããŠæè¡ã®ç¶æ¿ãšãã£ã課é¡ã«çŽé¢ããŸããçµéšè±å¯ãªãšãŒã¹ãšã³ãžãã¢ã®æŽ»èºã§äžæçã«åé¡ã解決ãããŠãããã®ããŠããŠãããŒã ã«å
±æãããªããã°ãåãåé¡ãç¹°ãè¿ãçºçããŠããŸããŸãã ãããããå±äººåããšããåã®èœãšã穎ãé¿ããããŒã ãšããŠç¶ç¶çã«æé·ããŠããããã«äžå¯æ¬ ãªã®ã ãæšæºã ãšããèãæ¹ã§ãã ãæšæºããšèããšã圢åŒçã§å
èŠããããåµé æ§ãçžããã®ããšãã£ããã¬ãã£ããªã€ã¡ãŒãžãæã€æ¹ããããããããŸãããããããæšæºã¯éçºçŸå Žãæ··ä¹±ããæããããé«å質ãªãœãããŠã§ã¢ããããå¹ççã«çã¿åºãããã®åŒ·åãªãçŸ
éç€ããšãªãåŸãŸãã ãã®èšäºã§ã¯ããŸããæšæºããã®ãã®ã«ã€ããŠæ·±ãæãäžããå
·äœçãªäºäŸã亀ããªãããæšæºã圢骞åãããã«ãçããè³ç£ããšããŠè²ãŠç¶ããããã®ã¢ãããŒãã«ã€ããŠè§£èª¬ããŠãããŸãã ãããããæšæºããšã¯äœãïŒ ãæšæºãã«ã¯ããã®æãç«ã¡ãé©çšç¯å²ã«ãã£ãŠããã€ãã®çš®é¡ããããŸãã倧ããã¯ãå
¬çãªæ©é¢ãå®ãããã®ãšãåžå Žã§äºå®äžæšæºãšèŠãªãããããã«ãªã£ããã®ã«åããããŸãã ããžã¥ãŒã«ã¹ã¿ã³ããŒã (de jure standard) åœéæšæºåæ©æ§ïŒISOïŒãæ¥æ¬ç£æ¥èŠæ ŒïŒJISïŒãšãã£ãå
¬çãªæšæºåå£äœã«ãã£ãŠçå®ã»çºè¡ããããå
¬åŒãªèŠæ Œã§ãããæ³åŸäžã®ããšãã£ãæå³ãæã¡ãŸãã ããã¡ã¯ãã¹ã¿ã³ããŒã (de facto standard) å
¬çãªæ©é¢ãå®ãããã®ã§ã¯ãªããŠããåžå Žã§ã®ç«¶äºãæ¥çã®æ¯æã«ãã£ãŠåºãæ®åããäºå®äžã®æšæºãšããŠæ©èœããŠãããã®ã§ãããäºå®äžã®ããšããæå³ãæã¡ãŸãã ããããç§ãã¡ãçŸå Žã§æèãã¹ããæšæºãã¯ãããã ãã§ã¯ãããŸãããããŒã å
ã§å®ãããã ã³ãŒãã£ã³ã°èŠçŽ ããããžã§ã¯ãã§å
±éããŠäœ¿ããã èšèšæžã®ãã³ãã¬ãŒã ã Gitã®ãã©ã³ãæŠç¥ ãšãã£ããã®ããç§ãã¡ãæ¥ã
ã®è¿·ãããæã£ãŠãããéèŠãªãçŸå Žã®æšæºããªã®ã§ãã ãœãããŠã§ã¢éçºã«é¢é£ãããæšæºãã®ã©ã³ãã¹ã±ãŒã ã§ã¯ãå
·äœçã«ã©ã®ãããªæšæºãååšããã®ã§ãããããããã§ã¯ä»£è¡šçãªãã®ããããžã¥ãŒã«ããšãããã¡ã¯ããã«åé¡ããŠã玹ä»ããŸãã ããžã¥ãŒã«ã¹ã¿ã³ããŒã (å
¬çæšæº) åœéçãªåæåœ¢æã«åºã¥ããŠããããä¿¡é Œæ§ãé«ããèªèšŒå¶åºŠãšçµã³ã€ããŠãããã®ãå€ããããŸãã æšæº/èŠæ Œå çºè¡å
æŠèŠ ISO 9001 ISO å質ãããžã¡ã³ãã·ã¹ãã ã®åœéèŠæ Œã補åã»ãµãŒãã¹ã®å質ä¿èšŒã®ä»çµã¿ãæ§ç¯ã»éçšããããã®èŠæ±äºé
ãå®ããŠããŸãã ISO 21502 ISO ãããžã§ã¯ããããžã¡ã³ã ã®æåŒã«é¢ããåœéèŠæ Œãããã¡ã¯ãã¹ã¿ã³ããŒãã§ããPMBOK®ã¬ã€ããªã©äžçäžã®ç¥èŠãåºã«çå®ãããŸãããPMBOK®ã詳现ãªããŒã«ãææ³ïŒHowïŒãå«ãã®ã«å¯Ÿããæ¬èŠæ Œã¯çµç¹ãåŸãã¹ããã€ã¬ãã«ãªæŠå¿µãããã»ã¹ïŒWhatïŒãå®çŸ©ããã¬ã€ãã³ã¹ã§ãããçžäºè£å®çãªé¢ä¿ã«ãããŸãã ISO/IEC 25000 (SQuaRE) ISO/IEC ãœãããŠã§ã¢å質 ã«é¢ããåœéèŠæ ŒçŸ€ããœãããŠã§ã¢ã®å質ã¢ãã«ãå®çŸ©ãããã®æž¬å®ãšè©äŸ¡ã®æ¹æ³ãèŠå®ããŠããŸãã ISO/IEC/IEEE 12207 ISO/IEC/IEEE ãœãããŠã§ã¢ã©ã€ããµã€ã¯ã«ããã»ã¹ ã®åœéèŠæ ŒããœãããŠã§ã¢ã®äŒç»ããéçºãä¿å®ã廿£ãŸã§ã®äžé£ã®ããã»ã¹ãå®çŸ©ããŠããŸãã ISO/IEC/IEEE 29119 ISO/IEC/IEEE ãœãããŠã§ã¢ãã¹ã ã«é¢ããåœéèŠæ Œã·ãªãŒãºããã¹ãããã»ã¹ããã¹ãããã¥ã¡ã³ãããã¹ãææ³ãããŒã¯ãŒãé§åãã¹ããªã©ããã¹ãã«é¢ããå
æ¬çãªå
å®¹ãæ±ããŸãã ISO/IEC 27001 ISO/IEC æ
å ±ã»ãã¥ãªãã£ãããžã¡ã³ãã·ã¹ãã (ISMS) ã®åœéèŠæ Œãæ
å ±è³ç£ãä¿è·ããããã®ç®¡ççãäœç³»çã«ç€ºããŠããŸãã ããã¡ã¯ãã¹ã¿ã³ããŒã (äºå®äžã®æšæº) æè¡ã®é²åã«è¿
éã«å¯Ÿå¿ãããããç¹å®ã®åéã§åŒ·ã圱é¿åãæã€ãã®ãå€ããããŸãã æšæº/èŠæ Œå çºè¡å
/管çè
æŠèŠ PMBOK®ã¬ã€ã PMI ãããžã§ã¯ããããžã¡ã³ã ã®ç¥èäœç³»ãå
¬çèŠæ Œã§ããISO 21502ã®çå®ã«ã倧ããªåœ±é¿ãäžãããæ¥çã§æãåºãåç
§ãããã¬ã€ãã©ã€ã³ã®äžã€ã§ãã CMMI® ISACA çµç¹ã® ããã»ã¹æç床 ã5段éã§è©äŸ¡ã»æ¹åããããã®ã¢ãã«ãå
ã
ã¯ç±³åœã«ãŒãã®ãŒã¡ãã³å€§åŠïŒSEIïŒã§éçºãããçŸåšã¯ISACAãåŒãç¶ãã§ç¶æã»ç®¡çããŠããŸãã ITIL® AXELOS ITãµãŒãã¹ãããžã¡ã³ã ã«ããããã¹ããã©ã¯ãã£ã¹éãå€ãã®äŒæ¥ã®ITéšéã§éçšç®¡çã®æéãšããŠæ¡çšãããŠããŸãã OWASP Top 10 OWASP Webã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªã㣠ã«é¢ããæãé倧ãª10ã®ãªã¹ã¯ããŸãšããã¬ããŒããã»ãã¥ãªãã£å¯Ÿçã®åºæºãšããŠåºãåç
§ãããŸãã ãäºäŸãæšæºãç¥ããªããšãå®çžŸã®ããããã©ã³ã§ãå€§æªæããã ããã§ãæšæºã®éèŠæ§ã宿ããŠããã ãããã«ãããçŸå Žã§å®éã«èµ·ãã ãå®çžŸã®ããããã©ã³ããæšæºãç¥ããªãã£ãããã«å€§å€±æããŠããŸã£ãã èŠãäºäŸãã玹ä»ããŸãã ããå°èŠæš¡ãªå»çç³»ã·ã¹ãã ã®éçºãããžã§ã¯ãã«ãéçºæŽ20å¹Žã§æ°ã
ã®ä¿®çŸ
å ŽããããæããŠãããšã³ãžãã¢ã®Aãããå©ã£äººãšããŠåç»ããŸãããAããã¯æè¡åãé«ããéå»ã®çµéšãããšã«ç¬èªã®ãç§äŒã®ã¿ã¬ãã®ãããªå¹ççãªãã¹ãæ¹éãçµã¿ç«ãŠã å§åçãªã¹ããŒããšæéã®è¯ã ã§æ¬¡ã
ãšãã¹ããæ¶åããŠãããŸãããããŒã å
šå¡ãããããAããã ããšå®å¿ããŠããŸããã ãããããããžã§ã¯ãã®æçµç€ãã¯ã©ã€ã¢ã³ãã§ãã倧æå»çæ©åšã¡ãŒã«ãŒã«ãã å質ã¬ãã¥ãŒ ãå
¥ã£ããšãã«äºä»¶ã¯èµ·ããŸããã å
æ¹ã®æ
åœè
ãã ãåœéèŠæ Œã§ãããISO/IEC/IEEE 29119ãã«æºæ ãããã¹ãææç©ïŒããã¥ã¡ã³ãïŒãèŠããŠãã ããã ãšæ±ããããã®ã§ãã Aããã¯ãç¬èªã®å¹ççãªããæ¹ãã§ãã¹ããé²ããŠãããããåœéèŠæ Œãæ±ããããã»ã¹ïŒã©ã®ãããªæ ¹æ ã§ãã®ãã¹ãææ³ãéžã³ãã©ãææç©ãæ®ãã¹ããïŒãæºãããŠããŸããã§ãããAããã«ãšã£ãŠã¯ãååã«ãã¹ãããããšããèªä¿¡ããããŸããããå
æ¹ãã㯠ãåœéèŠæ ŒïŒæšæºïŒãæºãããŠããªããããå質ã客芳çã«èšŒæãããŠããªãã ãšããææªã®è©äŸ¡ãäžãããŠããŸã£ãã®ã§ãã çµæãšããŠãèšå€§ãªãã¹ãã®ããçŽããšããã¥ã¡ã³ãã®åäœæãçºçãããããžã§ã¯ãã®ãªãªãŒã¹ã¯æ°ã¶æå»¶æãAããã®ãã©ã€ãããããŒã ã®ä¿¡é Œã倧ããå·ã€ãçµæãšãªã£ãŠããŸããŸããã Aããã®æè¡åãç±æã¯æ¬ç©ã§ããããããã ãäžçäžã®ç¥èŠãéãŸã£ããæšæºããç¥ãããšããªãã£ãããšã ã倱æã®åå ã§ããã ã©ãã ãå®çžŸã®ããããã©ã³ã§ãã£ãŠããèªåã®ãçµéšåãã ãã§æšæºãšãããéåç¥ãã«åã€ããšã¯é£ããã®ã§ãã ãªãç§ãã¡ã¯ãæšæºããæŽ»çšãã¹ããªã®ãïŒ Aããã®äºäŸãããåããããã«ãæšæºãšã¯åãªãå
èŠããã«ãŒã«ã§ã¯ãªããå
人ãã¡ãåããããªå€±æãéããæ«ã«ãã©ãçãããããããå®ãã°çµ¶å¯Ÿã«å€§æªæãããªãããšããé²åŸ¡å£ïŒãã¹ããã©ã¯ãã£ã¹ïŒã§ããããããé©åã«æŽ»çšããããšã¯ãéçºããŒã ã«èšãç¥ããªãã¡ãªããããããããŸãã å質ã®å®å®ãšåäž: å
人ãã¡ã®ç¥èŠã«åºã¥ããæ
åœè
ã®ã¹ãã«ã«äŸåããªãäžå®ã®å質ã¬ãã«ã客芳çã«ç¢ºä¿ã»èšŒæããŸãã çç£æ§ã®åäž: ãè»èŒªã®åçºæãããããã»ã¹ã®ç¬ããããããé¿ããéçºè
ãããæ¬è³ªçãªèª²é¡è§£æ±ºã«éäžã§ããããã«ããŸãã ã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ãã®åæž: ãå
±éèšèªããæã€ããšã§ãçµç¹å
å€ãšã®èªèã®éœéœ¬ãç¡é§ãªææ»ããæžãããŸãã æè¡ã®äŒæ¿ãšäººæè²æ: æšæºåãããããã¥ã¡ã³ãã¯ãæ°ã¡ã³ããŒã次äžä»£ã®ãšã³ãžãã¢ã«ãšã£ãŠæé«ã®ãæç§æžããšãªããŸãã ãæšæºããè²ãŠãïŒç¥èåµé ã®ã¢ãããŒããSECIã¢ãã«ã æšæºãå°å
¥ããŠããããã圢骞åããŠã¯æå³ããããŸããããŸããå
ã»ã©ã®Aããã®ããã«å€ããäžããããæšæºã«æ¯ãåãããã ãã§ãªããèªãã®ç¥èŠãæšæºãžãšæè¯ãããããŒã ã®è³ç£ãšããŠè²ãŠãŠããããšãéèŠã§ãã æšæºã®æ¹åãšãããšãå€ãã®æ¹ãå質管çã®åºæ¬ã§ãã ãPDCAãµã€ã¯ã«ã ãæãæµ®ãã¹ããããããŸããã確ãã«ã æ¢åã®æšæºãããå¹ççã«ã ããå®å®ããã ãšãã£ããæ¹åãã®ãã§ãŒãºã«ãããŠPDCAã¯éåžžã«æå¹ã§ãã ããããããšãŒã¹ãšã³ãžãã¢ã®ããŠããŠãã®ãã㪠ãŸã 圢ã«ãªã£ãŠããªãç¥æµãæšæºåãã ãã€ãŸã ãåµé ã ã®ãã§ãŒãºã§ã¯ã©ãã§ããããããã®ã0â1ããçã¿åºãããã»ã¹ã§ç¹ã«åãçºæ®ããã®ããç¥èåµé ã®ãã¬ãŒã ã¯ãŒã¯ã§ãã ãSECIã¢ãã«ã ã§ãã SECIã¢ãã«ã¯ãå人ã®ãæé»ç¥ïŒçµéšãåïŒãããçµç¹ã®ã圢åŒç¥ïŒïŒæšæºïŒããžãšæè¯ãããŠãã4ã€ã®ããã»ã¹ããæããŸããããããã¯ãå¥ã®ããŒã ã®æåäºäŸã远ããªããããã®ããã»ã¹ãèŠãŠãããŸãããã ãäºäŸãéçºããŒã ããç¡æµã®ãšãŒã¹äŸåãããè±åŽãã話 æ°æ©èœã®éçºãé²ããŠããéçºããŒã ã«ã¯ãã»ãã¥ãªãã£å®è£
ã«ãã£ãœã匷ããšãŒã¹ãšã³ãžãã¢ã®BãããããŸãããBãããæ
åœããæ©èœã¯åžžã«å
ç¢ã§ãã°ããããŸãããããããBãããä»ã®éèŠæ¡ä»¶ã§æäžæ¯ã«ãªããšãããŒã å
šäœã®éçºã¹ããŒããã¬ã¯ã³ãšèœã¡ãä»ã®ã¡ã³ããŒãæžããã³ãŒãã«ã¯ã»ãã¥ãªãã£äžã®ææãå€çºãããšãããå±äººåãã®èª²é¡ãæ±ããŠããŸããã ããã§ããŒã ã¯ãBããã®é ã®äžã«ããããŠããŠããæšæºãã«å€ãããããSECIã¢ãã«ã«æ²¿ã£ãåãçµã¿ãè¡ããŸããã å
±åå (Socialization) – æé»ç¥ããæé»ç¥ãž ãŸãã¯è¥æã¡ã³ããŒãBãããšãã¢ããã°ã©ãã³ã°ãè¡ããBãããã³ãŒããæžãéã«èŠãŠãããã€ã³ããããªããšãªãæªããããšæããåæã察話ãéããŠèã§åŠã³ãŸãããSECIã¢ãã«ã¯ãPDCAã®ããã«æç¢ºãªãèšç»ãããã§ã¯ãªããããããçŸå Žã§ã®èªç¶ãªç¥èå
±æããå§ãŸããŸãã 衚åºå (Externalization) – æé»ç¥ãã圢åŒç¥ãž ãã¢ããã§åŸãç¥èŠãããšã«ãWebã¢ããªã±ãŒã·ã§ã³ã§ç¹ã«æ³šæãã¹ãè匱æ§å¯Ÿçã誰ããçè§£ã§ãã圢ã«èšèªåã»å³è§£åãã5é
ç®ã®ç°¡æçãªãã»ãã¥ãªãã£ã¬ãã¥ãŒã»ãã§ãã¯ãªã¹ãããäœæããŸãããããã§åããŠãçµç¹ã®è³ç£ãšããŠã®ãæšæº Ver. 1.0ããèªçããŸãã é£çµå (Combination) – 圢åŒç¥ãã圢åŒç¥ãž çãŸããã°ããã®ãã§ãã¯ãªã¹ãããããŒã ãå
ã
æã£ãŠãããGitãã©ã³ãéçšã«ãŒã«ãããã³ãŒãã¬ãã¥ãŒæ¹éãã®ããã¥ã¡ã³ããšçµã¿åãããããäœç³»çãªéçºãããŒã®ã¬ã€ãã©ã€ã³ãžãšçºå±ãããŸããã å
é¢å (Internalization) – 圢åŒç¥ããæé»ç¥ãž äœç³»åãããæšæºãã¡ã³ããŒãæ¯åã®ãã«ãªã¯ãšã¹ãã§å®è·µããŸãããç¹°ãè¿ããã¡ã«ãæèãããšãã»ãã¥ã¢ãªã³ãŒããæžããããã«ãªããã¡ã³ããŒå
šäœã®æ°ããªã¹ãã«ïŒæé»ç¥ïŒãšããŠäœåŸãããŸããã SECIã¢ãã«ãšPDCAãµã€ã¯ã«ã®èå ãã®éçºããŒã ã®åãçµã¿ã«ã¯ãããã«ç¶ãããããŸãã äœæãããã§ãã¯ãªã¹ããéçšããŠããäžã§ãããŒã ã¯æ¥çã®ããã¡ã¯ãã¹ã¿ã³ããŒãã§ãã ãOWASP Top 10ã ã®ååšãç¥ããŸãããããã§ãèªåãã¡ã®æšæºïŒVer. 1.0ïŒãšOWASP Top 10ãèŠæ¯ã¹ãããããã®èŠç¹ãæããŠãããããšæ°ã¥ãã PDCAãµã€ã¯ã«ãåããŠæšæºãããã«ã¢ããããŒãïŒVer. 2.0ãžïŒ ããŠãã£ãã®ã§ãã ãã®ããã«ãSECIã¢ãã«ã¯ç¹ã«ãå±äººåããã¡ãªããŠããŠãçµç¹ã®åã«å€ããããã®æ°ããæšæºãçã¿åºãããã»ã¹ãšããŠéåžžã«æå¹ã§ãããããŠãSECIã¢ãã«ã«ãã£ãŠçã¿åºããããæšæº Ver. 1.0ãããä»åºŠã¯æ¥ã
ã®éçšã®äžã§PDCAãµã€ã¯ã«ãåããŠãVer. 1.1ã 1.2ããžãšç£šãäžããŠããã ãã®ããã«äž¡è
ãçµã¿åãããããšã§ãçµç¹ã¯åµé ãšæ¹åã®äž¡èŒªãæã«å
¥ããããšãã§ããã®ã§ãã ãŸãšã ãœãããŠã§ã¢éçºã«ããããæšæºãã¯ãããžã¥ãŒã«ãããã¡ã¯ããšãã£ãå
¬çãªãã®ãããçŸå Žã®ãã³ãã¬ãŒããŸã§å€å²ã«ããããŸããããããåã«å°å
¥ããã ãã§ãªããããŒã ã®è³ç£ãšããŠè²ãŠãŠããããšãéèŠã§ãã å人ã®çµéšåã ãã§çªã£èµ°ããšãäžçã®æšæºã«éçšããæãã¬å€§æªæãããããšããããŸãïŒAããã®äŸïŒãäžæ¹ã§ããšãŒã¹ã®æã€åªããããŠããŠã SECIã¢ãã« ã§çµç¹ã®ãæšæºããžãšæè¯ãããããã PDCAãµã€ã¯ã« ã§ç£šãäžãç¶ããã°ãããŒã å
šäœã®åãåºäžããããŸãïŒBããã®äŸïŒã æšæºã¯ç§ãã¡ãçžããã®ã§ã¯ãªããç¡é§ãªäœæ¥ãèŽåœçãªå€±æããè§£æŸããããæ¬è³ªçãªä»äºãžãšå°ããŠããã匷åãªããŒãããŒã§ããåµé ãšæ¹åã®ãµã€ã¯ã«ãåããªãããããŒã ã®åãæå€§éã«åŒãåºããçããæšæºããè²ãŠãŠãããŸãããã The post ãªããè»èŒªã®åçºæããããã¹ããªã®ãïŒ ãœãããŠã§ã¢éçºã«ããããæšæºãã®æ¬åœã®äŸ¡å€ first appeared on Sqripts .
Go Conference 2026 ç®æ¬¡ ã¯ããã« ãšããªãŒã®ã¹ãã³ãµãŒããŒã¹ ã¢ã³ã±ãŒãããŒã é£ã¯ã€ãºã»ããåŒã ããã«ã㣠ã»ãã·ã§ã³çŽ¹ä» Go ã«ããã FFI ã®ãããŸã§ãšãããã cgo ãšãã®èª²é¡ WebAssembly ã䜿ã£ã FFI wasmify ãš wasm2go ææ³ ã¯ãŒã¯ã·ã§ããçŽ¹ä» go.devã®æ©ãæ¹ããã®å
ãž ãGoå
¬åŒãªãœãŒã¹ã®æ
ãææ¥ããã®èª¿ã¹æ¹ãæã«å
¥ããã¯ãŒã¯ã·ã§ããã åå ããçç± ã¯ãŒã¯ã·ã§ããã®æµã èšå2 ã®èª¿æ» ã¯ãŒã¯ã·ã§ããã§åŸãããš Go à SIMDã§é«éåãããã¯ãã«æ€çŽ¢ ~ ã«ãŒãã©ã€ã³ã¢ãã«ã§SIMDãå¹ãå¢çãæ¢ãïŒ SIMDãšã¯ GoããSIMDã䜿ã ãã³ãããŒã¯ã§å¹æã確èªãã int8éååã§ããŒã¿éãæžãã ã¯ãŒã¯ã·ã§ãããäœéšã㊠ãŸãšã éå
¬åŒã¢ãã¿ãŒã€ãã³ã Go BASH Vol.3 ã®ãç¥ãã æåŸã« ã¯ããã« 2026幎9æ11æ¥(é)ã«äžéã»ã³ãã©ã«ããŒã¯ã§éå¬ããããGo Conference 2026ãã«ä»å¹Žãåå ãããŠããã ããŸããïŒ ä»å¹Žãåå ã¬ããŒããšããŠãäŒå Žã®æ§åãã»ãã·ã§ã³ã®ææ³ã«ã€ããŠãå±ãããŸãïŒ gocon.jp ä»å¹Žã®ããŒãã¯ã Go Far, Go Together ãã§ããã Go Far, Go Together ãã®ããŒãã®éãã人ãšã®ç¹ãããéèŠèŠããŠããããšã匷ãæããããã«ã³ãã¡ã¬ã³ã¹ã ã£ããšæããŸãã sanposhiho ããã®Keynoteã»ãã·ã§ã³ãOpen Source, Open Worldãã«å§ãŸãã speakerdeck.com ã³ãã¥ãã±ãŒã·ã§ã³ã¹ããŒã¹ã®Go Context WallãäŒGoæ¿ãã¹ãã³ãµãŒããŒã¹ãé£æåºŠå¥ã»ãã·ã§ã³ã»ã¯ãŒã¯ã·ã§ããããããŠæåŸã¯æèŠªäŒãšãGoãå§ãããŠã®äººã§ããçç·Žã®æ¹ã§ãæåããæåŸãŸã§æ¥œãããã«ã³ãã¡ã¬ã³ã¹ã ã£ãã®ã§ã¯ãªãããªãšæããŸãã ãšããªãŒã®ã¹ãã³ãµãŒããŒã¹ ãšããªãŒã¯ä»å¹Žã¯ Silver ã¹ãã³ãµãŒãšããŠããŒã¹ãåºå±ãããŠããã ããŸããïŒ åŒç€ŸãµãŒãã¹ã§ããããªãã·ã¥ãããã³ãã€ã¡ãŒãžããé»è²åºèª¿ã®ããŒã¹ãšãªã£ãŠããŸãã ãšããªãŒããŒã¹ ããŒã¹ã«è¶³ãéãã§ããã ããçæ§ãæ¬åœã«ããããšãããããŸããïŒ ã¢ã³ã±ãŒãããŒã æšå¹Žã«åŒãç¶ãã¢ã³ã±ãŒãããŒããçšæããŸããïŒ ãããªãã®Goè峿ããŠãã ããããšããããŒãã§ãGoæŽ (Goã®å©çšæŽ)ãšæ°ã«ãªããããã¯ã亀ããå Žæã«ã·ãŒã«ã貌ã£ãŠããã ããŸããã æçµçµæã¯ãã¡ãã§ãïŒ ã¢ã³ã±ãŒãçµæ GoæŽ0ã15幎以äžã®æ¹ãŸã§å¹
åºãGopherã«åçããã ããŸããããGoæŽ0ã1å¹Žã®æ¹ã¯èšèšææ³ãããçšåºŠçµéšã®ããæ¹ã¯ææ°ã®Go1.27ã®ãããã¯ã«é¢å¿ãè¥å¹²å¯ã£ãŠãããšãããé¢çœãéšåã§ããã ãŸãã©ã®GoæŽã®æ¹ãGoãšAIã«å¯ŸããŠé¢å¿ããããã©ããªAI Agentã瀟å
ã§äœ¿ãããŠããã®ãããŸãã©ã®ããã«Harnessãäœã£ãŠããã®ããšãã£ã話é¡ã«ã€ããŠããŒã¹ã§ã¯ããããã話ãããããšãã§ããŸããïŒ é£ã¯ã€ãºã»ããåŒã ä»å¹Žããå°å
¥ããæ°ããããŒã¹äŒç»ã§ãããã¯ã€ãºãéåžžã«çãäžãããŸããïŒ ã¯ã€ãºã¯é£ã«é¢ããåé¡2åãGoã«é¢ããåé¡2åã®èš4åã§æ§æãããŠããŸãã æçµåé¡ã®Goã®å®è¡çµæãçããã¯ã€ãºã§ãèšèªä»æ§ãçè§£ããŠããªããšè§£ããªãã£ãããèããããšããªãã£ããŠãŒã¹ã±ãŒã¹ã«å¯ŸããŠåçããå¿
èŠããã£ãããšãé£ããã«èšå®ããã ããã£ãŠèŠæŠããŠããåå è
ã®æ¹ãå€ãèŠãããŸããã ã¯ã€ãº ããã«ã㣠æ¯åã¯è»œéã¹ããŒã³ããŸãªæ¿ãè箞ããããããªã©æ®æ®µã®æçã§äœ¿ãããããã³ã°ããºã§ãã ããªãã·ã¥ãããã³ã°ã㺠ããºã¬ãåŒããæ¹ã«ããåŒç€ŸCTOãèªããã€ã¹ãã£ã³ã°ããŠéžãã ãCTOãã¬ã³ããã®ã³ãŒããŒãšã¹ããã«ãŒããæž¡ãããŸããã CTOãã¬ã³ã CTOãã¬ã³ãã®å¶äœç§è©±ã«ã€ããŠã¯äžèšãåç
§ãã ããã 人々へ明るい変化を提供する、オリジナルブレンドコーヒー「every CTO Blend」を制作 ãããã³ã°ããºãåœãã£ãæ¹ããã¯ããæè¿èªçãå§ããã®ã§ããã䜿ã£ãŠé 匵ããŸãããšãã£ãææ³ããããŸãã«ä»æ¬²ããã£ããã®ãªã®ã§å¬ããã§ãããšãã£ãææ³ãããã ããŠéå¶ãšããŠãå¬ããã£ãã§ãïŒ ãŸãããã®ããåŒãã§åœéžãããŸãªæ¿ãä»ã§ã䜿ã£ãŠãããšããæ¹ãããããšãäœåºŠãã€ãã³ãã«åºå±ããŠãããšããããããšãããã®ããšå¬ãããªããŸããã ã»ãã·ã§ã³çŽ¹ä» Go ã«ããã FFI ã®ãããŸã§ãšãããã çºè¡šè
: goccy ããïŒæ ªåŒäŒç€ŸLayerXïŒ ã¬ããŒã: ãããããŸããšã ã¹ã©ã€ã: speakerdeck.com é£äºç®¡çã¢ã㪠ãã«ã·ã« ãæ
åœããŠãã ãããããŸããšã ã§ããç§ããã¯ãgoccy ããã®çºè¡šãGo ã«ããã FFI ã®ãããŸã§ãšãããããã«ã€ããŠç޹ä»ãããŠããã ããŸãã FFIïŒForeign Function InterfaceïŒã¯ãåäžããã»ã¹å
ã§ãããèšèªã§æžãããããã°ã©ã ããä»ã®èšèªã§å®è£
ãããæ©èœãåŒã³åºãããã®ä»çµã¿ã§ããæ¬ã»ãã·ã§ã³ã§ã¯ãåŸæ¥ã® cgo ãäœ¿ãæ¹æ³ãšããã«å¯Ÿãã課é¡ãããgoccy ããã«ãã WebAssembly ãæŽ»çšããæ°ããæ¹æ³ãŸã§ã玹ä»ããŠããã ããŸããã cgo ãšãã®èª²é¡ ã¹ã©ã€ã 3ã15 ããŒãž FFI ã§ã®åŒã³åºãã¯ãABIïŒApplication Binary InterfaceïŒãšããããã€ããªéã§é¢æ°ãåŒã³åºãããã®çŽæãã«åãããŠè¡ãå¿
èŠããããŸããGo ã§ã¯ããã® ABI ã«åãããåŒã³åºãã cgo ãåŒãåããŠããŸãã çºè¡šã®åºç€ã§ã¯ãcgo ãæ±ãã課é¡ã3ã€ã®èгç¹ããæŽçãããŠããŸããã ã¡ã¢ãªç®¡ç : Go ãš C ã§ã¯ã¡ã¢ãªã®ç®¡çãåãããŠããããã¡ã¢ãªãªãŒã¯ãèµ·ãããããC åŽã§ã»ã°ã¡ã³ããŒã·ã§ã³éåïŒSIGSEGVïŒãèµ·ãããš Go ã®ããã»ã¹ããšèœã¡ãŸããããã«äž¡è
ã¯ã¢ãã¬ã¹ç©ºéãå
±æããŠããã®ã§ãC åŽã®äžå
·åã§ Go åŽã®ã¡ã¢ãªãèªã¿æžãã§ããŠããŸããŸãã å倿 : æ§é äœãžã®ãã€ã³ã¿ããã³ãŒã«ããã¯ã®ããã®é¢æ°ãã€ã³ã¿ã®åãæž¡ããè€éã«ãªããŸããçžæã C++ ã ãšããã«é£ãããªããŸãã éçºã»ããã〠: C ã³ã³ãã€ã©ãå¿
èŠã«ãªããã Go ã®ã¯ãã¹ã³ã³ãã€ã«ã®æè»œãã倱ãããGo ã®ãããã¡ã€ã©ããããã¬ã C åŽã®ã³ãŒãã«ã¯äœ¿ããŸããã ãã®ããã§ããã€ã³ã¿ã®ã©ã€ããµã€ã¯ã«ç®¡çãã³ãŒã«ããã¯ã®å®è£
ãéçãªã³ã¯ã«ããã·ã³ã°ã«ãã€ããªåãšãã3ã€ã®ãã¯ããã¯ã玹ä»ãããŸããããã ããããã¯å¯Ÿççæ³ã§ãã¡ã¢ãªã®ç®¡çãåãããŠããããšã C ã³ã³ãã€ã©ãå¿
èŠã«ãªãããšã¯ãcgo ã䜿ãéãå€ãããŸããã æ®æ®µã¯ Go ã ãã§å®çµããéçºãããŠããã®ã§ cgo ãæžãæ©äŒã¯å
šããªãã®ã§ããã課é¡ã詳ãã玹ä»ããŠããã ããããŸã掻çšãããŠããªãçŸç¶ãé£ããã«ããªãçŽåŸããŸããã WebAssembly ã䜿ã£ã FFI ã¹ã©ã€ã 16ã23 ããŒãž ãããŸã§ã®èª²é¡ãèžãŸããŠããã¡ã¢ãªãå®å
šã«æ±ãããããGo ã®ã¯ãã¹ã³ã³ãã€ã«ã®æ©æµãåãããããšããåæ©ãã WebAssemblyïŒWASMïŒãäœ¿ãæ¹æ³ã玹ä»ãããŸããã WASM ã¢ãžã¥ãŒã«ã¯ãèªåå°çšã«å²ãåœãŠãããé£ç¶ããã¡ã¢ãªé åïŒãªãã¢ã¡ã¢ãªïŒããèªã¿æžãã§ããªãããããã¹ããšã¢ãã¬ã¹ç©ºéãå®å
šã«åé¢ãããŸããç¯å²å€ã¢ã¯ã»ã¹ã¯ããã»ã¹ã®ã¯ã©ãã·ã¥ã§ã¯ãªã Go ã®ãšã©ãŒã«ãªããŸããã·ã¹ãã ã³ãŒã«ãããã¹ããèš±å¯ãããã®ã ãã WASI çµç±ã§å®è¡ãããŸããWASI 㯠WebAssembly System Interface ã®ç¥ã§ãWASM ãããã¡ã€ã«ããããã¯ãŒã¯ãšãã£ããã¹ãåŽã®æ©èœã䜿ãããã®æšæºã€ã³ã¿ãŒãã§ãŒã¹ã§ããGo åŽã¯ WASM ã embed ã§åã蟌ã¿ãPure Go ã®ã©ã³ã¿ã€ã ã§ãã wazero ã§å®è¡ããã®ã§ãå
ã»ã©ã®èª²é¡ã®å€ãã¯ããã§è§£æ¶ãããŸãã ãã ããC/C++ ãããžã§ã¯ããã WASM ãäœãããšèªäœãé£ãããã¢ãã¬ã¹ç©ºéã®ç°ãªããã¹ããšã®ããªããžãæžãã®ãç°¡åã§ã¯ãããŸãããcgo ãªãæååã®ã¢ãã¬ã¹ãšé·ããæž¡ãã ãã§æžããšããããWASM ã§ã¯ãªãã¢ã¡ã¢ãªäžã«é åã確ä¿ããããã«ãã¹ãåŽããæžã蟌ãå¿
èŠããããŸããå®å
šã®ããã«å¢çãåŒããåããã®å¢çããŸããã³ãŒãã¯èªåã§æžãããšã«ãªããŸãã wasmify ãš wasm2go ã¹ã©ã€ã 24ã50 ããŒãž çºè¡šã®åŸåã¯ããã®å¢çãè¶ããæéãæžããããã« goccy ãããéçºããããŒã«ã®è©±ã§ããã wasmify ã¯ãC/C++ ã©ã€ãã©ãªãã FFI çšéã® WASM ãšããªããžã³ãŒããçæããæé ãæœè±¡åãããAI ãšãŒãžã§ã³ãã®ããŒãã¹ãšããŠå©çšã§ããããŒã«ã§ãããããžã§ã¯ãããšã«å€§ããç°ãªããã«ãæé ã®éšå㯠AI ã«åžåããŠããããæ£èŠåããèšå®ããã¡ã€ã«ã«æ®ãããšã§ãCI ãªã©ã§ã¯ AI ãªãã§åãçµæãåçŸã§ããããã«ããŠããŸããéæ±ºå®çãªéšåã ãã AI ã«ä»»ãããã®çµæãåºå®ããŠåªçæ§ãæ
ä¿ãããšããèšèšã¯ãFFI ã«éãã AI ãéçºã«çµã¿èŸŒããšãã®èãæ¹ãšããŠåèã«ãªããŸããã ãšããããwasmify ã§äœãçŽãã Pure Go çã® bigquery-emulatorïŒBigQuery ã®ããŒã«ã«ãšãã¥ã¬ãŒã¿ïŒã«ã€ããŠã¯ããªãªãŒã¹ã®ç¿æ¥ããããã©ãŒãã³ã¹äœäžã®å ±åãçžæ¬¡ãã ããã§ããããã±ãŒã¹ã§ã¯ 0.6 ç§ã ã£ãåŠçã 17.3 ç§ãšãçŽ30åã®1ã®é床ã«ãªã£ãŠãããšã®ããšã§ããããã®åé¡ãžã®å¯ŸåŠãšããŠéçºãããã®ã wasm2go ã§ãWASM ã Go ãš Plan9 asm ã«å€æããŠããŸããšããã¢ãããŒãã§ããã¡ã¢ãªãåé¢ãããŠãããšãã WASM ã®æ§è³ªã¯ä¿ã£ããŸãŸã倿åŸã¯ WASM ç±æ¥ã®å®è¡æã®å¶éãåããªããããæé©åã®äœå°ãçãŸããŸãã ããããwasm2go ã«ã課é¡ã¯ãããŸãããããšãã°ã倿åŸã® Go ã³ãŒãã巚倧ã«ãªãããããã®ãŸãŸã§ã¯ã¡ã¢ãªäžè¶³ã§ã³ã³ãã€ã«ãéããªããªã£ãŠããŸããŸããããã«å¯ŸããŠã¯ãã³ã³ãã€ã«ã®åäœãåããŠäŸåé¢ä¿ãçŽåã«ããããã§çãã埪ç°åç
§ã go:linkname ã§åé¿ãããšãã解決çãåãããŠããŸããã go:linkname ã¯ãåŒã³ãã颿°ãå®çŸ©ãããŠãã package ã import ããã«ãã®é¢æ°ãåç
§ã§ããã³ã³ãã€ã©ãã£ã¬ã¯ãã£ãã§ããã»ãã®èª²é¡ãžã®å¯ŸåŠãå«ããã©ãã Go ã®åŠçç³»ãããŒã«ãã§ãŒã³ã®æåãèžãŸããè§£ãæ¹ã§ãããã¯èããŠããŠäžçªé¢çœãã£ãã§ãã æåŸã«ãwasm2go ã®ææç©ãšã㊠go-googlesql ã go-pythonãgo-llama ãšãã£ã Pure Go å®è£
ãå
¬éãããŠããããããã Go ããçµã¿åãããŠåŒã³åºã Cross Language Binding ããGo ã®ããã® Agent Sandbox ãšãã£ãå¿çšå
ã玹ä»ãããŸããã ææ³ goccy ããã¯ã»ãŒæ¯å go:linkname ã®è©±ããããŠããããã§ããçºè¡šã®æ¬çã§ã¯ãªãã§ãããä»åãåŸåã§åŸªç°åç
§ã®è§£æ¶ã®æèã§ç»å ŽããŸãããåã㊠goccy ããã®çºè¡šãèãæ©äŒãé ããã®ã¯ãä»å¹Ž2æã® Go Conference mini in Sendai 2026 ã§ããããåœæã¯äœã®ããšãåãããå°æããç¶æ
ã§èããã®ãèŠããŠããŸãã speakerdeck.com ä»åã¯ãã® go:linkname ãäœããç¥ã£ãç¶æ
ã§èšãããšãã§ããã®ã§ãååãããæ¥œããæèŽãããŠããã ããŸããã人ã®è©±ãèããŠç¥ããã£ãããããããåãããæè¡ã楜ãããããã«ãªã£ãŠããŸãããã§ç¥ããªãããšãç¥ãããã®ç¹°ãè¿ããèµ·ããã®ããã«ã³ãã¡ã¬ã³ã¹ãšããå Žæã®çŽ æµãªãšããã ãªãšæããŸãã goccy ãããè峿·±ãçºè¡šãããããšãããããŸããïŒãããŠããšããªãŒããŒã¹ã«ãæ¥ãŠããã ãããããšãããããŸããïŒçŽæ¥ææ³ãäŒããããŠå¬ããã£ãã§ãïŒ ã¯ãŒã¯ã·ã§ããçŽ¹ä» go.devã®æ©ãæ¹ããã®å
ãž ãGoå
¬åŒãªãœãŒã¹ã®æ
ãææ¥ããã®èª¿ã¹æ¹ãæã«å
¥ããã¯ãŒã¯ã·ã§ããã è¬åž«: Koki Narumi ããïŒANDPADïŒ ã¬ããŒã: éæ ããã«ã¡ã¯ãéçº1éšã§ããªãã·ã¥ãããã³ã®ãã¬ãã¢ã æ©èœãéçºããŠããæ°åãšã³ãžãã¢ã® éæ ã§ãã ç§ã¯ã¯ãŒã¯ã·ã§ãããgo.devã®æ©ãæ¹ããã®å
ãžãã«åå ããŸããã åå ããçç± Go æŽã¯ 4 ã¶æã»ã©ã§ãã Go ã§ããããªãããšããã£ããšããAI ã«èããŠæžãŸããããšãã§ããŸãããèªåã®æã§èª¿ã¹ãæ¹ãçè§£ã¯æ·±ãŸããšæããŠããŸããã AI ã®åçãééã£ãŠããå¯èœæ§ãé ã«çœ®ããªããé²ãããããã®åçãæ£ãããã確ããããããããã«ããå
¬åŒããã¥ã¡ã³ãã調ã¹ãåããã£ãæ¹ããããšèããŠåå ããŸããã ããã©ã³ã®æ¹ã
ãå
¬åŒããã¥ã¡ã³ããã©ã®ããã«èªãã§ããã®ãã«ãèå³ããããŸããã ã¯ãŒã¯ã·ã§ããã®æµã åœæ¥ã¯ andpad-dev/gotan ãªããžããªã®ææã«æ²¿ã£ãŠãæ¬¡ã®æµãã§é²ã¿ãŸããã ãªããžããªã®èª¬æ åçŽãäžçŽãäžçŽã®ã¬ãã«ããšã«åãã㊠4 人ã®çãçµã çããšã« GitHub ã® Issue ã 1 ã€æã¡ãããã«èªå·±ç޹ä»ãæžã蟌ã çã§ã«ããŽãªãšããŒããéžã¶ èšåããšã« 2 人ã«åãããŠèª¿æ»ãã調æ»çµæã Issue ã«æžã蟌ãã§ãã çãåãã ç§ã¯ Go æŽãæµ
ãã®ã§åçŽãéžã³ãŸããã ã«ããŽãªã¯æ¬¡ã® 4 ã€ããéžã³ãŸãã Go ã®æšæºããã±ãŒãž Go ã®æ©èœãææ³æ§é Go ã®ã³ãã³ã Go ã®èšèªä»æ§ãæšæºã©ã€ãã©ãªã®å®è£
ãèšèšã®èæ¯ ç§ãã¡ã®çã¯ãGo ã®ã³ãã³ãããéžã³ãŸããã åçŽã«ã¯ 3 ã€ã®ããŒããããããã®äžãã go run ã®ããŒã ãéžã³ãŸããã ããŒãã«ã¯èšåã 3 ã€ãããç§ã¯èšå2ãgo run ã§ãã«ããããå®è¡ãã¡ã€ã«ã $WORK ãã£ã¬ã¯ããªã¯ãå®è¡åŸã©ããªããããæ
åœããŸããã åèšåã«ã¯ãã³ããšçããçšæãããŠããŠãå¿
èŠã«ãªã£ããšãã«èªãã圢ã«ãªã£ãŠããŸãã èšå2 ã®èª¿æ» ããã§ã¯ãèšå2 ãã©ã調ã¹ãŠãã£ããã玹ä»ããŸãã èšå1ãšèšå2ã¯ã€ãªãã£ãŠããã®ã§ããŸãèšå1ã«ãç®ãéããŸããã æåã¯æãããããªãã£ããããçãã«è¿ã¥ããããªãããã«ãã³ãããã£ãšçºããããã«æžãããŠããã³ãã³ãããŸãå®è¡ããŠã¿ãããšã«ããŸããã go run -a -x main.go 2 > first.log ãã® -a ãš -x ãäœããããã©ã°ãªã®ãã調ã¹ãŸããã èª¿ã¹æ¹ã¯ 03-cmd-tools ã® README ã«ã¬ã€ããããããããèŠãªããé²ããŸããã go help build ã§ãèªããŸãããä»å㯠pkg.go.dev/cmd/go ãããŒãžå
æ€çŽ¢ããŠç¢ºãããŸããã -a : ãã§ã«ææ°ç¶æ
ã«ããããã±ãŒãžã匷å¶çã«åãã«ããã -x : å®è¡ããã³ãã³ãã衚瀺ãã first.log ãéããšã1 è¡ç®ã« $WORK ãã£ã¬ã¯ããªã®ãã¹ãæžãããŠããŸããã WORK=/var/folders/bj/1bpczlgx0nxd7gyh6k1gxnhm0000gp/T/go-build2456729570 ããã§ $WORK ã«ç§»åããããšããŸãããããã®ãã£ã¬ã¯ããªã¯ãã§ã«ååšããŸããã§ããã cd: no such file or directory: /var/folders/bj/1bpczlgx0nxd7gyh6k1gxnhm0000gp/T/go-build2456729570 first.log ã®æ«å°ŸãèŠããšãå®è¡ãã¡ã€ã«ã cp ããŠããè¡ããã£ãã®ã§ããã®ã³ããŒå
ã«ç§»åããŠã¿ãŸããïŒ çã®èª¿æ»ãã° ïŒã cp $WORK/b001/exe/main /Users/yuto.nomura/Library/Caches/go-build/96/9677dc4b2f735a2ab8ac9be91e1f1c1ce061dcd1e81e39106ac0b016771e252e-d/main # internal $WORK/b001/exe/main ã³ããŒå
ã«ã¯ main ã®å®è¡ãã¡ã€ã«ãæ®ã£ãŠããŸããã ã€ãŸã $WORK ãã£ã¬ã¯ããªã¯åé€ãããŠããããå®è¡ãã¡ã€ã«ã¯ãã£ãã·ã¥ãšããŠæ®ã£ãŠããããšããããšã«ãªããŸãã æ¬¡ã«ãæè©°ãŸãã ã£ãã®ã§ããäžåºŠãã³ããèªã¿ãŸããã æ¬¡ã®ãããªãã³ãã«æ³šç®ããŸããã go help build ã®ãã©ã°äžèЧãçºããäžæãã£ã¬ã¯ããªã«èšåããŠãããã©ã°ãæ¢ããŠã¿ãŸããããèŠã€ãããã©ã°ã®èª¬ææãèªã¿ãããããããã©ã«ãã§ã¯è¡ãããªãããšã远å ã§è¡ãããã©ã°ãªã®ãããããã©ã«ãã®åäœãæ¢ããããã©ã°ãªã®ããèŠåããŠã¿ãŸãããã ããã§ãåã³ pkg.go.dev/cmd/go ã§ãã©ã°äžèЧã調ã¹ãŸããã ãããš -work ãšãããã©ã°ãããããäžæäœæ¥ãã£ã¬ã¯ããªã®ååã衚瀺ããçµäºæã«ãããåé€ããªãããšèª¬æãããŠããŸããã ãã®äžæäœæ¥ãã£ã¬ã¯ããªããå
ã»ã©ãã調ã¹ãŠãã $WORK ãã£ã¬ã¯ããªã§ãã ã€ãŸãã -work ãä»ããªããš $WORK ã¯å®è¡åŸã«åé€ãããŸãã ããã§ -work ãä»ããŠå®è¡ããŸããã go run -a -work main.go ä»åºŠã¯ $WORK ãã£ã¬ã¯ããªã«ç§»åã§ããäžã«å®è¡ãã¡ã€ã«ããããŸããã ããã§æéããªããªããçãåããã®æéã«ãªããŸããã çãåããã®äžã§ã -a ãšãã£ãã·ã¥ã®é¢ä¿ãçè§£ããŸããã æ¬¡ã® 2 ã€ã®ã³ãã³ããå®è¡ããŠæ¯ã¹ãŸãã go run -a -work main.go go run -work main.go -a ããã§ã¯ $WORK ã®äžã«äžéãã¡ã€ã«ãšå®è¡ãã¡ã€ã«ããããŸãããã -a ãªãã§ã¯ $WORK ã®äžã¯ç©ºã§ããã çãã®äžã§åç
§ãããŠãã Go 1.24 ã®ãªãªãŒã¹ããŒã ãèªã¿ãŸããã æ¬¡ã®ããã«æžãããŠããŸãã Executables created by go run and the new behavior of go tool are now cached in the Go build cache. This makes repeated executions faster at the expense of making the cache larger. See #69290. ã€ãŸããGo 1.24 ãã go run ã§ãã«ãããå®è¡ãã¡ã€ã«ããã«ããã£ãã·ã¥ã«ä¿åãããããã«ãªã£ãããšããããšã§ãã -a ãä»ãããš $WORK ã®äžã§ãã«ããå®è¡ãããã§ããå®è¡ãã¡ã€ã«ããã£ãã·ã¥ã«æ®ããŸãã -a ãä»ããªãå ŽåããœãŒã¹ã«å€æŽããªããã°ãã«ããçç¥ããŠãã£ãã·ã¥æžã¿ã®å®è¡ãã¡ã€ã«ããã®ãŸãŸå®è¡ããããã $WORK ã¯äœããããã®ã®äžèº«ã¯ç©ºã«ãªããŸãã 以äžãããèšå2ã®çãã¯æ¬¡ã® 3 ç¹ã§ãã äœããã©ã°ãä»ããªãå Žåã $WORK ãã£ã¬ã¯ããªã¯äžæçã«äœæãããå®è¡ãçµãããšåé€ããã $WORK ã®äžã«ãã£ãå®è¡ãã¡ã€ã«ã¯ããã«ããã£ãã·ã¥ã®ãã£ã¬ã¯ããªã«ä¿åããã -work ãä»ãããšã $WORK ãã£ã¬ã¯ããªãåé€ãããã«æ®ã ã¯ãŒã¯ã·ã§ããã§åŸãããš ä»åã®ã¯ãŒã¯ã·ã§ããã§ã¯ã go help ãš pkg.go.dev ãé Œãã«å
¬åŒããã¥ã¡ã³ããèªã¿é²ããããšãã§ããŸããã å
¬åŒããã¥ã¡ã³ãã®èªã¿é²ãæ¹ãšããç¹ã§ã¯ã次ã®ããšãæèããŸããã go help ã³ãã³ããåããŠè§Šãããã®äžèº«ãçè§£ãããšããã¹ããããèžãã ããšã§ãå
¬åŒããã¥ã¡ã³ããèªãããšãžã®ããŒãã«ãå°ãäžãããŸããã å
¬åŒããã¥ã¡ã³ãã¯ç¿»èš³ããŠèªãã§ãããšç¥ã£ãããšã§ãããŒãã«ãäžããã調ã¹ããããªããŸããã ãã®ããã§ãããŒãžå
æ€çŽ¢ã§å
¬åŒããã¥ã¡ã³ããæ€çŽ¢ããªããå°éã«èªãã§ããããšãæèããŠåãçµã¿ãŸããã ä»åã®ããŒããã³ãã³ãããŒã«ã ã£ãã®ã§ãã³ãã³ãããŒã«ã®èª¿ã¹æ¹ãšããŠæèããããšããããŸãã go run ãå®éã«åãããŠèгå¯ãããã©ã«ãããã¡ã€ã«ãååšãããã確ããããããã©ã°ãä»ããŠæåãã©ãå€ããããèŠããããŸããã å ããŠãæ®æ®µäœ¿ã£ãŠããã³ãã³ãããŒã«ã¯ã©ã®ããã«åããŠããã®ã ãããšèªåãªãã®ä»®å®ãæã£ãŠã¿ããšãçåãæµ®ãã³ãããè¯ã調æ»ãã§ãããšæããŸããã äžæ¬¡æ
å ±ãæŒãããªããé²ããã®ã§ãçè§£ãç©ã¿äžãã£ãŠããæèŠããããŸããã äžæ¬¡æ
å ±ã«ãããçµéšã«å ããŠã go run ã®ä»çµã¿ãžã®çè§£ãæ·±ãŸããä»ã®ã³ãã³ããåãããæ¹ã§èª¿ã¹ãŠã¿ãããªããŸããã ä»åŸ Go ãåŠã¶ãšãã«ãããã®èª¿ã¹æ¹ã䜿ã£ãŠããããã§ãïŒ Go à SIMDã§é«éåãããã¯ãã«æ€çŽ¢ ~ ã«ãŒãã©ã€ã³ã¢ãã«ã§SIMDãå¹ãå¢çãæ¢ãïŒ è¬åž«: Hiromu Nakamura ãã ã¬ããŒã: é»é« ããã«ã¡ã¯ãéçºæ¬éšã® é»é« ã§ããæ®æ®µã¯ ããªãã·ã¥ãããã³ ã®éçºã«æºãã£ãŠããŸãã ç§ã¯ã Hiromu Nakamura ããã«ããã¯ãŒã¯ã·ã§ããã Go à SIMDã§é«éåãããã¯ãã«æ€çŽ¢ ~ ã«ãŒãã©ã€ã³ã¢ãã«ã§SIMDãå¹ãå¢çãæ¢ãïŒ ~ ãã«åå ããŸããã ãã®ã¯ãŒã¯ã·ã§ããã§ã¯ãGoã§SIMDãäœ¿ãæ¹æ³ã«å ããŠãèšæž¬çµæããããã«ããã¯ãèŠæ¥µããæ¬¡ã®é«éåææ³ãéžã¶é²ãæ¹ãåŠã³ãŸããæææ¬ç·šã¯ãæ¬¡ã®æµãã§æ§æãããŠããŸãã ãã¯ãã«æ€çŽ¢ãšSIMDã®ä»çµã¿ãGoã§ã®äœ¿ãæ¹ãç¥ã ãã«ãŒãã©ã€ã³ã¢ãã«ãã§èšç®èœåãšã¡ã¢ãªåž¯åããæ§èœã®äžéãèãããã·ã³ã®äžéãæž¬ã ã¹ã«ã©çã®å
šæ¢çŽ¢ãåºæºãšããŠæž¬ãïŒStage 0ïŒ å
ç©ã®èšç®ãSIMDã§é«éåããïŒStage 1ïŒ int8éååã§ããŒã¿éãæžããïŒStage 2ïŒ 1bitéååã§ããã«ããŒã¿éãæžãããéåºŠãšæ€çŽ¢ç²ŸåºŠã®å€åãèŠãïŒStage 3ïŒ çµã蟌ãã åè£ãå
ã®float32ã§åæ¡ç¹ããæ€çŽ¢ç²ŸåºŠãå埩ããïŒStage 4ïŒ ç§ã¯Stage 2ãŸã§åãçµã¿ãŸãããããã§ã¯ãSIMDã®æ©èœãšãå®éã«ç¢ºèªã§ããé«éåã®å¹æãäžå¿ã«ç޹ä»ããŸãã è³æãšææã¯ä»¥äžã§å
¬éãããŠããŸãã speakerdeck.com github.com 顿ã¯ã384次å
ã®ãã¯ãã«10äžä»¶ãããã¯ãšãªãšã®å
ç©ã倧ããäžäœ10ä»¶ãæ¢ãåŠçã§ãããã¯ãã«æ€çŽ¢ã§ã¯ãæç« ãªã©ãæ°å€ã®äžŠã³ã§è¡šãããã®è¿ãã䜿ã£ãŠæ€çŽ¢ããŸãã SIMDãšã¯ SIMD ïŒSingle Instruction, Multiple DataïŒã¯ã1ã€ã®åœä»€ã§è€æ°ã®ããŒã¿ã«åãæŒç®ãé©çšããCPUã®æ©èœã§ãããã®åãããä»åã®ã¯ãŒã¯ã·ã§ããã§æ±ãå
ç©èšç®ãäŸã«èŠãŠã¿ãŸãã å
ç©ã¯ã2ã€ã®ãã¯ãã«ã®åãäœçœ®ã«ããèŠçŽ ãæãåããããã®çµæããã¹ãŠè¶³ãèšç®ã§ãã8èŠçŽ ã®ãã¯ãã«ãªããæ¬¡ã®ããã«ãªããŸãã a = [1, 2, 3, 4, 5, 6, 7, 8] b = [2, 3, 4, 5, 6, 7, 8, 9] å
ç© = 1Ã2 + 2Ã3 + 3Ã4 + 4Ã5 + 5Ã6 + 6Ã7 + 7Ã8 + 8Ã9 = 2 + 6 + 12 + 20 + 30 + 42 + 56 + 72 = 240 Goã§çŽ çŽã«æžããšã次ã®ããã«ãªããŸãã var sum float32 for i := range a { sum += a[i] * b[i] } ãã®ã«ãŒãã§ã¯ã a[i] ãš b[i] ã1çµãã€æãããã®çµæã1ã€ã®å€æ° sum ã«è¶³ããŠãããŸãã8èŠçŽ ãªãããã®åŠçã8åç¹°ãè¿ããŸãããã®ããã«ãæŒç®ã§å€ã1èŠçŽ ãã€æ±ãã®ã ã¹ã«ã©åŠç ã§ãã äžæ¹ã8èŠçŽ ãæ±ããSIMDåœä»€ãªãã 1Ã2 ãã 8Ã9 ãŸã§ã®æãç®ããŸãšããŠå®è¡ã§ããŸããæãç®ã®éšåã«æ³šç®ãããšãã¹ã«ã©åœä»€ã§ã¯8åããããšããããSIMDåœä»€ãªã1åã§åŠçã§ããŸããæãç®åœä»€ã®å®è¡åæ°ã¯1/8ã§ãã SIMDã§8çµã®æãç®ã1åœä»€ã§å®è¡ããçµæãåèšããŠå
ç©ãæ±ããæš¡åŒå³ å³1ïŒSIMDã§8çµã®æãç®ããŸãšããŠå®è¡ãããã®çµæãåèšããŠå
ç©ãæ±ããŸãã ã©ã¡ãã8çµã®æãç®ãè¡ããŸãããSIMDã§ã¯ããã1ã€ã®åœä»€ã«ãŸãšããããŸããSIMDã§ãŸãšããŠæããçµæã¯ [2, 6, 12, 20, 30, 42, 56, 72] ãšãã8åã®å€ãªã®ã§ãå
ç©ãåŸãã«ã¯æåŸã«ããããåèšããåŠçãå¿
èŠã§ãã ãã®ããã«ãåãæŒç®ã倧éã®èŠçŽ ã«ç¹°ãè¿ãåŠçã§ã1åœä»€ãããã«åŠçã§ããèŠçŽ ãå¢ãããããšãSIMDã®äŸ¿å©ãªç¹ã§ããä»åã®æ€çŽ¢ã§ã¯ã384èŠçŽ ã®å
ç©ã10äžä»¶ã®ãã¯ãã«ã«å¯ŸããŠç¹°ãè¿ããããSIMDã«ããé«éåãæåŸ
ã§ããŸããSIMDã¯1ã€ã®CPUã³ã¢ã®äžã§ãå©çšã§ããä»çµã¿ã§ãã GoããSIMDã䜿ã Go 1.27ã§ã¯ãå®éšçãªããã±ãŒãž simd/archsimd ã䜿ããGoã®åãã¡ãœããã§CPUåºæã®SIMDæŒç®ãæ±ããŸãã archsimd èªäœã¯Go 1.26ã§å°å
¥ããã1.27ã§ã¯APIã®æ¹èšãarm64ã»WebAssemblyãžã®å¯Ÿå¿ã远å ãããŠããŸãããŸã APIã¯å®å®ããŠãããããã«ãæã« GOEXPERIMENT=simd ãæå®ããŠæå¹åããŸãïŒ Go 1.27ãªãªãŒã¹ããŒã ïŒã CPUã«ã¯ãèšç®äžã®å€ã眮ã ã¬ãžã¹ã¿ ãšããå°ããªèšæ¶é åããããŸããä»åã®amd64åãå®è£
ã§ã¯ã256bitå¹
ã®SIMDã¬ãžã¹ã¿ãå©çšããŸãã float32 ã¯1å32bitãªã®ã§ã1ã€ã®ã¬ãžã¹ã¿ã«8åã®å€ãå
¥ããŸãããã®1èŠçŽ ã¶ãã®åºç»ã ã¬ãŒã³ ãšåŒã³ãŸãã Goã§ã¯ããã®ã32bitã®å€ã8ã¬ãŒã³ããšãã圢ã archsimd.Float32x8 ãšããåã§è¡šããŸããå
ã»ã©ã®å³ãšåããã8èŠçŽ ããŸãšããŠæ±ããŸããæ¬¡ã®ã³ãŒãã¯ã384èŠçŽ ãã a ãš b ã®ãã¡ãå
é 8èŠçŽ ãåŠçããéšåã瀺ãããã®ã§ãã var acc archsimd.Float32x8 // 8ã¬ãŒã³ãšãåæå€ã¯0 va := archsimd.LoadFloat32x8(a) // aã®å
é 8èŠçŽ ãèªã vb := archsimd.LoadFloat32x8(b) // bã®å
é 8èŠçŽ ãèªã acc = va.MulAdd(vb, acc) // åã¬ãŒã³ã§vaÃvbãaccãžè¶³ã LoadFloat32x8 ã¯ãã¹ã©ã€ã¹ãã8èŠçŽ ãèªã¿èŸŒã颿°ã§ãã va ãš vb ã«ã¯ãããã8åã®å€ãå
¥ãã acc ã«ãéäžçµæããããå Žæã8åãããŸãã va.MulAdd(vb, acc) ã§ã¯ãåã¬ãŒã³ã§ã va ã®å€ à vb ã®å€ ïŒ acc ã®å€ããèšç®ããŸãã MulAdd ã¯ãæãç®ãšè¶³ãç®ããŸãšããŠè¡ãFMAïŒFused Multiply-AddïŒã«å¯Ÿå¿ããŸãã Float32x8 ã§ã¯ããã®ç©åæŒç®ã8ã¬ãŒã³ãŸãšããŠ1ã€ã®åœä»€ã§è¡ããŸãïŒ MulAddã®ããã¥ã¡ã³ã ïŒã a ãš b ã®èªã¿èŸŒãäœçœ®ãé²ããªããåãåŠçãç¹°ãè¿ããšãåã¬ãŒã³ã«ç©åã®éäžçµæããããŠãããŸããæåŸã«ã¬ãŒã³ããšã®å€ãåèšãããšãå
ç©ãæ±ãŸããŸãã ãã®ãããªSIMDåœä»€ããã¢ã»ã³ããªãcgoãèªåã§æžããã«ãGoã®åãã¡ãœãããéããŠå©çšã§ããã®ã archsimd ã®ç¹åŸŽã§ãã ãã³ãããŒã¯ã§å¹æã確èªãã ããããã¯ãåé ã§ç޹ä»ããStage 0ïŒã¹ã«ã©çã®èšæž¬ïŒâStage 1ïŒSIMDåïŒã®æµãã«æ²¿ã£ãŠãå®éã®å¹æãèŠãŠãããŸãããŸã make bench0 ã§ã¹ã«ã©çã®å
šæ¢çŽ¢ã®éåºŠãæž¬ããç¶ã make bench1 ã§ã¹ã«ã©çãšSIMDçãæ¯èŒããŸããã èšæž¬ã«ã¯ãã¯ãŒã¯ã·ã§ããã§çšæãããææã®GitHub Codespacesç°å¢ã䜿ããŸãããå®è¡ç°å¢ã¯Linux / amd64ã§ãCPUã¯AMD EPYC 7763ã§ããã ææã«ã¯ãå
ç©åäœã枬ããã³ãããŒã¯ãšã10äžä»¶ãã¹ãŠãšã®å
ç©èšç®ããäžäœ10ä»¶ã®éžæãŸã§ãå«ããæ€çŽ¢å
šäœã®ãã³ãããŒã¯ããããŸããSIMDçãå
šä»¶ãèµ°æ»ããæµãã¯åãã§ãå
ç©ã®èšç®ãSIMDã«çœ®ãæããŠããŸããå®è£
ã§ã¯éäžçµæãããã倿°ã acc0 ãš acc1 ã®2æ¬ã«åããäºãã®çµæãåŸ
ããã«èšç®ã§ããããã«ããŠããŸãïŒ ææã®å
ç©ã®å®è£
ïŒã 8èŠçŽ ããŸãšããŠèšç®ã§ããŠããåŠçå
šäœããã®ãŸãŸ8åéããªããšã¯éããŸããã以äžã¯ã make bench1 ã§å
ç©åäœãšæ€çŽ¢å
šäœãèšæž¬ããçµæã§ãã èšæž¬å¯Ÿè±¡ ã¹ã«ã©ç SIMDç é«éåã®åç float32ã®å
ç© 393.8 ns 58.71 ns çŽ6.7å 10äžä»¶ã®æ€çŽ¢ 36.10 ms 9.76 ms çŽ3.7å å
ç©åäœã§ã¯çŽ6.7åãæ€çŽ¢å
šäœã§ãçŽ3.7åã®é«éåã確èªã§ããŸããã å
ç©åäœã®æ¹åãããã®ãŸãŸæ€çŽ¢å
šäœã®åçã«ãªãããã§ã¯ãªãããšãåãããŸããæ€çŽ¢ã§ã¯ãã¯ãã«ã®èªã¿èŸŒã¿ãå¿
èŠã§ãèšç®ã ããéããŠãèªã¿èŸŒã¿ã远ãã€ããªããã°ãCPUã¯ããŒã¿ãåŸ
ã€ããšã«ãªããŸããããããæ§èœã®äžéãèããããã«ãã¹ã©ã€ãã§ã¯ã«ãŒãã©ã€ã³ã¢ãã«ã玹ä»ãããŠããŸããã Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~ - Speaker Deck ãã®å³ã¯ã暪軞ãç®è¡åŒ·åºŠã瞊軞ã1ç§ãããã®æŒç®åæ°ã§ã屿 ¹ã®åœ¢ãããç·ãæ§èœã®äžéã衚ããŠããŸãã ç®è¡åŒ·åºŠã¯ãæŒç®åæ°ïŒãã€ãããã¡ã¢ãªåž¯åã¯ããã€ãïŒç§ããªã®ã§ãäž¡è
ãæãããšãæŒç®åæ°ïŒç§ãã«ãªããŸããããããã¡ã¢ãªããã®ããŒã¿äŸçµŠã«ãã£ãŠæ±ºãŸãæ§èœã®äžéã§ãã ç·ãæãæ²ããç¹ïŒãªããžïŒããå·ŠåŽã§ã¯ãç®è¡åŒ·åºŠ à ã¡ã¢ãªåž¯å ïŒ æŒç®ããŒã¯ãšãªããŸããCPUã®èšç®èœåãããããŒã¿ãäŸçµŠããéããäœãäžéãäœãããããã®é åã®äžéã¯ã¡ã¢ãªåž¯åã«ãã£ãŠæ±ºãŸããŸããç®è¡åŒ·åºŠãäžãããšãåã転ééã§ã§ããèšç®ãå¢ããŠäžéãäžãããããã°ã©ãã¯å³äžããã®æç·ã«ãªããŸãã ãªããžããå³åŽã§ã¯ãç®è¡åŒ·åºŠ à ã¡ã¢ãªåž¯å ïŒ æŒç®ããŒã¯ãšãªããããCPUã®èšç®èœåãæ§èœã®äžéãæ±ºããŸããç®è¡åŒ·åºŠãããã«äžããŠããã®äžéã¯å€ãããªãã®ã§ãã°ã©ãã¯æ°Žå¹³ã«ãªããŸããå®éã®èšæž¬ç¹ããã®ç·ããäžã«ããå Žåã¯ãSIMDãªã©ã§èšç®ãå¹çåããäžéã«è¿ã¥ããããå¯èœæ§ããããŸãã int8éååã§ããŒã¿éãæžãã ã¡ã¢ãªããèªã¿èŸŒããããŒã¿éã«ã¯1ç§ãããã®äžéããããããåãä»¶æ°ã®ãã¯ãã«ã§ãããŒã¿éãå°ãªããã°èªã¿èŸŒã¿ã«ãããæéãçãã§ããŸãããã®èªã¿èŸŒã¿æéãæžãããŠæ€çŽ¢ãéããã®ããStage 2ïŒint8éååïŒã§ãã ãã®æ®µéã§ã¯ã make bench-int8 ã§int8éååã䜿ã£ãå®è£
ãèšæž¬ããŸãããéååã¯ãå€ãå°ãªããããæ°ã§è¿äŒŒããŠè¡šãæ¹æ³ã§ããfloat32ãint8ã«å€æãããšãèµ°æ»ãããã¯ãã«æ¬äœã¯153.6 MBãã38.4 MBã«ãªããŸãã æ€çŽ¢å
šäœã®æéã¯ãStage 1ã®float32 SIMDçã®çŽ9.76 msãããint8 SIMDçã®çŽ4.00 msãžççž®ãããããã«çŽ2.4åéããªããŸãããéååã«ããããŒã¿éã®åæžãšãint8åãã®SIMDèšç®ãçµã¿åããã广ã§ãã int8ã®å
ç©åäœã§ããã¹ã«ã©çã®412.8 nsããSIMDçã®32.17 nsãžãçŽ12.8åã®é«éåã確èªã§ããŸããã ãã ããéååã¯å€ãã®ãã®ãå€ããã®ã§ãå
šæ¢çŽ¢ãããŠããæ€çŽ¢çµæãæ£è§£ãšãããå¯èœæ§ããããŸãããã®ãããææã§ã¯Recall@10ïŒæ£è§£ã®äžäœ10ä»¶ãšäœä»¶äžèŽãããïŒãšããææšãçšããŠãæ€çŽ¢çµæã®ç²ŸåºŠãæ€èšŒããŠããŸããããã®è©äŸ¡ã§ã¯ãå
ã®float32çã§åŸãããäžäœ10ä»¶ãæ£è§£ãšããŠããŸãã ã¯ãŒã¯ã·ã§ãããäœéšã㊠ä»åã®ã¯ãŒã¯ã·ã§ããã§ã¯ãGoã®å®éšçãªSIMDããã±ãŒãžã䜿ãããã¯ãã«æ€çŽ¢ãæ®µéçã«é«éåããæ¹æ³ãåŠã³ãŸãããã«ãŒãã©ã€ã³ã¢ãã«ã§èšç®èœåãšã¡ã¢ãªåž¯åã®å¶çŽãèããªãããSIMDã«ããå
ç©ã®é«éåãããéååã«ããããŒã¿éã®åæžãžãšé²ãæµãã§ãããè³æã§ã¯ãããã«1bitéååãšåæ¡ç¹ãçµã¿åãããŠãéåºŠãšæ€çŽ¢ç²ŸåºŠã®äž¡ç«ãç®æããšãããŸã§ç޹ä»ãããŠããŸããã Goã®ã³ãŒããåãããŠå
ç©ãæ€çŽ¢ãéããªãæ§åã確ãããSIMDã«ãã䞊ååã®æ©æµãæããããšãã§ããŸãããããã«ãéååã§ããŒã¿éãæžãããšãã£ãé«éåã®ææ³ã«ããæãåãããªããè§ŠããããŠããã£ãã§ãã ãŸãšã Go Conferenceéå¶ã®çãããä»å¹Žãã«ã³ãã¡ã¬ã³ã¹ãéå¬ããŠããã ãããããšãããããŸããïŒ æšå¹Žãšã®éããšããŠæ°ã¥ããã®ã¯ãä»åã¯Go Conferenceã ãã§ãªããDroidKaigiã§åŒç€ŸãèŠããããããiOSDCã«ãåå äºå®ããšãã£ããšã³ãžãã¢ã®æ¹ã倿°ã¿ãããããšã§ãã DroidKaigi ã®ã¢ã³ã±ãŒãã§ãããéããã©ã®äŒæ¥æ§ã®ãšã³ãžãã¢ãè¶å¢ããæèãããã®ã ãªãšæããããããŸããã ä»å¹Žãããããã®Gopherãšã話ããããã»ãã·ã§ã³ãæèŽããããšå
å®ãã1æ¥ãéãããšãã§ããŸããïŒ Go Conference 2027ããã²åå ãããã§ãïŒ éå
¬åŒã¢ãã¿ãŒã€ãã³ã Go BASH Vol.3 ã®ãç¥ãã ANDPADãOPTiMãResilireããšããªãŒã®4瀟ååã§ãéå
¬åŒã¢ãã¿ãŒã€ãã³ã Go BASH Vol.3 ãéå¬ããŸãïŒ 2026幎9æ30æ¥(æ°Ž) 19:30ããäŒå Žã¯ãšããªãŒæ¬ç€Ÿã§ããGo Conference 2026 ã®ææ³æŠãå瀟ã®ã»ãã·ã§ã³ãçšæããŠããŸãã®ã§ããã²ãåå ãã ããïŒ connpass.com æåŸã« ãšããªãŒã§ã¯ããšãã«åã仲éãåéããŠããŸãã ããã¯ããã°ãèªãã§å°ãã§ããšããªãŒã«èå³ãæã£ãŠããã ããæ¹ã¯ããã²äžåºŠã«ãžã¥ã¢ã«é¢è«ã«ãè¶ããã ããïŒ corp.every.tv æåŸãŸã§ãèªã¿ããã ããããããšãããããŸããïŒ
ã¯ããã« ãããã®ãã¬ããžç·šééšã®æ³æã§ãã 2026幎8æ1æ¥(å)ã«ããããã€ã³ã¿ãŒãããã®å€§éªæ¬ç€Ÿã§ãããBlooming Campã«ãããŠããã®ãã«ã³ãã¡ã¬ã³ã¹ 2026 in é¢è¥¿ããè¡ãããŸãããæ¬èšäºã§ã¯ã […]






















