ããã«ã¡ã¯ã人æãã©ãããã©ãŒã æ¬éšãããã¯ãçµ±æ¬éšCTO宀ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã°ã«ãŒãã®å岡ã§ããæ ªåŒäŒç€Ÿã¡ãã¬ãŒã®äººæãã©ãããã©ãŒã æ¬éšã§ã¯çŸåšã Flutter ãçšããŠè€æ°ã®ã¢ãã€ã«ã¢ããªãéçºããŠããŸãã 2026幎10æ29æ¥(æš)ã30æ¥(é)ãæ¥æ¬åœå
ã§ Flutter ãã¡ã€ã³ã«æ±ãæè¡ã«ã³ãã¡ã¬ã³ã¹ã FlutterKaigi 2026 ããéå¬ãããŸãããFlutterKaigi ã¯æå¿ã«ãã£ãŠéå¶ãããŠããã«ã³ãã¡ã¬ã³ã¹ã§ããã¡ãã¬ãŒã¯ä»å Bronze ã¹ãã³ãµãŒãšããŠåè³ããè€æ°ã®ã¡ã³ããŒãåå ããŸãããæè¡ã«ã³ãã¡ã¬ã³ã¹ãžã®ç¶ç¶çãªåè³ãéããŠãæè¡ã³ãã¥ããã£ã®æ¯æŽãè¡ã£ãŠããŸãã æ¬èšäºã§ã¯ãFlutterKaigi 2026ãžã®åå ãã¬ããŒãããŸãã äŒå Žã®æ§å FlutterKaigi 2026 ã¯ãæµæŸçºã³ã³ãã³ã·ã§ã³ããŒã«ã§éå¬ãããŸããã 2æ¥éã«ãããéå¬ã§ã4éšå±äžŠè¡ã»ãã·ã§ã³ã«ããŒã¹ãšãªã¢ãšããæ§æã§ããã ã¹ãã³ãµãŒããŒã¹ã䞊ã¶ãšãªã¢ã¯ã2æ¥éãéããŠå€ãã®åå è
ã§è³ãã£ãŠããŸããã äžã§ãå°è±¡çã ã£ãã®ããããŒã¹ã«ãã¬ãŒãã³ã°åšå
·ã眮ããŠæžåãã£ã¬ã³ãžã宿œããŠããäŒæ¥ã§ããåçã®å³æã«åã£ãŠããã®ããã®åšå
·ã§ãæè¡ã«ã³ãã¡ã¬ã³ã¹ã®ããŒã¹ãšããŠã¯çããå
æ¯ãç®ãåŒããŸãããç§ããã£ã¬ã³ãžããŠã¿ãŸããããçµæã¯3åã§ããã 説æãèãã ãã§ãªããå®éã«äœãåãããŠäœéšããããšã§èªç¶ãšãããã¯ããžã®èå³ãæ¹§ããŠãããæ¥œããããŒã¹ã§ããã äŒå Žã«ã¯åå è
ãèªç±ã«æžã蟌ããã¡ãã»ãŒãžããŒããèšçœ®ãããŠããŸãããæ¥æ¬åå°ã¯ãã¡ããæµ·å€ããåå ãããæ¹ã®ã¡ãã»ãŒãžããããFlutterKaigi ãåœå
å€ã® Flutter ãšã³ãžãã¢ãã€ãªãå Žã«ãªã£ãŠããããšã宿ããŸããã ãŸããå
¬åŒã¢ããªã䜿ã£ãããã·ã§ã³ããã¹ãã³ãµãŒããŒã¹ãåã£ãŠéããã¹ã¿ã³ãã©ãªãŒãªã©ãäŒæäžãã£ãšæ¥œãããäŒç»ãçšæãããŠããŸããã2æ¥ç®ã®å€æ¹ã«ã¯ã¯ã€ãºå€§äŒã Google ã® Flutter ããŒã ã«è³ªåã§ãã Q&A ãè¡ããããã®ãŸãŸæèŠªäŒãžãšç¶ããŸããã ã¡ãã¬ãŒã¡ã³ããŒã®ç»å£ ä»å¹Žã¯ãã¡ãã¬ãŒãã2åãã©ã€ããã³ã°ããŒã¯ïŒLTïŒã«ç»å£ããŸããã CocoaPodsããSPMãžå®å
šã«ç§»è¡ããããã®å¯Ÿå¿ãšã€ãŸã¥ãïŒæç¬ïŒ Day 1ïŒ10æ29æ¥ïŒã® Cupertino äŒå Žã§ãæç¬ãç»å£ããŸããã - YouTube Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube. www.youtube.com CocoaPods ã¯2026幎12æã«èªã¿åãå°çšãšãªããFirebase ã Sentry ãªã©äž»èŠãª SDK ãããã§ã« CocoaPods ãžã®æ°ããŒãžã§ã³å
¬éãæ¢ãå§ããŠããŸãããã®ããã Swift Package Manager ïŒSPMïŒãžã®ç§»è¡ã¯ãCocoaPods ã䜿ã£ãŠãã Flutter iOS ã¢ããªã«ãšã£ãŠé¿ããããªã課é¡ãšãªããŸããã pubspec.yaml ã«æ°è¡ã®èšå®ã远å ããã°å®äºããæ³å®ã§ããããäºæããªãåé¡ãçºçããŸãããæ¬ LT ã§ã¯ãCocoaPods ãã SPM ã«ç§»è¡ãããšãã®ãããã©ããã®å®äŸãæããŠããã®å¯Ÿå¿çãå
±æããŸããã ç»å£è³æã¯ãã¡ãã§ãã FlutterKaigi2026_SPMç§»è¡LT.pdf speakerdeck.com Flutterã«ããããªãã©ã€ã³ãã¡ãŒã¹ãèšèšãå®è·µãã¿ãŒã³ãšèœãšã穎ãïŒå¥¥æŸ€ïŒ Day 2ïŒ10æ30æ¥ïŒã® Material äŒå Žã§ã奥柀ãç»å£ããŸããã - YouTube Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube. www.youtube.com ã¡ãã¬ãŒãã¿ãŒã²ãããšããŠããå»ççŸå Žã§ã¯ã黿³¢ç¶æ³ã«å·Šå³ãããããã€ã§ãå¿«é©ã«ã¢ããªã䜿ããããšãæ¬ ãããŸãããããã§æå¹ãªã®ãããªãã©ã€ã³ãã¡ãŒã¹ããã§ã®èšèšã§ãã äžæ¹ã§ããªãã©ã€ã³ãã¡ãŒã¹ãèšèšã¯ããŒã¿åæãç«¶å解決ã®é£æåºŠãé«ããããã¯ãšã³ããšã®ã€ã³ã¿ãŒãã§ãŒã¹ãŸã§å«ããæ
éãªèšèšãæ±ããããŸããæ¬ LT ã§ã¯ããªãã©ã€ã³ãã¡ãŒã¹ãèšèšã®éèŠæ§ãšãã©ã®ããã« Flutter ã¢ããªã§å®çŸããã®ãã玹ä»ããŸããã ç»å£è³æã¯ãã¡ãã§ãã Flutterã«ããããªãã©ã€ã³ãã¡ãŒã¹ãèšèš ãå®è·µãã¿ãŒã³ãšèœãšã✳ã | ãã¯ã»ã« FlutterKaigi 2026ã§ã®çºè¡šè³æã§ãã www.docswell.com ã»ãã·ã§ã³ã®æ§å ã»ãã·ã§ã³ã¯ JTCC ããŒã«ãUPSIDER ããŒã«ãMaterialãCupertino ã®4éšå±ã§äžŠè¡ããŠè¡ãããŸãããã©ã®æé垯ãèå³ãåŒãããã»ãã·ã§ã³ã䞊ãã§ããŠãã©ããèãã«è¡ããè¿·ãã»ã©ã®å
å®ã¶ãã§ããã å°è±¡ã«æ®ã£ãã»ãã·ã§ã³ åŒç€Ÿãšã³ãžãã¢ãæ°ã«ãªã£ãã»èŽè¬ããŠé¢çœãã£ãã»ãã·ã§ã³ãã玹ä»ããŸãã AIã«ä»»ããããFlutterã³ãŒãããŒã¹ãäœã â 仿§ãã³ãŒãã§è¡šããããŒãã¹ã§å®ã by yohei ãã - YouTube Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube. www.youtube.com ç³è«ã»çµè²»ç²Ÿç®ã® Flutter ã¢ããªã顿ã«ãAI ã«å®è£
ãä»»ããããã³ãŒãããŒã¹ãã©ãäœã£ãŠãããã玹ä»ããã»ãã·ã§ã³ã§ããã ç¹ã«å°è±¡ã«æ®ã£ãã®ã¯ããæ±ºå®çãªãã®ããšãéæ±ºå®çãªãã®ããåãããšããèãæ¹ã§ããåã lint ã¯äœåºŠå®è¡ããŠãåãçµæã«ãªããããå®ããããã«ãŒã«ã¯ã§ããéããã¡ãã«çœ®ããããã§ã衚ããªãæ¥åç¥èã ãã Skill ã Subagents ãšã㊠AI ã«æž¡ãããããŠé決å®ç㪠Skill ã Subagents ãçãã©ããã«åããã¯ãéäžã®éçšãçžããã«æçµçãªã¢ãŠãããããè€æ°åã»æ©æ¢°çã«è©äŸ¡ããŠç¢ºãããããããŒãã¹ãã¢ãã«ã®æé·ãéªéããªãããã«ããšããèŠç¹ãå«ããŠãAI ãšä»ãåãããã®èšèšã®è»žãã¯ã£ããããŠããŸããã äžæ¹ã§ãããŒãã£ã³ã°äžã®èŠãæ¹ã®ãããªäœéšã®èšèšã¯ã人éã責任ãæã€ã¹ãã ãšãã話ããããŸãããAI ãšäººéã®å¹æçãªåœ¹å²åæ
ã¯ç§ãã¡ãåãåã£ãŠããããŒãã§ãã ããããFlutterã§äœããã®ïŒãâ Fragment Shaderã§é
ããUIãå®çŸãã by ãŽãŒã«ãã ã«ãŒã«ã¹ ãã - YouTube Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube. www.youtube.com ãShader ã¯äœ¿ãéããªãããé£ãããããFlutter ã®ãµã³ãã«ãå°ãªãããšãã£ãã€ã¡ãŒãžãèŠãããããšããæãããå§ãŸã£ãã»ãã·ã§ã³ã§ããã Flutter ã®å
éšã§ããContainer ã®è²ãã°ã©ããŒã·ã§ã³ããŒããã圱ãMaterial ã®ã¿ãããšãã§ã¯ããªã©ãå€ãã®å Žé¢ã§ Fragment Shader ã䜿ãããŠãããšã®ããšã§ããã å°è±¡çã ã£ãã®ã¯ãAndroid ã§ãªã¹ããåŒã£åŒµã£ããšãã«äŒžã³ãã¹ãã¬ãããšãã§ã¯ãã®è©±ã§ãã以å㯠Transform ã«ããåäžãªã¹ãã¬ããã§åçŸããŠãããããã€ãã£ããšã®éåæããã£ããã®ããImpeller äžã§ã¯ Fragment Shader ã䜿ããåŒã£åŒµã£ãè·é¢ã«å¿ããŠäŒžã³æ¹ãå€ããããšã§ãã€ãã£ãã«è¿ãèŠãç®ã«ãªã£ãããã§ããShader 㯠3D ã°ã©ãã£ãã¯ã¹ã掟æãªèŠãç®ãäœããã®ãšããå°è±¡ããããŸãããæ®æ®µã® UI éçºã«ã䜿ããå¯èœæ§ãæããŸããã ãããã« FlutterKaigi 2026 ã®éå¶ã®çæ§ãã¹ããŒã«ãŒã®çæ§ãåå è
ã®çæ§ãã¹ãã³ãµãŒã®çæ§ãããããšãããããŸããã ä»åŸãã¡ãã¬ãŒã¯æè¡ã³ãã¥ããã£ã®äžå¡ãšããŠã€ãã³ãã«åå ããåè³ãéããè²¢ç®ãç¶ããŠãããŸãã ãŸãã«ã³ãã¡ã¬ã³ã¹ã§ãäŒãããŸãããã Weâre hiring! ã¡ãã¬ãŒã§ã¯ãFlutter ãã¯ãããšãããã¯ãããžãŒã掻çšããŠãå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ãããããã¯ããéçºããŠããŸãããšã³ãžãã¢ã»ãã¶ã€ããŒã»PM ãªã©æ§ã
ãªè·çš®ã§åéããŠããŸãã®ã§ããèå³ã®ããæ¹ããã®ã«ãžã¥ã¢ã«é¢è«ã®ãç³ã蟌ã¿ããåŸ
ã¡ããŠãããŸãã ã¡ãã¬ãŒã§åãïœæ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã§ã®åãæ¹ã人äºå¶åºŠãæ±äººæ
å ±ãªã©ãæ¡çšã«é¢ããæ
å ±ãã玹ä»ããŸãã www.medley.jp Medley Engineer Entrance Book ãã®åºŠã¯æ ªåŒäŒç€Ÿã¡ãã¬ãŒã«èå³ããå¯ãããã ãããããšãããããŸããæ¬è³æã¯ãã¡ãã¬ãŒãžã®è»¢è·ããæ€èšããã ããŠããçæ§ã«ãåœç€Ÿãããæ·±ããçè§£ããã ãããã«äœæããããŸããã medley-inc.notion.site
ããã«ã¡ã¯ïŒå»çãã©ãããã©ãŒã æ¬éš ã³ã³ã·ã¥ãŒããŒãµãŒãã¹å®€ 第äžéçºã°ã«ãŒãã®æ£®ã§ãã 2026幎4æã«ã¡ãã¬ãŒãžæ°åå
¥ç€Ÿãã ãã€ãã®å»çãå€ããã¢ããªãmelmoã ãéçºããŠããŸãã æ ªåŒäŒç€Ÿã¡ãã¬ãŒã¯ã2026幎9æ11æ¥(é)ã13æ¥(æ¥)ã«éå¬ããã iOSDC Japan 2026 ã«ããŽãŒã«ãã¹ãã³ãµãŒãšããŠåè³ããŸããã ç§ã¯ããŒã¹ã¹ã¿ãããšããŠ3æ¥éåå ããŸãããæ°å1幎ç®ã§åå ãããåããŠã®æè¡ã«ã³ãã¡ã¬ã³ã¹ã§ãïŒ æ¬èšäºã§ã¯ãåœæ¥ã®äŒå ŽãããŒã¹ã®æ§åãå°è±¡ã«æ®ã£ãã»ãã·ã§ã³ãã¬ããŒãããŸãã ã¡ãã¬ãŒãš iOSDC Japan ã¡ãã¬ãŒã¯è€æ°ã®ã¢ãã€ã«ã¢ããªãéçºããŠãããã³ãã¥ããã£ãšã®ã€ãªãããéããéçºåã»ãããã¯ã䟡å€ã®åäžãç®æããŠã2017幎ãã iOSDC Japan ãžã®åè³ãç¶ããŠããŸãããã㊠iOSDC Japan 2026 ã§ãç¯ç®ã®10åç®ãè¿ããŸããïŒ ãã®äžã€ããç§ãéçºã«æºãã melmo ã§ãã ã€ã³ã¿ãŒããããéããŠãèªå®
ãè·å Žãããã€ãã®å»åž«ãšã®èšºå¯ãè¬å€åž«ãšã®æè¬æå°ãåããããšãã§ãããµãŒãã¹ã§ãããªã³ã©ã€ã³ã§åŠæ¹ããããè¬ã¯ãèªå®
ã«çŽæ¥å±ããããŸãã iOS ã¢ããªã§ã¯ Swift Package Manager ã«ãããã«ãã¢ãžã¥ãŒã«æ§æãæ¡çšããSwift 6 ãžã®ç§»è¡ãé²ããŠããŸããiOSDC Japan 2025 ã§ã¯ããã®åãçµã¿ã«ã€ããŠåŒç€Ÿã®åç°ãç»å£ããŸããã æ¢ããããªãå»çã¢ããªããã£ãš Swift 6 ãž 2025幎9æ21æ¥ïŒæ¥ïŒã«éå¬ã®iOSDC Japan 2025ã®ç»å£è³æã§ãã ã€ãã³ãURLïŒhttps://iosdc.jp/2025/ çºè¡šè
æ
å ±ïŒå»çãã©ãããã©ãŒã æ¬éšããšã³ãžãã¢ãåç°å°åŸ speakerdeck.com 2025幎ã®åå ã¬ããŒãããã²ã芧ãã ããïŒ iOSDC Japan 2025 åå ã¬ããŒã - ãŽãŒã«ãã¹ãã³ãµãŒãšããŠåè³ããŸããïŒ | MEDLEY Developer Portal ããã«ã¡ã¯ïŒæ ªåŒäŒç€Ÿã¡ãã¬ãŒã§DevRelãæ
åœããŠããéç°ã§ãã æ ªåŒäŒç€Ÿã¡ãã¬ãŒã¯ã2025幎9æ19æ¥(é)ã21æ¥(æ¥)ã«éå¬ããã iOSDC Japan 2025ã«ããŽãŒã«ãã¹ãã³ãµãŒãšããŠåè³ããŸãããæšå¹Žåæ§ãä»å¹Žã¯ã»ãã·ã§... developer.medley.jp äŒå Žã®æ§å iOSDC Japan 2026 ã¯ãææã»ã³ãã©ã«ã¿ã¯ãŒããŒã« & ã«ã³ãã¡ã¬ã³ã¹ã§ã®çŸå°éå¬ã«å ãããã³ãã³çæŸéã§ã®ãªã³ã©ã€ã³é
ä¿¡ãè¡ããããã€ããªãã圢åŒã§éå¬ãããŸããã 3æ¥éã§70æ¬ä»¥äžã®ããŒã¯ã»ã©ã€ããã³ã°ããŒã¯ãè¡ãããŸããã ãªã³ã©ã€ã³ã»ãªãã©ã€ã³ããããŠã1,100åãè¶
ããåå è
ãéãŸã£ãããã§ãã æã«ã¯ãå
çã§ããŒããã®é
åžããããŸããïŒ ããŒã¹ã«ç«ã€åã«ãã¡ãã¬ãŒã¡ã³ããŒãããã ããŸãããéå¶ã®çæ§ãããããšãããããŸãïŒ ã»ãã·ã§ã³ã®æ§å Track AãD ã®4ãã©ãã¯äžŠè¡ã§ãã©ã®ã»ãã·ã§ã³ãèŽè¬ãããè¿·ãã»ã©ã®å
å®ã¶ãã§ããïŒ ãšã³ãžãã¢ã«èããé¢çœãã£ãã»ãã·ã§ã³ ããŒã¹éå¶ã®åéã«ãããŸããŸãªã»ãã·ã§ã³ãèŽè¬ããŸããã åŒç€Ÿãšã³ãžãã¢ãæ°ã«ãªã£ãã»èŽè¬ããŠé¢çœãã£ãã»ãã·ã§ã³ãã玹ä»ããŸãïŒ é話ã¯ã€ãªããã°çµãããããªã â CallKitã§é話æ©èœã®è£åŽ by é ç å é ãã é話ã¯ã€ãªããã°çµãããããªã â CallKitã§é話æ©èœã®è£åŽ ç§ãæåã¯ããæã£ãŠããŸããããããå®éã«éçºããŠã¿ããšãCallKitã¯ãããŸã§âé»è©±ãããUIâãæäŸããŠãããã ãã§ãæ¬åœã«é£ããã®ã¯ãã®å
ã§ããã ãªã¢ã«ã¿ã€ã éä¿¡ãµãŒãã¹ãšã®é£æºãAVAudioSessionã«ããé³å£°ã«ãŒãã£ã³ã°ãçä¿¡é³ãBluetoothã»ã¹ããŒã«ãŒã®åãæ¿ããPushKitã«ããçä¿¡ãããã¯ã°ã©ãŠã³ãã§ã®ã©ã€ããµã€ã¯ã«ç®¡çããããŠãããã¯ãŒã¯åæããŠãŒã¶ãŒã®éäžéåºãªã©ãå®éçšã§ã¯æ°ãåããªãã»ã©ã®ãšããžã±ãŒã¹ãåŸ
ã£ãŠããŸãã æ¬ã»ãã·ã§ã³ã§ã¯ãAgoraãå©çšããé³å£°é話æ©èœã顿ã«ãããŠãŒã¶ãŒãæ¯æ¥å®å¿ããŠäœ¿ããé話æ©èœããå®çŸããããã«ãã©ã®ãããªèšèšãå®è£
ãå¿
èŠã«ãªãã®ãã玹ä»ããŸãã å
·äœçã«ã¯ã以äžã®å
å®¹ãæ±ããŸãã * CallKitãšAgoraãçµã¿åãããé話ã¢ãŒããã¯ã㣠* AVAudioSessionã«ããçä¿¡é³ã»é話é³å£°ã»Bluetoothã»ã¹ããŒã«ãŒã®å¶åŸ¡ * çºä¿¡ã»çä¿¡ã»æåŠã»åæã»éä¿¡æã»éäžéåºãŸã§èæ
®ããé話ã¹ããŒãèšèš * PushKitãããã¯ã°ã©ãŠã³ãå®è¡ãå«ããã©ã€ããµã€ã¯ã«ç®¡ç * å®éã«ééããäžå
·åãèšèšäžã®èœãšã穎ããããã°æ¹æ³ CallKitã®APIã玹ä»ããã ãã§ã¯ãªãããé話ãã¿ã³ãæŒããç¬éããé話ãçµäºãããŸã§ãã«èµ·ããããŸããŸãªèª²é¡ãã©ã®ããã«èšèšãã解決ããã®ããå®äŸã亀ããŠå
±æããŸãã ãã®ã»ãã·ã§ã³ãéããŠãå®éçšã¬ãã«ã®iOSé話æ©èœãèšèšã»å®è£
ããããã®èãæ¹ãšå®è·µçãªç¥èŠãæã¡åž°ã£ãŠããã ããã°ãšæããŸãã fortee.jp çŽæ£ã®é»è©±ã¢ããªãšåãããã«æ±ããé話ãå®è£
ããããã®ã现ããªå·¥å€«ãè©°ãŸã£ãã»ãã·ã§ã³ã§ããã é話äžã«ã¢ããªã匷å¶çµäºããããšçµäº API ãåŒã¹ãé話ã active ãªãŸãŸæ®ã£ãŠããŸããªã©ãæ£åžžç³»ã ãã§ãªãç°åžžç³»ã«ã©ãåãåãããå
·äœçã«èªãããŠããã®ãå°è±¡çã§ããã melmo ããªã³ã©ã€ã³èšºçã§éè©±ãæ±ãã¢ããªãªã®ã§ãæ¥åã«çŽçµãã話é¡ãšããŠèãå
¥ã£ãŠããŸããŸããã ã誰ã²ãšãåãæ®ãããªãããµãŒãã¹ãäœããè¡æ¿ã¢ããªãšããŠã®ã¢ã¯ã»ã·ããªãã£ãšã®åãåãæ¹ã by ãããã«ãã ã誰ã²ãšãåãæ®ãããªãããµãŒãã¹ãäœãã è¡æ¿ã¢ããªãšããŠã®ã¢ã¯ã»ã·ããªãã£ãšã®åãåãæ¹ã GovTechæ±äº¬ã§ã¯ãæ±äº¬éœã®è¡æ¿DXã®äžç°ãšããŠãæ±äº¬éœå
¬åŒã¢ããªãã®éçºã»éå¶ãè¡ã£ãŠããŸããçŸåšã¯ã¢ããªã®å
補åãé²ããªãããã¢ã¯ã»ã·ããªãã£ã®åäžã«ãç¶ç¶çã«åãçµãã§ããŸãã è¡æ¿ãµãŒãã¹ã¯ãåã©ãããé«éœ¢ã®æ¹ãé害ã®ããæ¹ãŸã§ãå¹
åºãå©çšè
ã«å±ãå¿
èŠããããŸããã ããããã¢ããªã®ã¢ã¯ã»ã·ããªãã£ã®å¯Ÿå¿ã¯ç¹å¥ãªè¿œå æ©èœã§ã¯ãªããè¡æ¿ãµãŒãã¹ã«æ±ãããããããããŸãå質ãã ãšç§ãã¡ã¯èããŠããŸãã äžæ¹ã§ãã¢ã¯ã»ã·ããªãã£ã®å®åçµéšãæã€éçºè
ã¯å€ããããŸãããç§ãã¡ãå
補éçºã®äœå¶ãéçšã®ä»çµã¿ãã®ãã®ãäžããç«ã¡äžããäžã§ããäœããæãã€ããã°ããã®ãããæ¯æŽæè¡ãå®éã©ã䜿ãããŠããã®ãããªã©ææ¢ãããã®ã¹ã¿ãŒãã§ããã æ¬ã»ãã·ã§ã³ã§ã¯ããããªç§ãã¡ããiOSã¢ããªã®ã¢ã¯ã»ã·ããªãã£ã«ã©ãåãåããã©ããªå·¥å€«ãä»çµã¿ã§è§£æ±ºããŠããã®ãããå®äœéšãããšã«ã玹ä»ããŸãã GovTechæ±äº¬ã«ã¯ãæ¯æŽæè¡ã䜿ãåœäºè
ã®æ¹ãåšç±ããŠãããçŽæ¥ã³ãã¥ãã±ãŒã·ã§ã³ãåããªããç¶ç¶çã«æ¹åããŠãããç°å¢ããããŸããããããç°å¢ã ããããåŸãããç¥èŠãåºãå
±æããããšããç§ãã¡ã®å€§åãªåœ¹å²ã®äžã€ã ãšèããŠããŸãã ãã®ã»ãã·ã§ã³ããã¢ã¯ã»ã·ããªãã£å¯Ÿå¿ãžã®çè§£ãæ·±ããææ¥ããã®å®è·µãžã®äžå©ãšãªãã°å¹žãã§ãã fortee.jp 瀟å
ã«ç¥èŠããªãç¶æ
ãããã¢ã¯ã»ã·ããªãã£å¯Ÿå¿ãéçºããã»ã¹ã«çµã¿èŸŒããŸã§ã®æé ãæŽçãããã»ãã·ã§ã³ã§ããã WCAGïŒWeb Content Accessibility GuidelinesïŒã®èªã¿åããããå§ããŠåãå
¥ãåºæºã«èœãšã蟌ã¿ãæçµçã«ã¯ä»çµã¿åã㊠AI ã«éçºããããšãããŸã§å°éããŠããã®ãå°è±¡çã§ããã å»çãµãŒãã¹ãæäŸããç§ãã¡ã«ãšã£ãŠãã誰ãã䜿ããã¢ããªã¥ããã¯åãåãç¶ãããããŒãã§ãã ïŒVoiceOverã¹ã¯ãªãŒã³ãªãŒããŒå®æŒïŒç®ãèŠããªããŠãXcodeãApp Store Connectã¯æäœã§ããïŒ by Yoshiyuki Koyanagi ãã ïŒVoiceOverã¹ã¯ãªãŒã³ãªãŒããŒå®æŒïŒç®ãèŠããªããŠãXcodeãApp Store Connectã¯æäœã§ããïŒ è¶£å³ã§ã¢ããªãéçºããŠãã@moutendãšç³ããŸããç§ã¯èŠèŠã«é害ãããç®ãèŠããŸãããããããVoiceOverã¹ã¯ãªãŒã³ãªãŒããŒãAppleãæäŸããç»é¢ã®èªã¿äžãã¢ã¯ã»ã·ããªãã£æ©èœã掻çšããããšã§å®å
šã«èªåã§ã¢ããªã®éçºããå
¬éãŸã§ãè¡ããŠããŸãã ä»åã®LTã§ã¯ç§ç©ã®MacBookãæã¡èŸŒã¿ãXcodeãApp Store Connectã®æäœã宿ŒããŸããäžè¬çã«ãã¢ã¯ã»ã·ããªãã£æ©èœã¯æäœã§ãããã©ããã®2æã§èªãããã¡ã§ããããããå®éã«ã¯ãå©çšè
ã®èгç¹ãããçŽ æ©ãå¿«é©ã«æäœã§ããããæéããããã°æäœã§ããããæäœã§ããªããä»£æ¿ææ®µãããããå
šãæäœã§ããªãããšãã£ã倿§ãªåŽé¢ããããŸãã ã¢ã¯ã»ã·ããªãã£æ©èœã§ã¯å
é²çãªåãçµã¿ãç®ç«ã€Appleã§ãããå®éã®ãšããéçºåãããŒã«ã®æäœã¯ã©ããããæ
ä¿ãããŠããã®ã§ããããããã²ã¢ã¯ã»ã·ããªãã£æ©èœãåãéãå¯èœæ§ãèŠããŠã¿ãŠãã ããã fortee.jp VoiceOver ãæ¥åžžçã«äœ¿ãããŠããæ¹ã«ãã宿Œã®ã©ã€ããã³ã°ããŒã¯ã§ãã æ®æ®µã䜿ãã®èªã¿äžãé床ãããŸãã«éãããããèãåã£ãŠæäœãããŠããæ§åã«äŒå Žããã¯é©ãã®å£°ãäžãã£ãŠããŸããã ã©ããªåèªã䞊ãã§ããããèšæ¶ããŠããŠãèªã¿äžãã®æåã®äžé³ã§å€å¥ããŠããã®ã ãšèãããšã人éã®èœåã®åºç¥ããªããæããŸããã AIæä»£ã«ãããiOSèšèšã®å®ãæ¹ãšäººéã®åœ¹å² by é è€æåŒ¥ãã AIæä»£ã«ãããiOSèšèšã®å®ãæ¹ãšäººéã®åœ¹å² ã³ãŒãã£ã³ã°ã¯ããAIã®ãã§ãŒãºãââããŒã ã§ãã話ãããã«ãªã£ãŠããµãšèããŸããã ããããåãiOSãšã³ãžãã¢ã¯äœããã人ãªãã ã£ãããšã AIã«"æžã"ãæž¡ããŠãŸãæ°ã¥ããã®ã¯ããAIãéãæžãã»ã©ãèšèšãéã厩ãããããšã§ãããã§ãåŽ©ãæ¹ãããèŠããšãAIãæªããšãããã "AIã«ãšã£ãŠåŽ©ããããèšèš" ã«ãªã£ãŠããããšãå€ããããã§åããæãå
¥ããã®ã¯ãAIãç£èŠããŠç¯æ£ããããšã§ã¯ãªããèšèšãã®ãã®ãAIãæ±ãããã圢ã«äœãæ¿ããããšã§ãããæ©èœããšã«ã¢ãžã¥ãŒã«ïŒPackageïŒãåã£ãŠå¢çãã¯ã£ããããããAIãåç
§ãã¹ãå Žæãäžç®ã§åããããã«ããââå®éãæ°ããåã£ãPackageã»ã©AIã¯åªå
ããŠåç
§ããæ£ããå Žæã«æ£ããã³ãŒããæžãããã«ãªããŸãããAIãéãæžããŠããã€åŽ©ãã«ããèšèšãšã¯äœããããTVer iOSã¢ããªã§ã®è©Šè¡é¯èª€ãšããããŠç޹ä»ããŸãã ãããŠããååã¯ã"äœã人éãæ±ºããã" ã®è©±ã§ããAIã«"æžã"ãä»»ããçµæãåãã®æãåãã£ãã®ã¯ããã£ãšåŸåãã«ããŠãã"質ã®ä»äº"ïŒãã¹ãããªãã¡ã¯ã¿ããããªãã³ãŒãã®åé€ã仿§ãã«ãŒã«ã®æŽåïŒãšã"ãªãŒã"ã§ãããããã§èšããªãŒãã¯å¹
åºããŠãäœãäœã£ãŠäœãäœããªããã®åªå
é äœã¥ããããããããšãissueã«åè§£ããŠèšèšæ¹éãå
ã«æ±ºããã人ãAIãåãåæãèªããããã«ã«ãŒã«ãšããã¥ã¡ã³ããæŽãããã¬ãã¥ãŒããã§ãã¯ãå±äººåããã"ä»çµã¿"ã«èœãšãããããŠè€æ°ã®AIãšãŒãžã§ã³ãã䞊è¡ã§èµ°ãããããã®åœ¹å²åæ
ãšæ®µåããèšèšããââã³ãŒããæžãæéãæžã£ãåããããã"åæãäœãä»äº"ã«æéãåãããã«ãªããŸãããHowã¯ãä»»ãã人éã¯"äœã"ã«éäžãããããã«èŸ¿ãçããŸã§ã«ãã£ãããšã»ããŸããã£ãããšã»ç©ºåãããããšããæ£çŽã«è©±ããŸãã fortee.jp AI ãå®è£
ãæ
ãããã«ãªã£ãä»ãèšèšãã©ãå®ãã人éã¯äœã決ããã¹ãããæŽçããã»ãã·ã§ã³ã§ããã ã¿ã¹ã¯ã«ã¯äžŠè¡äœæ¥ã®åãäžåãããããšããææãããã³ãŒããæžãæéãã仿§ãæžãæéã«çœ®ãæãã£ãããšãã話ã«åŒ·ãå
±æããŸããã æ©èœä»æ§ã®ããã¥ã¡ã³ããã©ã管çããŠããããä»åŸã®ããŒã«ãªãããã ãšããšã³ãžãã¢ä»¥å€ã®æ¹ãšã®ä»æ§ã®å
±æãŸã§å«ããŠèããããããå
容ã§ããã ããŒã¹åºå±ã®æ§å 60瀟ãè¶
ããäŒæ¥ãã¹ãã³ãµãŒãšããŠåè³ããããŒã¹ãšãªã¢ã«ã¯34瀟ãåºå±ã飿¥å€ãã®åå è
ã§è³ãã£ãŠããŸããã ããã§ã¯ãç§ãã¡ã®ããŒã¹ãšç¹ã«å°è±¡ã«æ®ã£ãããŒã¹ãããã€ãã玹ä»ããŸãïŒ åŒç€ŸããŒã¹ã®æ§å ã¡ãã¬ãŒããŒã¹ã§ã¯ãå»çãä»è·ã®ãæ©ã¿ãšã¡ãã¬ãŒã®ãããã¯ããçµã³ã€ããããæ©ã¿ Ã ãããã¯ã ãããã³ã°ã²ãŒã ãã宿œããŸããïŒ NFC ã«ãŒããã¹ããŒããã©ã³ã§èªã¿åã£ãŠãåå ããã ããæ£è§£æ°ã«å¿ããŠããŒã¿ãã«é²çœ7ç¹ã»ãããããŒããªã©ã®ããã«ãã£ããæž¡ãããŸããã ã²ãŒã ã¯ãå»çãä»è·ã«ãŸã€ãããæ©ã¿ãåºé¡ããããã®ãæ©ã¿ã解決ã§ãããããã¯ããéžæè¢ã®äžããéžãã§ããã ãã¯ã€ãºåœ¢åŒã§ãã æ£è§£ãããšããã®ãããã¯ãã®ç޹ä»ã衚瀺ãããŸããã²ãŒã ãæ¥œãã¿ãªãããã¡ãã¬ãŒãå»çãã«ã¹ã±ã¢é åã§å¹
åºããããã¯ããå±éããŠããããšãç¥ã£ãŠããã ããã®ã§ã¯ãªãããšæããŸãã ããããŠãããã«ãšã¢ãã¿ãŒã§ã¯ã¡ãã¬ãŒã®ãããã¯ããšæè¡ã¹ã¿ãã¯ã®äžèЧãã玹ä»ããŸããã ããŒã¹ã«ã¯ã3æ¥éã§æ¬åœã«å€ãã®æ¹ã«ãç«ã¡å¯ãããã ããŸããïŒ ãã¡ãããšãµãŒãã¹ã®å
容ãé ã«æ®ãããšã¯ã€ãºãè€ããŠãã ããæ¹ããApp Store ã§ã¡ãã¬ãŒã®ã¢ããªãã²ãšã€ãã€èª¿ã¹ãªããçå£ã«è§£ããŠãã ããæ¹ãããŠãå¬ããæå¿ãããããŸããïŒ äŒè©±ã®äžã§ã¯ãAI ã§ã³ãŒãã¯æžããããã«ãªã£ããã©ãã¬ãã¥ãŒã¯ã©ãããŠããïŒããšãã£ã質åãããã ããªã©ãAI ãéçºã«ã©ã掻çšããŠããããžã®é¢å¿ã®é«ããæããŸããã ãŸãå°è±¡çã ã£ãã®ã¯ã ãé çãŒãã ã®èªç¥åºŠã®é«ãã§ãïŒæ®æ®µãã䜿ã£ãŠãã ãã£ãŠããæ¹ãå€ããäŒè©±ã匟ãå Žé¢ãäœåºŠããããŸããã ããŒã¹ã«ãè¶ãããã ããçæ§ãããããšãããããŸããïŒ ãã®ä»ã®ããŒã¹ã®æ§å 転è·ãã©ãã ãããŸè©äŸ¡ããã iOS ãšã³ãžãã¢ããããŒãã«ãæ¥å Žè
ãä»ç®ã貌ã£ãŠããåå åã®ããŒã¹ã§ããã ãããããã£ãªã¢ãç©ãã§ãã身ãšããŠãã©ããªã¹ãã«ãçµéšãè©äŸ¡ãããã®ãããã³ãããããããããªæ°ãããŸãã æ ªåŒäŒç€ŸãšããªãŒ ãiOSã¢ããªéçºãAIã«ã©ããŸã§ä»»ããŠããŸããïŒããšããããŒããèšçœ®ãããŠãããåå è
ã®çããã AI ãã©ããŸã§æŽ»çšããŠããã®ããç¥ãããšãã§ãããè峿·±ãå±ç€ºã§ããã ããã«ãã£ã«ã¯ãCTO ã®æ¹ããã¬ã³ãããã³ãŒããŒãããã ããŸããããCTO ãã¬ã³ãããšããçºæ³ãé¢çœãã飲ãã®ã楜ãã¿ã§ãïŒ æèŠªäŒ æçµæ¥ã®å€ã«ã¯æèŠªäŒãéå¬ãããŸããã äŒå Žã«ã¯è±ªè¯ãªæçãããããšäžŠã³ãåå è
ã®æ¹ã
ã®äº€æµã§è³ãã£ãŠããŸããïŒ æ°å1幎ç®ãã¯ãããŠã®æè¡ã«ã³ãã¡ã¬ã³ã¹ åé ã§ãäŒãããéããç§ã«ãšã£ãŠ iOSDC Japan 2026 ã¯ãæ°å1幎ç®ã§åå ããåããŠã®æè¡ã«ã³ãã¡ã¬ã³ã¹ã§ããã æ£çŽãåå åã¯ãæè¡ã®è©±ãæ¯ãããŠãã¡ãããšçããããã ãããããšããäžå®ã®ã»ãã倧ããã£ãã§ãã å®éã«ããŒã¹ã«ç«ã£ãŠã¿ããšããã®äžå®ã¯ããæå³ã§è£åãããŸããã å察é¢ã§ããiOS ãã¢ããªéçºãAI ã®æŽ»çšãšãã£ãå
±éã®è©±é¡ãããã ãã§èªç¶ãšäŒè©±ãå§ãŸããŸãã ç§ãæ°åç®ç·ã§ãµãŒãã¹ãéçºã®è©±ããããšãçããããèªèº«ã®çµéšã亀ããŠè©±ãåºããŠãã ãã£ãŠããšãŠãå
å®ããæéãéãããŸããïŒ å
¥ç€Ÿ1幎ç®ã§ãã®ãããªæ©äŒãããã ããããšã«æè¬ããŠããŸãã æ¬¡ã«åå ããæ©äŒãããã°ãããæ·±ãæè¡ã®è©±ãã§ããããã«ããããŠäŒç€ŸããµãŒãã¹ã«ã€ããŠã®è³ªåã«ããã£ãšçããããããã«ãç¥èãšçµéšãç©ãã§ãããããšæããŸãïŒ ãããã« ããŒã¹ã«ç«ã¡å¯ã£ãŠãã ãã£ãçæ§ãããããšãããããŸããïŒ ä»åŸãã¡ãã¬ãŒã¯æè¡ã³ãã¥ããã£ãžã®è²¢ç®ããããŠåŒç€Ÿãããå€ãã®æ¹ã
ã«ç¥ã£ãŠããã ãããã«ã€ãã³ããžã®åè³ãç¶ç¶ããŠãããŸãã ãŸãã«ã³ãã¡ã¬ã³ã¹ã§ãäŒãããŸãããïŒ éå»ã«ã¹ãã³ãµãŒãšããŠåè³ããæè¡ã«ã³ãã¡ã¬ã³ã¹ã®åå ã¬ããŒãèšäºã¯ãã¡ãïŒ Product Engineering Conference 2026 åå ã¬ããŒã -ãŽãŒã«ãã¹ãã³ãµãŒãšããŠåè³ããŸãã | MEDLEY Developer Portal Product Engineering Conference 2026 ã«ã€ã㊠ããã«ã¡ã¯ïŒäººæãã©ãããã©ãŒã ãšã³ãžãã¢ã®å±±æ²³ã§ãã åŒç€Ÿã¡ãã¬ãŒã¯ãå
æ¥äžéã»ã³ãã©ã«ããŒã¯ã§éå¬ããããProduct Engineering Con... developer.medley.jp é¢ã±åRubyäŒè°01 åå ã¬ããŒã - Goldã¹ãã³ãµãŒãšããŠåè³ããŸããïŒ | MEDLEY Developer Portal ããã«ã¡ã¯ãå»çãã©ãããã©ãŒã æ¬é𠿝ç§èšºçæäºæ¥éš DENTISéçºã°ã«ãŒãã®è€åã§ãã 2026幎4æã«ã¡ãã¬ãŒã«å
¥ç€Ÿããšã³ãžãã¢ãšããŠã¯ã©ãŠãæ¯ç§æ¥åæ¯æŽã·ã¹ãã ãDENTISããéçºããŠããŸãã ã¡ãã¬ãŒã¯2026幎5æ30æ¥ã«å²... developer.medley.jp TSKaigi 2026 åå ã¬ããŒã - Bronzeã¹ãã³ãµãŒãšããŠåè³ããåŒç€Ÿã®é«æ©ãç»å£ããŸããïŒ | MEDLEY Developer Portal ã¯ããã« ããã«ã¡ã¯ãå»çãã©ãããã©ãŒã æ¬éš CLINICS éçºã°ã«ãŒãã®å岡ã§ãã ã¡ãã¬ãŒã¯ 5 æ 22 æ¥ã»23 æ¥ã«ãã«ãµãŒã«çŸœç°ç©ºæž¯ã«ãŠéå¬ããã TSKaigi 2026 ã« Bronzeã¹ãã³ãµãŒãšããŠåè³ããŸããã T... developer.medley.jp RubyKaigi 2026 ã«Rubyã¹ãã³ãµãŒãšããŠåè³ããŸããïŒ | MEDLEY Developer Portal ããã«ã¡ã¯ïŒã¡ãã¬ãŒDevRelã®éç°ïŒ@Shige0096ïŒã§ãã 4/22(æ°Ž)-24(é) ã«åœé€šã§éå¬ãããRubyKaigi ã«ä»å¹Žãåå ããŠããã®ã§ããã®åå ã¬ããŒãããéãããŸãð ã¯ããã« æ ªåŒäŒç€Ÿã¡ãã¬ãŒã¯Rubyã¹ãã³... developer.medley.jp Weâre hiring! ã¡ãã¬ãŒã§ã¯äžç·ã«åã仲éã倧åéããŠããŸãïŒ ã«ãžã¥ã¢ã«é¢è«ã宿œããŠãããŸãããã話ã ãã§ãèããŠã¿ããïŒããã¡ãã£ãšéè«ããŠã¿ããïŒãã§ãæ§ããŸããã®ã§ããæ°è»œã«ãåãåãããã ããïŒ ã¡ãã¬ãŒã§åãïœæ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã§ã®åãæ¹ã人äºå¶åºŠãæ±äººæ
å ±ãªã©ãæ¡çšã«é¢ããæ
å ±ãã玹ä»ããŸãã www.medley.jp Medley Engineer Entrance Book ãã®åºŠã¯æ ªåŒäŒç€Ÿã¡ãã¬ãŒã«èå³ããå¯ãããã ãããããšãããããŸããæ¬è³æã¯ãã¡ãã¬ãŒãžã®è»¢è·ããæ€èšããã ããŠããçæ§ã«ãåœç€Ÿãããæ·±ããçè§£ããã ãããã«äœæããããŸããã medley-inc.notion.site
Product Engineering Conference 2026 ã«ã€ã㊠ããã«ã¡ã¯ïŒäººæãã©ãããã©ãŒã ãšã³ãžãã¢ã®å±±æ²³ã§ãã åŒç€Ÿã¡ãã¬ãŒã¯ãå
æ¥äžéã»ã³ãã©ã«ããŒã¯ã§éå¬ããããProduct Engineering Conference 2026 ã«ãŽãŒã«ãã¹ãã³ãµãŒãšããŠåè³ããŸããã Product Engineering Conference ã¯ãä»å¹ŽåããŠéå¬ãããã«ã³ãã¡ã¬ã³ã¹ã§ãããè·èœã®å£ãè¶ãããããã¯ã䟡å€ãæå€§åãããããã®ãæè¡ããšãç¥æµããå
±æããè°è«ããé«ãåãå Žãäœãããç®çãšããã«ã³ãã¡ã¬ã³ã¹ã§ãåœæ¥ã¯ãšã³ãžãã¢ãã¯ãããPMããã¶ã€ããŒãªã©ãæ§ã
ãªããŒã«ã®æ¹ãåå ããŠããŸããã åéå¬ã®ã«ã³ãã¡ã¬ã³ã¹ãªããã300å以äžã®æ¹ãåå ãããšãŠãè³ãããªäžæ¥ã§ããïŒ ãžã§ãããŒãã®æ§åãæ§ã
ãªäŒæ¥ã®æ¹ããããŒã¹ã®æ¡å
ããšã³ãžãã¢ã®åéæ¡å
ãªã©ãæžããŠããŸããã åœæ¥ã®æ§å ã¡ãã¬ãŒããŒã¹ ä»åã¡ãã¬ãŒã®ããŒã¹ã§ã¯ããè€éåºŠèæ§èšºæããšããŠã課é¡è§£æ±ºã«åããæèã¿ã€ãã®èšºæããçšæããŸããããã®èšºæã§ã¯ã5ã€ã®èšåã«çããããšã§ãã©ã®ãããªèãæ¹ã®ã¿ã€ããã蚺æããããšãã§ããŸãããŸããã¡ãã¬ãŒã®äžã®ã©ã®ãããã¯ãããããããããããšãããã®ãäžç·ã«æç€ºãããŠããã ããŸããã 蚺æçµæã®äžäŸã§ãããå®å¿èšèšåãã®å Žåã¯CLINICSãããããããããšãããŠããã ããŸããïŒ åœæ¥ã¯60åã»ã©ã®æ¹ã«ãåå ããã ããæçµçã«ã¯ãã®ãããªçµæãšãªããŸããã ååãããžã«ã«æ§é ååã®ãžã§ãã¡ãã¬ãŒã§ããïŒååäžã®æç¹ã§ã¯ãžã§ãã¡ãã¬ãŒãšçŸå Žå¯çåã®melmoãåã
ã§ãããååŸããå®å¿èšèšåã®CLINICSãå¢ããŠãããªã©ãæéã«ããå€åãèŠãããŠéåžžã«é¢çœãã£ãã§ãã ãåå ããã ããçæ§ãããããšãããããŸããïŒ ããã«ã㣠蚺æã«åå ããã ããçæ§ã«ã¯ããã®ãããªããã«ãã£ã®é
åžãè¡ããŸããã ä»åé
åžããããã«ãã£ã§ããå
šéšã§5çš®é¡ãšããã³ãã¬ããããçšæããŸããã ä»åç¹ã«äººæ°ã ã£ãã®ããšããŒãžã§ã³ã·ãŒãããã§ããïŒã³ã³ãã¯ããªããŒãã®äžã«ãç·æ¥æã«å¿
èŠãªãã®ããŸãšãŸã£ãŠããã®ã§ããšãŠã䟿å©ãªã°ããºã§ããä»åŸã®ã€ãã³ãã§ãé
åžäºå®ã§ãã®ã§ãèŠãããéã¯ãã²ããŒã¹ã«ç«ã¡å¯ã£ãŠãã ãããã ç»å£ã»ãã·ã§ã³ AI Transformation in Healthcare Product Development 2026/09/05 éå¬ã® Product Engineering Conference2026 ã§ã®ç»å£è³æã§ãã ç»å£è
: å»çãã©ãããã©ãŒã æ¬éšCTO 宿žå±å¿ ã€ãã³ã URL : https://product-engineering.jp/2026/ speakerdeck.com ãŸããä»åã®ã«ã³ãã¡ã¬ã³ã¹ã§ã¯ãå»çãã©ãããã©ãŒã ã®CTO宿žããåããå¢çããããäžåºŠè¶
ãã -å»çãããã¯ãéçºçµç¹ã®AIåç·šããšããã¿ã€ãã«ã§ç»å£ããããŸããã ã¡ãã¬ãŒã®æŽå²ãšããã®äžã§å€ãããªãã誰ããã詳ãããã建èšçã«é²ããããšãã䟡å€èгã«è§ŠããªãããåŒç€Ÿã§ã®AI掻çšã®äºäŸããæ°è·çš® ãApplied AI Developerã ã«ã€ããŠã®ç޹ä»ãªã©ãè¡ãããŸããããŸããAIãæŽ»çšããããã«åŒç€Ÿã§è¡ãªã£ãŠããåºç€ã®æŽåãä»çµã¿åã«ã€ããŠãè§ŠããŠããŸããã ã¡ãã¬ãŒã®AIã«é¢ããåãçµã¿ã¯ ãã¡ã ã«ã詳现ãããããŸãã®ã§ã䜵ããŠã芧ããã ãããšå¹žãã§ãïŒ ã»ãã·ã§ã³åå åœæ¥ã¯ãæåŸ
è¬æŒã»ã¹ãã³ãµãŒã»ãã·ã§ã³åãããŠ33ã®ã»ãã·ã§ã³ãè¡ãããŸãããæ¬ããã°ã§ã¯ããã®ãã¡ã®2ã€ãã玹ä»ããŸãã å¶æ¥ã»CSããéçºã®åœäºè
ãã«ãã â å°äººæ°ããŒã ã§è€æ°ãããã¯ããåããDev<>Ops飿ºã®æ¹æ³ ãã®ã»ãã·ã§ã³ã¯ãDevåŽã»OpsåŽããããããç»å£ããã2åã§çºè¡šãè¡ãããŸããã æ¥åã§ã®AIã®æŽ»çšãé²ã¿ãè·çš®ãè¶å¢ããŠæ¥åãè¡ãããã«ãªã£ãäžã§ãã©ã®ããã«ããããã®è·çš®ã§è¡ãæ¥åãå€ãã£ãŠãã£ããããããŠã©ã®ããã«ååããŠãããã玹ä»ãããŸããããŸããè¶å¢ã«å¿
èŠäžå¯æ¬ ãªãAIã䜿ã£ãéçºãå®å
šã«è¡ãããã®å·¥å€«ãã話ãããã ããŸããã ç¹ã«ãè·çš®ã®å¢çã¯èããªã£ããããããããå
šãåãããšãããããã§ã¯ãªããå°éæ§ãæã£ãŠé²ããŠããã¹ãã ããšãã䞻匵ãéåžžã«è¯ããªãšæããŸãããAIãæŽ»çšãã€ã€ããããããã®ç¥èãçµéšã掻ãããŠååããããšã§ãä»ãŸã§ããæ©ãè¯ããããã¯ããäœæã§ããããããªçµç¹ãç®æããŠãããããšæ¹ããŠæããŸããã å¶æ¥ã»CSããéçºã®åœäºè
ãã«ãã â å°äººæ°ããŒã ã§è€æ°ãããã¯ããåããDev<>Ops飿ºã®æ¹æ³ AIã§éçºã¹ããŒããã³ã¢ãã£ãã£åããä»ããããã¯ãã®ç«¶äºåã¯ãã©ãã ãéãäœããããããã顧客ããéãæã£ãŠã§ã解決ããã課é¡ããããã«ã·ã£ãŒãã«èŠæ¥µããŠäœãããããžç§»ãã€ã€ãããŸããäžæ¹ã§ãçŸå Žã§ã¯ãå¶æ¥ã»CSããäžããèŠæãã©ãéçºã«æŽ»ãããããäœã£ããã®ãæ¬åœã«åºããã®ãããèŠãã¥ããããšããæ©ã¿ã¯å°ãªããªãã¯ãã§ãã estieã®ç§ãã¡ãæå±ããéçºããŒã ã§ã¯PdMã眮ãããå°äººæ°ã§è€æ°ãããã¯ããéçºããŠããŸãããã®äœå¶ã§ã¯ãDevïŒéçºïŒãšOpsïŒå¶æ¥ã»CSïŒãåãç®çãå
±æããè°è«ãéããŠãäœãäœããããæ±ºããããããããããã¯ãã®äŸ¡å€ã«çŽçµããŸãã æ¬ã»ãã·ã§ã³ã§ã¯ãå¶æ¥ã»CSããéçºã®åœäºè
ãã«ãªãããã«ç§ãã¡ãèšèšããä»çµã¿ããææ¥ããåãå
¥ããããç²åºŠã§ç޹ä»ããŸããäžæ¹çãªå
±æã§çµããããè°è«ã®æéãæç€ºçã«èšãããDev<>Opså®äŸããpreviewç°å¢ãšAIã§çéã«äœã£ããããã¿ã€ãããã®å Žã§Opsã«åœãŠãæ€èšŒãDevåŽã¡ã³ããŒã®åè«ååžãCSå«ããVoCã®æ£åžæ¹æ³ãçã
ãDevèŠç¹ã§ã¯äŸ¡å€ããªããšæã£ãæ©èœã顧客ã«åºãã£ãããOpsèŠç¹ã§é£ãããšæã£ãèŠæãå®ã¯ç°¡åã«äœããããè°è«ã®å Žã ããããçãŸããçºèŠãšããDevã売äžã«ããOpsãéçºã«ãã³ãããããåœäºè
æèãã©ãè²ã€ãããå
·äœçãªéçšãšãšãã«ã話ãããŸãã å¶æ¥ãCSã¡ã³ããŒããããå®éã®å€åãå
·äœçã«ã話ãããŸããå¶æ¥ã¯ãèšã£ãŠãå€ãããªãããšè«ŠããŠããèŠæããåè«ååžâãã®å Žã§è°è«âAIã§çéãããã¿ã€ãâ顧客ã®WOWããçµãŠãå±ããã°åœ¢ã«ãªãããžãšå€ãããŸãããCSåŽã§ããããã»ã¹ãéããè¿
éãªéçºã𿩿ããªããªã«ãã£ãŠã顧客ãšã®ä¿¡é Œéžæã«ç¹ãã£ãããVoCã·ãŒãã®æèšã ãã§ã¯åãããŠãã声ããããæž©åºŠæãé«ã課é¡ããè€æ°é¡§å®¢ã«å
±éãã課é¡ãã ãšå€æããŠåªå
é äœãçµã¿æ¿ããããšãã£ãçºèŠãçãŸããŠããŸãã ãããã£ãçºèŠãå€åã®ç©ã¿éãã§ãdevãopsãšãã«ãèŠæãéããã ãã§ã¯ãªãã顧客課é¡ãã®ãã®ãèŠããšãã£ãæèã«å€åããŠããŸãã fortee.jp å¶æ¥ã»CSããéçºã®åœäºè
ãã«ãã ïœå°äººæ°ããŒã ã§è€æ°ãããã¯ããåããDev<>Ops飿ºã®æ¹æ³ïœ AIã§éçºã¹ããŒããã³ã¢ãã£ãã£åããä»ããããã¯ãã®ç«¶äºåã¯ãã©ãã ãéãäœããããããã顧客ããéãæã£ãŠã§ã解決ããã課é¡ããããã«ã·ã£ãŒãã«èŠæ¥µããŠäœãããããžç§»ãã€ã€ãããŸããäžæ¹ã§ãçŸå Žã§ã¯ãå¶æ¥ã»CSããäžããèŠæãã©ãéçºã«æŽ»ãããããäœã£ããã®ãæ¬åœã«åºããã®ãããèŠãã¥ããããšããæ©âŠ speakerdeck.com AIã§å®è£
ã¯éããªã£ãããªã®ã«ãããã¯ãã¯éããªããªããè·èœã®å£ãè¶ããŠäŸ¡å€ã®ãããŒãèšèšãã AIã䜿ã£ãŠãããã¯ããäœãæä»£ã«ãæ©ããªããªãããšæããçç±ãããã®å¯ŸåŠæ¹æ³ãäœç³»ç«ãŠãŠèª¬æãããŠããã»ãã·ã§ã³ã§ããããŸããAIã䜿ã£ãŠæ©ããªãã®ã¯äž»ã«ãã¢ãŠãããããã§ãããæ¬æ¥èŠãã¹ã䟡å€ãå±ããŸã§ã®æéãããªãã¡ãã¢ãŠãã«ã ããæåŸ
éãèµ·ãããŸã§ãæ©ããªã£ãããã§ã¯ãªããšãã話ããããŸããããŸãããã¢ãŠãããããããå®éã«äœæ¥ããŠããæéãšåŸ
ã¡æéããããAIã§æ©ããªãã®ã¯äž»ã«äœæ¥ã®æéã§ããããšãã話ããããŸããããã®åæã®ããšã§ãäœãèšæž¬ããŠããã°è¯ãããã©ãé²ããŠããã¹ããã«ã€ããŠãããŸããŸãªèŠç¹ã§ã®æŽçã説æãããŸããã AIã§å®è£
ã¯éããªã£ãããªã®ã«ãããã¯ãã¯éããªããªããè·èœã®å£ãè¶ããŠäŸ¡å€ã®ãããŒãèšèšãã â ã»ãã·ã§ã³æŠèŠ AIã¯å®è£
ã®çµæžãå€ããŸãããåãã³ãŒããæžãã³ã¹ãã¯äžããç¶ãããšã³ãžãã¢å人ã®çç£éã¯ç¢ºãã«å¢ããŸãããããã§ãããããã¯ãã䟡å€ãå±ããé床ã¯ã»ãšãã©å€ãã£ãŠããŸãããå¢ããçç£éã¯ã©ãã«æ¶ããŠããã®ãã ããŒã ã§ã³ããããããªãªãŒã¹ãŸã§ã®æéãèšæž¬ããããšããããŸããå®äœæ¥ã¯å
šäœã®10%ãæ®ãã®90%ã¯å€æåŸ
ã¡ãã¬ãã¥ãŒåŸ
ã¡ãä»ããŒã åŸ
ã¡ã§ããããã®æ§é ã®ãŸãŸå®äœæ¥ãAIã§ååã«ããŠããå
šäœã¯5%ããçž®ã¿ãŸãããå¶çŽã¯æãåããé床ã§ã¯ãªããè·èœã®éã®åæãšå€æã®åŸ
ã¡æéã«ãããŸãã èšæž¬ã«ã¯çœ ããããçç£éãPRæ°ãšãã£ã枬ããããæ°åã¯ãAIã§äŒžã³ãŸãããããããã¯äœã£ãéã§ãã£ãŠã䟡å€ãå±ããã®ã§ã¯ãããŸãããæž¬ãããããã®ã枬ããšãéãäœããã»ã©éãã䜿ãããªãæ©èœãç©ã¿äžãããŸãã ã§ã¯ãäœãã¹ãããã¯äœãåºæºã«å€æããã®ãããŠãŒã¶ãŒã¯æ©èœãè²·ã£ãŠããã®ã§ã¯ãªããçä»ãããçšäºã®ããã«ãããã¯ããéã£ãŠããŸããäœãããã®ããããå¢ããŠãããŠãŒã¶ãŒã®çšäºã¯å¢ããŸãããã³ã¢ã ãšä¿¡ããé åããããŒãžããµãŒãã¹æ°åè¡ã«çœ®ãæãã£ã誀ç®ããå幎èšç»ã®å€§èŠæš¡å·æ°ã4ã¶æç®ã«ããŒã«ããã¯ãã倱æããæ¯ãè¿ãã°ã誰ã®ã©ã®çšäºãçä»ããã®ãããåããªããŸãŸãäœãããã®ãäœã£ãŠããŸããã æ¬ã»ãã·ã§ã³ã§ã¯ããã®æ§é ãèšèšãçŽãæ¹æ³ã話ããŸãã䟡å€ãå±ããŸã§ã®æµããæž¬ã£ãŠå¶çŽã®äœçœ®ãç¹å®ãããè·èœããšã«éã颚æ¯ãèŠãŠããPMã»ãšã³ãžãã¢ã»SREã®åæããäžæã®çµµã§æããããããŠæ©èœã§ã¯ãªããŠãŒã¶ãŒã®çšäºãèµ·ç¹ã«ãäœãã¹ãããããã€ãããããã倿ããããäœããããã«ã¯AIãçããŠãããããäœãã¹ãããã«ã¯èª°ã代ããã«çããŠãããªãããã®å€æãèšæž¬ãšçšäºã®çè§£ã§æ¯ããããšãããããã¯ããšã³ãžãã¢ã®äžå¿çãªä»äºã«ãªããšèããŠããŸãã â Learning Outcome 察象: ãšã³ãžãã¢ãäžå¿ã«ãPMã»ãã¶ã€ããŒã»SREãªã©ããããã¯ãéçºã®æææ±ºå®ã«é¢ãããã¹ãŠã®è·çš® - AIã§å®è£
ãéããªã£ãŠããããã¯ããéããªããªããæ§é çãªçç± - 枬ããããçç£éã§ã¯ãªãã䟡å€ãå±ããŸã§ã®æµããæž¬ã£ãŠå¶çŽãèŠã€ããæ¹æ³ - ãäœãã¹ãããããã€ãããããããŠãŒã¶ãŒã®çšäºãã倿ããããã®åºæº fortee.jp AIã§å®è£
ã¯éããªã£ãããªã®ã«ãããã¯ãã¯éããªããªããè·èœã®å£ãè¶ããŠäŸ¡å€ã®ãããŒãèšèšãã çæAIã«ãã£ãŠéçºè
ã®æã¯å
ã®éãã§åããŠããããªã®ã«ããªãªãŒã¹ã¯çžå€ããããæ¥æã®ã©ãããã ã§ã¯ãç¯äººã¯ AI ãªã®ãïŒ AI ãã³ãŒããçéã§åãåºããããšããã®ææç©ããPdM åŸ
ã¡ãããã¶ã€ã³åŸ
ã¡ããQA åŸ
ã¡ããæ³ååŸ
ã¡ããåãäººã®æ°ååŸ
ã¡ããšããè·èœããšã®åŸ
å宀ãå·¡ããæ°ã¥ãããå®âŠ speakerdeck.com ã»ãã·ã§ã³ãŸãšã å
šäœãšããŠããããŸã§åå ããã«ã³ãã¡ã¬ã³ã¹ãç¹ã«æšå¹ŽãŸã§ã«éå¬ãããã«ã³ãã¡ã¬ã³ã¹ã§ã¯ãAIã§ãããªããšããããŸããïŒããšãã玹ä»ãå€ãã£ãå°è±¡ã§ãããä»åã®ã«ã³ãã¡ã¬ã³ã¹ã¯AIãšãšãã«ãããã¯ãéçºãé²ããŠããããã®ä»çµã¿ããããã«äŒŽããã€ã³ã®è©±ãå€ãã£ãå°è±¡ãåããŸããããŸãããããŸã§ãšã¯éããã»ãšãã©ãAIã«ã€ããŠè§Šããªããã®ã»ãã·ã§ã³ã§ãããšããå°è±¡ãåããŸããã人ãAIãåãå
¥ããŠäœ¿ãå§ããæä»£ã匷ãæããäžæ¥ã§ããã æèŠªäŒ ã«ã³ãã¡ã¬ã³ã¹ã®æåŸã«ã¯æèŠªäŒãè¡ãããŸããïŒ æèŠªäŒã§ã¯ãCloudBaseæ§æäŸã®ããŒã«ã§ä¹Ÿæ¯ãããã®åŸã¯èªç±ã«åå è
å士ã§äº€æµã楜ãã¿ãŸããã è·çš®ãçµæŽã幎代ããã©ãã©ã®æ¹ã®éãŸãã§ããããã»ãã·ã§ã³ã®ææ³ããèªç€Ÿã®éçºäœå¶ãä»åŸã®ãããã¯ãéçºã®æªæ¥ãŸã§ã話é¡ãå°œããããšã¯ãããŸããã§ããã2æéåã»ã©ã®é·ãæéã§ããããéåžžã«çãäžãã£ãè¯ãæèŠªäŒã ã£ããšæããŸãã ãããã« ä»åãåéå¬ã®Product Engineering Conferenceãè·çš®ã®å£æ ¹ãè¶ããããŸããŸãªè°è«ãè¡ãããšãã§ããã«ã³ãã¡ã¬ã³ã¹ã ã£ãã®ã§ã¯ãªãã§ãããããéå¶ã®çæ§ãããããšãããããŸããã ãŸããæ¹ããŠãåŒç€ŸããŒã¹ããã³ã»ãã·ã§ã³ã«ãè¶ãããã ããçæ§ã«ãã瀌ç³ãäžããŸãã åŒç€Ÿã¯å¹ŽéãéããŠæ§ã
ãªæè¡ã³ãã¥ããã£ãã€ãã³ããžåè³ã»è²¢ç®ãè¡ã£ãŠãããŸãããã²ä»åŸãæ§ã
ãªã€ãã³ãã§ãäŒãã§ããããšã楜ãã¿ã«ããŠããŸãã ã¡ãã¬ãŒã§ã¯ãšã³ãžãã¢ãç©æ¥µæ¡çšäžã§ãïŒ ã¡ãã¬ãŒã§ã¯AIãã¯ãããšãããã¯ãããžãŒã掻çšããŠãå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ãããããã¯ããéçºããŠããŸãããšã³ãžãã¢ããã¶ã€ããŒãPMãæ§ã
ãªè·çš®ã§åéããŠãããŸãã®ã§ããèå³ã®ããæ¹ã¯ãã²ãã«ãžã¥ã¢ã«é¢è«ãžã®ãç³ã蟌ã¿ããåŸ
ã¡ããŠãããŸãïŒ ãšã³ãžã㢠ãªãŒãã³ããžã·ã§ã³ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ãšã³ãžã㢠ãªãŒãã³ããžã·ã§ã³ïŒæ ªåŒäŒç€Ÿã¡ãã¬ãŒïŒã®æ±äººæ
å ±ã§ãã | HRMOS hrmos.co ãããã¯ãäŒç»è²¬ä»»è
ïŒäººæãã©ãããã©ãŒã æ¬éš | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ãããã¯ãäŒç»è²¬ä»»è
ïŒäººæãã©ãããã©ãŒã æ¬éšïŒæ ªåŒäŒç€Ÿã¡ãã¬ãŒïŒã®æ±äººæ
å ±ã§ãã | HRMOS hrmos.co ãããã¯ããã¶ã€ããŒïŒäººæãã©ãããã©ãŒã æ¬éš | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ãããã¯ããã¶ã€ããŒïŒäººæãã©ãããã©ãŒã æ¬éšïŒæ ªåŒäŒç€Ÿã¡ãã¬ãŒïŒã®æ±äººæ
å ±ã§ãã | HRMOS hrmos.co Applied AI Developer | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ Applied AI DeveloperïŒæ ªåŒäŒç€Ÿã¡ãã¬ãŒïŒã®æ±äººæ
å ±ã§ãã | HRMOS hrmos.co
ãã¡ãã®èšäºã¯ãMEDLEY Summer Tech Blog Relayãã®28æ¥ç®ã»æçµæ¥ã®èšäºã§ãã MEDLEY Summer Tech Blog Relay | MEDLEY Developer Portal ããã«ã¡ã¯ïŒDevRelã®éç°ïŒ@Shige0096ïŒã§ãã ã¡ãã¬ãŒã§ã¯å€äŒç»ãšããŠãMEDLEY Summer Tech Blog Relayããšé¡ããŠãããã°ãªã¬ãŒãéå¬ããŸãïŒ 7/13(æ)ã8/21(é)ãŸã§æ¯æ¥ç°ãªãã¡ã³ããŒã... developer.medley.jp ã¿ãªãããããã«ã¡ã¯ãæ ªåŒäŒç€Ÿã¡ãã¬ãŒ 人æãã©ãããã©ãŒã æ¬éš VPoE ã®åæïŒ @terukura ïŒã§ããå
šç€Ÿã®AI掻çšãæ¯ããAIåºç€éçºå®€ã®å®€é·ãå
ŒåããŠããŸãã 7æ13æ¥ãã28æ¥éãå¹³æ¥æ¯æ¥ã€ãªãã§ãããªã¬ãŒã仿¥ã§ãŽãŒã«ãšãªããŸãã瀟å
ã®çãããå®èµ°ãç²ãæ§ã§ããïŒïŒ ã¯ããã« å
æ¥ã瀟å
ã§ãããªå
æ¯ããããŸããã æ³åã®ã¡ã³ããŒã Pull Request ãåºããAIãšãŒãžã§ã³ããã¬ãã¥ãŒã³ã¡ã³ããä»ãããããåããŠä¿®æ£ãããŒãžãããã ãããŸã§ãªããéçºããŒã ã®æ¥åžžã§ãããã ããã®PRã®äžèº«ã¯ã³ãŒãã§ã¯ãªããå¥çŽæžã¬ãã¥ãŒã®èгç¹ããŸãšããskillå®çŸ©ã§ãããåºããã®ã¯ãšã³ãžãã¢ã§ã¯ãªããæ³åã®ã¡ã³ããŒæ¬äººã§ãã æšå¹Ž4æã«ãã¡ãã¬ãŒã®AIæŽ»çšæŠç¥ïŒAI for AllããšããèšäºãæžããŸããããå
šè·çš®ãå
šæ¥åã§åœããåã«AIãæŽ»çšãããâåœæã¯ãŸã 宣èšã«è¿ãã£ããã®èšèãããã®1幎ã§ã©ããŸã§çŸå®ã«ãªã£ãã®ãã ã¡ãã¬ãŒã®AIæŽ»çšæŠç¥ïŒãAI for Allã | MEDLEY Developer Portal ã¡ãã¬ãŒã® AI æŽ»çšæŠç¥ ããã«ã¡ã¯ïŒã¡ãã¬ãŒæ ªåŒäŒç€Ÿ 人æãã©ãããã©ãŒã æ¬éš VPoE ã®åæ(@terukura)ã§ããä»åã¯ãã¡ãã¬ãŒã«ããã AI 掻çšã®åãçµã¿ã«ã€ããŠã玹ä»ããŸãã æšä»ãå€ãã®äŒæ¥ã AI ã®æŽ»çšã«åãçµã... developer.medley.jp ãã®çããäžèšã§ãããšããããªããŸãã å
šè·çš®ã«AIãå±ããããšããçµæãå
šè·çš®ãGitHubã䜿ãäŒç€Ÿã«ãªã£ãŠããã ãã®èšäºã§ã¯ããªããããªã£ãã®ãããããŠãããæ¯ããŠããä»çµã¿ã®äžéšã玹ä»ããŸãã 宀é·ãåããŠããAIåºç€éçºå®€ã¯ãAIå
±éåºç€ã®æ§ç¯ãããŒã«ã®éžå®ã»éçºã»éçšãç°å¢æŽåãšãã£ãåå°ã¥ãããšããããçŸå Žã«è¡ãæž¡ãããAIæŽ»çšæšé²ïŒããããAI EnablingïŒã®äž¡æ¹ãæ
ã£ãŠããŸããåºç€ã¯ãäœãã ãã§ã¯äœ¿ãããŸãããäœã£ãŠãå±ããŠã䜿ããããšãããŸã§ãä»äºã§ãã ãã®1å¹Žã®æŽ»åã貫ããŠããããŒãã¯ã次ã®3ã€ã§ãã ãšãŒãžã§ã³ããéããå®å
šã«èµ°ããç°å¢ïŒããŒãã¹ïŒãæŽãã æ¥åç¥èïŒskillïŒãæµéããã 广ãèšæž¬ããèŠããåãã ãã®èšäºã§ã¯ããã®3ã€ãè»žã«æ¯ãè¿ããŸãã ãªããå
šç€ŸAIããŒãã¹ããå¿
èŠã«ãªã£ãã®ã AIãšãŒãžã§ã³ãã«ä»äºãä»»ããããšãããšãããã«æ°ã¥ãããšããããŸãã ãšãŒãžã§ã³ãã«ã¯ãåãå ŽæããèŠãããšããããšã§ãã æ¥åã®æèïŒã«ãŒã«ãéå»ã®å€æããã¡ã€ã³ç¥èïŒã¯ã©ãã«çœ®ãã®ã ææç©ã¯ã©ãã«åºãã®ã 人éã«ããã¬ãã¥ãŒãšæ¿èªã¯ã©ãã§åãã®ã æ¹åã®å±¥æŽã¯ã©ãã«ç©ãã®ã ãã£ããUIãæè¿ã¯ã¡ã¢ãªããããžã§ã¯ãæ©èœãåããã䜿ãã»ã©è³¢ããªããæ¹åã«é²åããŠããŸãããã ããã®èç©ã¯å人ãšããŒã«ã®äžã«éããã¡ã§ããé£ã®ããŒã ããã¯çºèŠã§ãããã¬ãã¥ãŒãå±¥æŽãæ®ãããå¥ã®ãšãŒãžã§ã³ãã«ã¯æã¡éã¹ãªããå人ã®çç£æ§ã¯äžãã£ãŠããçµç¹ã®è³ç£ã«ã¯ãªãã«ãããšæããŠããŸãã ãšãŒãžã§ã³ãã®å®è¡ç°å¢ïŒããŒãã¹ïŒã«å¿
èŠãªèŠä»¶ã䞊ã¹ãŠã¿ããšâ ãšãŒãžã§ã³ãã«å¿
èŠãªãã® ãããæºãããã® æèã®èç©ãšç管ç ãªããžã㪠+ ããŒãžã§ã³ç®¡ç ææç©ã®çœ®ãå Ž ãªããžã㪠人éã®æ¿èªãã㌠Pull Request èªåå®è¡ GitHub Actions äœæ¥ãã¥ãŒ Issues 䞊ã¹ãŠã¿ãŠãæ°ã¥ããŸããããã®èŠä»¶ã¯ããã¹ãŠGitHubãæºãããŠããŸãã æ°ããAIåºç€ããŒã«ãæ¢ããŸã§ããªãããšã³ãžãã¢ã20幎è¿ã䜿ãç¶ããŠããéå
·ããAIæä»£ã®å
šç€ŸããŒãã¹ã®èŠä»¶ããã®ãŸãŸæºãããŠãããç§ãã¡ã¯ãã®äºå®ãåãå
¥ããGitHubã軞ã«å
šç€Ÿã®ããŒãã¹ãæŽããŠããããšã«ããŸããã ãšãŒãžã§ã³ãã®çç£æ§ã¯ãã¢ãã«ã®è³¢ãã ãã§ã¯æ±ºãŸããŸãããæŽåãããéè·¯ã®äžã§ããè»ãã¹ããŒããåºããããã«ãåãã¢ãã«ã§ããèµ°ãç°å¢âããŒãã¹â次第ã§åºããé床ãšå®å
šæ§ã¯ãŸãã§å€ãããŸããç§ãã¡ããã®1幎ãã£ãŠããã®ã¯ããã®éè·¯ãå
šç€Ÿã«æ·ãããšã§ããã éšéããšã« .claude/ ãæã€ çŸåšã®ã¡ãã¬ãŒã§ã¯ããšã³ãžãã¢çµç¹ã®å€ã«ãéšéããšã®ãªããžããªããããŸããå®éã®æ§æã®äžéšãæãããšâ legal-compliance/ # æ³åã»ã³ã³ãã©ã€ã¢ã³ã¹ .claude/skills/ # contract-review(å¥çŽã¬ãã¥ãŒ), ops-ringi(çšè°)⊠human-capital/ # äººäº .claude/skills/ # jd-review(æ±äººç¥šã¬ãã¥ãŒ), workflow-review(æ¥åãããŒ)⊠corporate-it/ # ã³ãŒãã¬ãŒãIT .claude/skills/ # support-L1(ãã«ããã¹ã¯äžæ¬¡å¯Ÿå¿), isms-take-inventory-github(ISMSæ£åžã)⊠internal-audit/ # å
éšç£æ» .claude/skills/ # draft-jsox-rcm(J-SOXææžãã©ãã), review-audit-workpaper(ç£æ»èª¿æžã¬ãã¥ãŒ)⊠å¥çŽã¬ãã¥ãŒã®èгç¹ããçšè°ã®éãæ¹ããJ-SOXã®ææžåããéšéã®æ¥åç¥èãã®ãã®ã .claude/ ïŒskillsãCLAUDE.mdïŒãšããŠããŒãžã§ã³ç®¡çãããŠãã£ãŠããã®ããã€ã³ãã§ãã æ¥åã«ãŒã«ã®å€æŽã¯PRã«ãªããã€ãŸãã¬ãã¥ãŒãšå±¥æŽãæ®ã æ°ã¡ã³ããŒïŒäººéãAIãïŒã¯ããªããžããªãcloneããã°éšéã®æèãæãŠã äŒè°å®€ã®ç©ºããæ¢ãskillããç£æ»èª¿æžã¬ãã¥ãŒãŸã§ãç²åºŠã®å€§å°ãåããããã®éšéã®ããæ¹ãã圢åŒç¥ã«ãªã éããŠãå
±æããŠãé
åžãã skillãåéšéã®ãªããžããªã«æ£ãã°ããšãä»åºŠã¯åããããªskillã®ä¹±ç«ããè»èŒªã®åçºæãèµ·ããŸããããã§ãåéâå
񑃂
åžã®3å±€ã§æµéãããä»çµã¿ãäœããŸããã åéïŒcollectïŒ : æ¯æ¥æ©æãã°ã«ãŒãå
šorgã»400è¶
ã®ãªããžããªãã¹ãã£ã³ããŠãAIèšå®ãã¡ã€ã«ã暪æåéãéããskillã¯ååã»èª¬æã»åºå
žãªããžããªã€ãã®å
šç€Ÿã«ã¿ãã°ãšããŠèªåæŽçãããæ¥ã
ã®å·®åãSlackã«æµãã å
±æïŒshareïŒ : è¯ããããªãã®ã¯å
±æãªããžããªã«æã¡å¯ãã npx skills add ã§äœ¿ããã人ãèªåã§åŒããŠãããæ°è»œãªçœ®ãå Ž é
åžïŒmarketplaceïŒ : å
šç€Ÿæšæºãšå€æãããã®ã ããããã©ã°ã€ã³ãšããŠç管çã€ãã§æ£åŒé
åžãClaude Codeã® /plugin install ãšãéãšã³ãžãã¢ã䜿ãClaude Coworkã§åäžã®marketplaceãå
±çšããããã«Claude Teamã®çµç¹èšå®ã§æ¬äººãäœãããªããŠãå±ã å
±æãšé
åžã®éãã¯ãå±ãæ¹ãšè²¬ä»»ã§ããå
±æã¯äœ¿ã人ãåŒãïŒpullïŒãé
åžã¯å
šç€Ÿã«æŒããŠå±ããïŒpushïŒãæã¡å¯ãã®æ°è»œããšæšæºè£
åã®ä¿¡é Œæ§ã¯æ±ãããããã®ãéãã®ã§ãåãå Žæã«æ··ããªãããã«ããŠããŸãã ç§ãã¡ã®ä»çµã¿ãå°ãçããã®ã¯ããå
±éãªããžããªãçšæããã®ã§ãããã§å
±æããŠããããå§ããªãã£ãããšã ãšæã£ãŠããŸãã skillãã«ãŒã«ã¯ãæ¥åã®ãããšããã§çãŸããŸããåãããã¯ãã®ãªããžããªã«ã¯ããã®ããŒã ã®skillããšãŒãžã§ã³ãåãã®ã«ãŒã«ãCLAUDE.mdãã«ã¹ã¿ã ãšãŒãžã§ã³ãå®çŸ©ãhooksãæ¢ã«å€§éã«è²ã£ãŠããŸããå€ããªããžããªã§ã¯skillã ãã§90è¿ããããããäžå€®ã®ãªããžããªã«åŒã£è¶ããŠå
±æããŠãããšèšã£ãç¬éãçŸå Žã®æèããåãé¢ãããŠé³è
åãããããããã誰ãåŒã£è¶ããŸããã ã ããé çªãéã«ããŸãããskillã¯çŸå Žã®ãªããžããªã«çœ®ãããŸãŸãåéããåŽãæ¯æ¥å
šéšãèªã¿ã«è¡ããæžãæã«ã¯äœã®äœæ¥ãæ±ããªããè¯ããã®ã¯ã«ã¿ãã°ã®äžããçºèŠãããå¿
èŠã«ãªã£ã段éã§åããŠå
±æã»é
åžãžææ Œãããäžå€®ã¯ãæ£ãã§ã¯ãªããçŸå Žã®ååã§ãã åéã¯æžãæã«ãé
åžã¯äœ¿ãæã«ãäœæ¥ãæ±ããªãã 䞡端ããŒãã¿ããã§ããããš ããå
šç€Ÿã«åºããããã§äžçªå¹ãããšæããŸãã ãã®ä»çµã¿ã§èŠããããã«ãªã£ãskillã®æ°ã¯â ææš åééå§æïŒ2026-03ïŒ çŸåšïŒ2026-08ïŒ ã¹ãã£ã³å¯Ÿè±¡ãªããžã㪠280 445 CLAUDE.md ã®æ° 147 370 Claude Skills ã®æ° 212 1,221 çŽ5ã¶æã§skillã¯6åè¿ãã«å¢ããŸããããçºèŠã§ãããããã«ããã ãã§ãé£ã®éšéã®skillãåèã«èªéšéçãäœãåããèªç¶ã«çãŸããŠããŸãã skillã«ããã¹ããæžã skillã1,000ãè¶
ãããšããäœã£ãã®ã«çºç«ããªãããé¢ä¿ãªãå Žé¢ã§çºç«ããããå質åé¡ã«ãªããŸããããã§å
±æãªããžããªã®skillã«ã¯ããªã¬ãŒè©äŸ¡ã»ããã忢±ããŠããŸãã should_trigger: true ã®ã¯ãšãªã ãã§ãªããããã®ã¯ãšãªã§ã¯çºç«ããŠã¯ãããªãããšãããã¬ãã£ãäŸãæžããçºç«ããããskillã¯ãçºç«ããªãskillãšåããããæå®³ã ããã§ãã ããã«ãClaudeçšã«æžããskillãCodexã§ãæ©èœãããã codex exec ã§smoke testããèªäœevalãéçšããŠããŸãã1ã€ã®skillãClaude Code / Cowork / Codexã®3ã€ã®ããŒãã¹ã«åãã以äžããã¹ããããŒãã¹æšªæã§ãã éãšã³ãžãã¢ã¯GitHubã䜿ããã®ã æ£çŽã«èšããšãããŸãç°¡åã§ã¯ãããŸããã ãã³ããããããã©ã³ãããšããèªåœã®å£ ã³ã³ããªã¯ãã§å®å
šã«æãæ¢ãŸã ããããããŒã«ã«ç°å¢ãæã£ãŠããªã ãéãšã³ãžãã¢ãPRãåºãäŒç€Ÿãã®å
è¡äŸãšããã°ã GitLabã®handbookæå ãæåã§ããå
šç€Ÿå¡ãMerge Requestã§ãã³ãããã¯ãçŽãããã ãããã¯ãæ¡çšãããªã³ããŒãã£ã³ã°ãŸã§é·ãæéããããŠæ ¹ä»ãããæåããã£ãŠããæç«ãããã®ã§ãåãããæ¹ãããã«ç䌌ããã®ã¯é£ãããç§ãã¡ãéžãã ã®ã¯ã 人ãGitã«æ©ã¿å¯ãã®ãåŸ
ã€ã®ã§ã¯ãªããAIãšããŒãã¹ã®åŽããäººã«æ©ã¿å¯ãããæ¹ã§ãã ã ããã§ãåã«é²ããŠããã®ã¯ãæžãäœæ¥ã®å€§åãAIãšãŒãžã§ã³ããè©ä»£ããããããã§ããå¥çŽã¬ãã¥ãŒã®skillãçŽãããæ³åã¡ã³ããŒãAIã«ãããçŽããŠããšäŒããã°ããã©ã³ããã³ããããPRãAIãäœããæ¬äººã«æ®ãã®ã¯ãGitã®æäœã¹ãã«ã§ã¯ãªããã¬ãã¥ãŒããŠæ¿èªãããããšã ããPRãšããæ¿èªãããŒã¯ããããéãšã³ãžãã¢ã«ãšã£ãŠèªç¶ã ã£ãã®ã§ãã ãããŠããã²ãšã€å€§äºãªã®ã¯ã ãããããGitHubã䜿ããããã«ãªãããšããç®çã«ããŠããªãã£ãããšã§ã ãããŸãGitãèŠããŸãããããšããç ä¿®ããå
¥ã£ãããã§ã¯ãããŸãããéãšã³ãžãã¢ã®ç®çã¯ãããŸã§ãAIã«ä»äºãä»»ããããšãã§ãããGitHubã¯ãšãŒãžã§ã³ããåãå ŽæãšããŠããã®åŸãã«éãã«ã€ããŠããã ãã§ããã¿ã€ãã«ã®ãAIãå±ããããšããããGitHubã䜿ãäŒç€Ÿã«ãªã£ãŠãããã¯ãæåéããã®é çªã®è©±ã§ãã å
šéšåéãã ã ãããæ¯ããAI Usage ããŒãã¹ãæŽããšãè¯ãããšããããŸããå
šéšãèŠããããã«ãªãã®ã§ãã ç§ãã¡ã¯AIå©çšã®ç¶æ³ããAI Usageããšããå
補ããã·ã¥ããŒãã«éçŽããŠããŸããåéããŠããã®ã¯â ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã®ãã¬ã¡ã㪠: Claude Code / Claude Cowork / Codex ããOpenTelemetryã§çŽæ¥åé åAIããŒã«ã®API : CursorãDevinãGitHub CopilotãClaude / OpenAI Platform API åºç€ããŒã«ã®å©çšç¶æ³ : n8nãDify LLMã¢ããªã®å質ããŒã¿ : Langfuseã®traceãšè©äŸ¡ã¹ã³ã¢ éçºææ : GitHubã®PRããŒã¿ïŒFour KeysïŒ çµç¹ããŒã¿ : 人äºããŒã¿ãšçªåããŠæ¬éšå¥ã»è·çš®å¥ã®æŽ»çšçãç®åº ã¡ãªã¿ã«ãéããããŒã¿ã®åºå£ã¯Webã®ããã·ã¥ããŒãã ãã§ã¯ãããŸãããMCPãµãŒããŒãšããŠãæäŸããŠããŠãClaude Codeããã仿ã®èªåã®AIå©çšç¶æ³ãæããŠããšèããŸãã ããŒã¯ã³æ°ã®ãå
ããŸã§æž¬ã ã誰ãã©ãã ã䜿ã£ãããã ããªããåããŒã«ã®ç®¡çç»é¢ã§ãåãããŸããæ¬é¡ã¯ãã®å
ã§ãã Skillå®è¡ãšMCPåŒã³åºããèšæž¬ããŠãããã©ã®skillãäœå䜿ããããã«å ããŠãèªåçºç«ããã®ãã»æç€ºçã«åŒã°ããã®ããŸã§åãããskillãäœã£ãåŽããã¡ãããšçºç«ããŠãããããæ€èšŒã§ãã AIå©çšãšéçºææãéããŠãããããŒã å¥ã«ãAIããŒã¯ã³æå
¥éãšContributorãããããŒãžPRæ°ãããã«ãã£ãŒãã§å¯èŠåããŠãã AI掻çšã¬ãã«ã¯ãèããã«æž¬ã 瀟å¡ãããŒã ã®AI掻çšåºŠãææ¡ããæ¹æ³ãšããŠãã¢ã»ã¹ã¡ã³ãâèªå·±ç³åã¢ã³ã±ãŒããã¹ãã«æ€å®ã§ã¬ãã«åãããâãæ¡ãäŒç€Ÿã¯å€ããšæããŸããç§ãã¡ãäžåºŠã¯èããŠããããŸãããããŒãã¹ãæŽã£ãŠããã°ãèããªããŠãè¡åãã°ããç®åºã§ããããã§ãã ããŒã ã®ããŒãžãéããšãSkillså©çšãMCP掻çšããšãŒãžã§ã³ããžã®å§ä»»ãé«åºŠæŽ»çšã¡ã³ããŒã®æ°ãšãã£ãææšãèªåã§è¡šç€ºãããŸããã¢ã»ã¹ã¡ã³ããšã®éãã¯3ã€ãåçè² è·ããŒãã§ããããšãåžžã«ææ°ã§ããããšããããŠç³åãšå®æ
ã®ãºã¬ããªãããšãã¢ã³ã±ãŒãã«ããå®ç¹èŠ³æž¬ã§ã¯ããã®éåºŠã®æè¡å€åã«ã¯è¿œãã€ããŸããã å¿
èŠã ã£ãã®ã¯ãåžžæèŠ³æž¬ã§ã ã ãããã« ã ãªã¬ãŒã®è£åŽã«ãã£ããã® ãã®28æ¥éãã¡ã³ããŒãã¡ã¯ããŒãã¹ãšã³ãžãã¢ãªã³ã°ããæš©éèšèšãLLM APIèšèšãããŒã«ã«MLLMãŸã§ãããããã®æã¡å Žã®å®è·µãæžããŠããŸããïŒå
šèšäºã¯ ãªã¬ãŒã®ç޹ä»èšäº ãããã©ããŸãïŒãããã€ãæãããšâ çŽ æŽãããææ¡ããããïŒåãããŒãã¹ãšã³ãžãã¢ã«ãªããªããïŒ çæAIãæŽ»çšããèªååã«å¿
èŠãªæš©éèšèšã®èãæ¹ LLM API ãå©ããšãã«èããããš â AIãæ©èœã«çµã¿èŸŒãåã«ç¢ºèªãã6ã€ã®èŠ³ç¹ Jetson Orin Nano Super ã«ããããŒã«ã«MLLM掻çšã«ã€ã㊠åã
ã®ã¡ã³ããŒã28æ¥éæžããŠããå®è·µã®è£ã«ã¯ãä»åã玹ä»ãããŠããã ãããããªèšæž¬ãšæšé²ã®ä»çµã¿ããããŸãã ãAIã§ãšã³ãžãã¢ãªã³ã°ã¯äžèŠã«ãªãããšããèšèª¬ãèŠãããŸãããç§ãã¡ã®çŸå Žã§èµ·ããŠããã®ã¯éã§ããããŒãžã§ã³ç®¡çãã³ãŒãã¬ãã¥ãŒãCIâãšã³ãžãã¢ã20幎ãããŠç£šããŠããéå
·ãšèŠåŸã¯ãAIæä»£ã«ãªã£ãŠåããŠãå
šç€Ÿã®æšæºè£
åãã«ãªã£ãŠããŠããŸãããšã³ãžãã¢ãªã³ã°ã¯èŠããªããªãã©ããããäŒç€Ÿå
šäœã®åãæ¹ã®äžå¿ãæ
ãã¯ãããŠããŸããéãšã³ãžãã¢ãGitHubã«æ¥ã€ã€ããã®ã¯ãããã«ãããªãèŠåŸã®äŸ¡å€ããAIã翻蚳ããŠãããŠããããã§ãã ãAI for Allããšå®£èšããŠãã1幎ãå
šè·çš®ãAIã䜿ãäŒç€Ÿãç®æããç§ãã¡ã¯ãæ°ã¥ãã°å
šè·çš®ãGitHubã䜿ãäŒç€Ÿã«ãªã£ãŠããŸãããAIã®æ°äž»åãšã¯ãå®ã¯ããŒãã¹ã®æ°äž»åã®ããšã ã£ãã®ãããããŸããã ãã®æå³ã§ãç§ãã¡ã¯GitHubãã®ãã®ã«è³ããŠããããã§ã¯ãããŸãããä»å¹Ž6æã«ã¯CursorãããšãŒãžã§ã³ãæä»£ãåæã«èšèšããGitãã©ãŒãžã Origin ããçºè¡šããŸãããè³ããŠããã®ã¯ããŒãžã§ã³ç®¡çã»ã¬ãã¥ãŒã»èªååãšãããããŒãã¹ã®åãã§ãã£ãŠãGitäºæã§ããéãããã®èšäºã§æžããä»çµã¿ã¯æã¡éã¹ãŸããæ¬¡ã®éè·¯ãã©ãã«æ·ãããã®ããããããåãã«ã泚ç®ããŠããŸãã ã¡ãã¬ãŒã¯ä»æã AX Project ãå§åããŸããããAIãè¶³ããã®ã§ã¯ãªãã AIãåæã«äŒç€ŸããŒãããèšèšãçŽã åãçµã¿ã§ããå
šéšéã®ã¯ãŒã¯ãããŒãã人ãæ
ãå·¥çšããšãAIã«ä»»ããå·¥çšãã«ä»åãããçµç¹æ§é ãèŠå¡èšç»ã®ããæ¹ãŸã§å€ããŠãããå
šç€ŸAI掻çšã®çµ±æ¬è²¬ä»»è
ãšããŠCAXOïŒChief AI Transformation OfficerïŒã眮ãããAIåºç€éçºå®€ã¯ãã®çŽäžã§ãå
šç€Ÿã®ç°å¢ãšåºç€ãäœã圹å²ãæ
ããŸããèªåŸåAIãæ¥åããããã¯ãã«çµã¿èŸŒãæ°è·çš®ã Applied AI Developer ãã®æ°èšãããã®æµãã®äžéšã§ãã 瀟å
ã§å
±æãããŠããåãããããŸãã 仿¥ãAIãåãäžãããäŒç€ŸãåããªããªããïŒ åããªããããã¯ãŸã AIããè¶³ããŠãããã ãã®äŒç€Ÿã§ããã AX Projectã¯ãå
šç€Ÿã®ã¯ãŒã¯ãããŒãæžãåºããskillãšããŠæŽåãããšããããå§ãŸããŸãããã®èšäºã§æžããGitHubããŒãã¹ããskillã®æµéããAI Usageãâãã¹ãŠã¯ããã®åãã«ãåããªããªãããšèžã匵ã£ãŠçããããäŒç€Ÿã«ãªãããã®åå°ã§ãã ã¡ãã¬ãŒã§ã¯ãå»çã人éäžå¿ãžããšããããã·ã§ã³ã®ããšãäžç·ã«ãã®ä»çµã¿ãé²åãããŠããã仲éã倧åéããŠããŸãããã®èšäºãæ¬ãªã¬ãŒã®èšäºã«ãã³ãšããæ¹ããã²ã«ãžã¥ã¢ã«ã«ã話ãããŸãããïŒ ã¡ãã¬ãŒã§åãïœæ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã§ã®åãæ¹ã人äºå¶åºŠãæ±äººæ
å ±ãªã©ãæ¡çšã«é¢ããæ
å ±ãã玹ä»ããŸãã www.medley.jp
ããã«ã¡ã¯ã 人æãã©ãããã©ãŒã ãžã§ãã¡ãã¬ãŒãã©ã¹éçºå®€é·ã®åŸ·æ°žã§ãã ãã®èšäºã§ã¯ã人æç޹ä»ã®æ¥ååºç€ã TypeScript ãš CQRSïŒã€ãã³ããœãŒã·ã³ã°ã§0ããæ§ç¯ããçŽ4ãæã§æ¬çªãªãªãŒã¹ãããŸã§ãæ¯ãè¿ããŸãã ç§ã¯ PdM ãšå®è£
ãå
Œããæ§æ³ã®æ€èšŒããæ¬çªçšŒåããã®åŸã®éçšãŸã§é¢ãã£ãŠããŸãã ãã¡ãã®èšäºã¯ã MEDLEY Summer Tech Blog Relay ãã®27æ¥ç®ã®èšäºã§ãã MEDLEY Summer Tech Blog Relay | MEDLEY Developer Portal ããã«ã¡ã¯ïŒDevRelã®éç°ïŒ@Shige0096ïŒã§ãã ã¡ãã¬ãŒã§ã¯å€äŒç»ãšããŠãMEDLEY Summer Tech Blog Relayããšé¡ããŠãããã°ãªã¬ãŒãéå¬ããŸãïŒ 7/13(æ)ã8/21(é)ãŸã§æ¯æ¥ç°ãªãã¡ã³ããŒã... developer.medley.jp 人æç޹ä»ãµãŒãã¹ããžã§ãã¡ãã¬ãŒãšãŒãžã§ã³ããã§ã¯ã2022幎ã®ç«ã¡äžããã3幎ããŸããæ°åè¡ã®ã¹ãã¬ããã·ãŒããè€æ°äžŠè¡ã§äœ¿ã£ãŠæ¥åãåããŠããŸããã ã·ã¹ãã åã®æ§æ³ãå§ããã®ã¯2025幎12æã§ãã ç¿æã«å
è£œãæ±ºãã2026幎4æã«æ¥åãåãæ¿ããŸããã çŸåšãéçšããŠããŸãã æ§æ³ããæ¬çªãªãªãŒã¹ãŸã§ã®ããã4ãæã§ãçŽ1,200æ¬ã® PR ãããŒãžããŠããŸãã ã¢ãŒããã¯ãã£ã«ã¯ CQRS ãšã€ãã³ããœãŒã·ã³ã°ãéžã³ãŸããã ããŒã¿ãäžæžããããèµ·ããåºæ¥äºãé ã«èšé²ããŠããäœãæ¹ã§ãã 0â1ã®ç«ã¡äžãã«ããŠã¯äœã蟌ã¿ããã§ã¯ãªããã çæåããäœåºŠãè°è«ããéçºäžã倿ãèŠçŽããŠããŸããã ãªãªãŒã¹ãã4ãæãçµã£ãããŸããã®äºæ¥ã§ã¯éå°ãªéžæã§ã¯ãªãã£ããšèããŠããŸãã ãã¡ãããå®ãäœããããã§ã¯ãããŸããã å®è£
éã¯å¢ãããªãªãŒã¹ãåªå
ããŠè² åµãšããŠæ®ãã課é¡ããããŸãã ããã§ãã仿§ã決ããããªããŸãŸéçºãšããŒã¿ç§»è¡ã䞊è¡ã§ãããªãªãŒã¹åŸã®å€æŽã«ã察å¿ã§ããŸããã ç§ãã¡ã®æ¡ä»¶ã§ã¯ããã®ããã«ãããã³ã¹ãã«èŠåã£ãŠããŸããã ã¹ãã¬ããã·ãŒãã§æ¯ããŠããæ¥å ãžã§ãã¡ãã¬ãŒãšãŒãžã§ã³ãã¯ãå»çä»è·æ±äººãµã€ãããžã§ãã¡ãã¬ãŒããéå¶ããã¡ãã¬ãŒãã2022幎ã«ç«ã¡äžãã人æç޹ä»ãµãŒãã¹ã§ãã æ±äººãµã€ããæ±è·è
ãšäºæ¥æãçŽæ¥ã€ãªãã®ã«å¯Ÿãã人æç޹ä»ã§ã¯ãã£ãªã¢ã¢ããã€ã¶ãŒãæ±è·è
ãšé¢è«ããæ±äººãæ¢ããå¿åããå
¥è·ãŸã§äŒŽèµ°ããŸãã ãã®æ¥åãæ¯ããŠããã®ããåé ã§è§Šããã¹ãã¬ããã·ãŒã矀ã§ãã æ±è·è
ã颿¥ãé¡§å®¢ãæ±äººã瀟å
ã®äŸé ŒãKPI ãªã©ãçšéããšã«ã·ãŒããåãããŠããŸããã ã·ãŒããçšéããšã«åãããŠãããããåãæ
å ±ãäœåºŠãæžãåããŠããŸããã æ±è·è
ã«ãã®å Žã§æ±äººã玹ä»ããããŠããçŸåšã®ç¶æ³ãç¥ãã«ã¯è€æ°ã®ã·ãŒããšããŒã«ãè¡ãæ¥ããªããã°ãªããŸããã ããã¥ã¢ã«ã¯ãã£ãŠããæé ãã·ãŒãã®äœ¿ãæ¹ã«ã¯äººããšã®å·®ãæ®ããæ°ããã¡ã³ããŒãæ¥åãèŠãããŸã§ã«ãæéãããã£ãŠããŸããã å®éã«äœ¿ã£ãŠãã管çã·ãŒãã®äžéšã§ããç»é¢äžéšã«ã¯ãçšéå¥ã®ã¿ãã䞊ãã§ããŸããå人æ
å ±ã«ãããå
容ã¯ãŒãããŠããŸãã ã·ã¹ãã åã§è§£æ±ºãããã£ãããšã¯ã次ã®4ã€ã§ãã æ
å ±ãã²ãšã€ã«ãŸãšããŠç¶æ³ææ¡ãéãããã æäœæ¥ã®è»¢èšããªãããŠãæ
åœè
ã®æéãæ±è·è
ãšåãåãããšã«äœ¿ããã æ¥åã®æé ã圢åŒç¥ãšããŠæ®ããæ°ããã¡ã³ããŒãããç«ã¡äžãããããã«ããã ããŒã¿ãæ§é åããAI ãæ¥åã«çµã¿èŸŒããåå°ãäœããã ç®æããŠããã®ã¯ãåã¡ã³ããŒãé¡§å®¢ãæ±è·è
ãšåãåã亀æžãææ¡ã ãã«éäžã§ããç¶æ
ã§ãã ããã«å®çŸã§ããç¶æ
ã§ã¯ãªãããããŸãã¯æ¥åãã·ã¹ãã ã«èŒããæ¥ã
èµ·ããŠããããšãæ§é åããŠèšé²ããåæãããšããããå§ããŸãã ã©ã®èª²é¡ããäºæ¥ãå°ãããã¡ã¯å¯Ÿå¿ãæ¥ããã®ã§ã¯ãããŸããã ããããæ±ãè·çš®ãšäººæ°ãå¢ããã»ã©ã圱é¿ã¯å€§ãããªããŸãã 2025幎12æããããªãèŠæš¡æ¡å€§ãšäœå¶åŒ·åãåã«ãã·ã¹ãã å°å
¥ã®èµ·æ¡ãåºãŸããã å€éšSaaSãšå
è£œãæ¯ã¹ã æåããå
è£œãæ±ºããŠããããã§ã¯ãããŸããã 人æç޹ä»ã®æ¥å管çã«ã¯å°å
¥å®çžŸã®è±å¯ãªå€éšSaaSããããããå€éšSaaSã®å°å
¥ãšå
補ã䞊è¡ããŠæ€èšããŸããã èµ·æ¡ã®çŽåŸã«ã¯ãæãäžç¢ºå®ã ã£ãæ±äººæ€çŽ¢ããæ€èšŒãå§ããŸããã ãžã§ãã¡ãã¬ãŒã®æ±äººããŒã¿ãš OpenSearch ãåãããšãåæ¥ã§æåã®ç»é¢ãã§ããŸããã äºæ¥éšã«ãã®ç»é¢ãè§Šã£ãŠããããªãããã¢ãªã³ã°ãé²ãã䞊è¡ããŠè·çš®ããšã®æ¥åãããŒãææžåããã·ã¹ãã å
ã§å®çµã§ããæ¥åã®ç¯å²ãšéçšã³ã¹ãã詊ç®ããŸããã ç¿æã«å
è£œãæ±ºããæç¹ã§ã¯ãæ¯èŒè³æã ãã§ãªããå®éã«åãã·ã¹ãã ãæå
ã«ãããŸããã ã©ã®æéãšå©çšè
æ°ã§æ¯ã¹ããã«ãã£ãŠãã³ã¹ãã®çµè«ã¯å€ãããŸããã å€éšSaaSã®è²»çšã¯å©çšã¢ã«ãŠã³ãæ°ã«å¿ããŠå¢ããŸãããå
è£œã®æ§ç¯è²»ã¯å©çšè
æ°ã§ã¯å¢ããŸããã å幎ã§ã¯å€éšSaaSãå®ããŠããåœæèŠèŸŒãã§ããå©çšè
ã®å¢å ãå«ããŠæ°å¹Žã§æ¯ã¹ããšãå·®ã¯çž®ãŸããŸãã ã©ã¡ãããæããã«å®ããšã¯å€æã§ããŸããã§ããã å
è£œã«æ±ºããçç±ã¯ã瀟å
ã®ããŒã¿ãšã®ã€ãªãæ¹ã§ããã æ±äººãäºæ¥æã®ããŒã¿ãããžã§ãã¡ãã¬ãŒåŽã®æŽæ°ã«è¿œåŸããŠåã蟌ãå¿
èŠããããŸãã ããã«ããžã§ãã¡ãã¬ãŒã«èç©ãããæ±äººãå¿åã®ããŒã¿ããªã¢ã«ã¿ã€ã ã§ã€ãªãã瀟å
ã§æŽ»çšã§ããç¯å²ãåºããããšèããŠããŸããã æ€èšããå€éšSaaSã§ã¯ããã®é£æºãéçšã§ããŸããã§ããã CQRSïŒã€ãã³ããœãŒã·ã³ã°ãéžãã çç± èµ·æ¡çŽåŸã«äœã£ãæ€èšŒçšãªããžããªã§ã¯ãCQRS ãšã€ãã³ããœãŒã·ã³ã°ïŒEvent Sourcingãä»¥äž ESïŒãåæã«ããŸããã ãã¡ã€ã³å±€ã¯é¢æ°å DDD ã§æžããŠããŸãã ç¶æ
ãæã€ãªããžã§ã¯ãã«æ¯ãèããæãããã®ã§ã¯ãªããäžå€ãªããŒã¿ãšçŽç²é¢æ°ã䜿ããç¶æ
é·ç§»ãã¹ããŒããã·ã³ãšããŠè¡šãæ¹éã§ãã ES ãéžãã çç±ã®ã²ãšã€ã¯ãããŒãã«èšèšãæ©ã
ã«åºããããªãã£ãããšã§ãã çŸå Žã§ã¯ã¹ãã¬ããã·ãŒãäžã®æ¥åãæ¯é±å€ãããè·çš®ããšã®ãã¢ãªã³ã°ãããããã§ããã ãã®æç¹ã§åŒããèšèšã3ãæåŸãŸã§ãã®ãŸãŸæ®ããšã¯æããŸããã éçºäžãäºæ¥ã®æœçã¯ç¶ããããã·ã¹ãã åãçç±ã«çŸå Žã®å€åãæ¢ããŠãããããã«ããããŸããã§ããã æ©ã決ããã»ã©ã決ãçŽãåæ°ãå¢ããŸãã ããšãã£ãŠã仿§ãåºãŸããŸã§åŸ
ãŠã°ããªãªãŒã¹ã¯é
ããŸãã å®éã«æ¥åãæŽçãããšããã§ã«åºãŸã£ãŠãããã®ãšã䜿ãå§ããŠããæ±ºããããã®ãæ··ãã£ãŠããŸããã ãã§ã«åºãŸã£ãŠããã®ã¯ãæ¥åã§äœ¿ãèšèã§ãã ããã¯ãªãçŽåŸã«5人å
šå¡ã§ãDDD ã®èšèšææ³ã§ããã€ãã³ãã¹ããŒãã³ã°ãè¡ããŸããã æ±è·è
ã®ç²åŸããååé¢è«ãæ±äººæ¢çŽ¢ãšææ¡ã颿¥ãšéžèãå
¥è·ãšè«æ±ãŸã§ã䞊ã¹ãŸããã 顧客åŽã«ã€ããŠããéæãšå¥çŽãæ±äººã®æ²èŒãšéçšãå©çšåæ¢ãšè§£çŽãŸã§ãæŽãåºããŸããã æ³äººåã®å€æŽããäºæ¥è²æž¡ã«ããéå¶æ³äººã®å€æŽãªã©ãé »åºŠã¯äœããŠãèµ·ãããšå°ãæµããä»ç®ã«ããŸããã æ°æéã§åºãŠãããã¡ã€ã³ã€ãã³ãã¯ãããã100åã§ãã ãã®ãšãã®èšèããã¹ãŠæ®ã£ãããã§ã¯ãªããéçºäžã«æŠå¿µããšæšãŠããã®ããããŸãã ä»ç®ã®åå¥å
容ã§ã¯ãªããæ±ã£ãæ¥åç¯å²ãšéã瀺ãããã®å
šæ¯ã§ãã ç»é¢ã§äœãç®ç«ãããããäœãã©ã枬ããã¯äºæ
ãéããŸããã åæããã¢ãªã³ã°ã ãã§ã¯æ±ºãããããçŸå Žã§äœ¿ãå§ããŠããåããããšãå€ãé åã§ãã ãã®éšåãŸã§å
ã«åºããŠäœãçŽããããæ¥åäžã®åºæ¥äºãå
ã«èšé²ãã衚瀺ãéèšã¯åŸããè¶³ããæ§é ã«ããã»ããéããšèããŸããã ãã®èãæ¹ã¯ç®æ°ãããã®ã§ã¯ãããŸããã ãªãŒã³éçºã®7ã€ã®ååã«ããæ±ºå®ãé
ãããïŒDefer CommitmentïŒãããããŸãã Many people like to get tough decisions out of the way, to address risks head-on, to reduce the number of unknowns. However, in the face of uncertainty especially when it is accompanied by complexity, the more successful approach is to tackle tough problems by experimenting with various solutions, leaving critical options open until a decision must be made. â Mary Poppendieck, Tom PoppendieckãImplementing Lean Software Development: From Concept to CashãïŒAddison-Wesley, 2006ãéŠèš³ã¯ããªãŒã³éçºã®æ¬è³ªãæ¥çµBPïŒ é£ããæ±ºå®ãæ©ãçä»ããæªç¥ãæžãããããªãã ããããäžç¢ºå®ããšè€éããéãªãå Žé¢ã§ã¯ãããã€ãã®è§£æ±ºçã詊ããªãããæ±ºããå¿
èŠãçãããŸã§éžæè¢ãæ®ããã»ããããããšããèãæ¹ã§ãã ç§ãã¡ã決å®ãé
ãããã®ã¯ãç»é¢ã§ã®èŠãæ¹ãšãæ¥åã®æž¬ãæ¹ã§ãã ãã®äºã€ãåŸããå€ããããããã«ãã€ãã³ããäžæ¬¡èšé²ã«ããã¢ãŒããã¯ãã£ã ãã¯å
ã«æ±ºããŸããã CRUD ã§äœãã仿§ãå€ãããã³ã« migration ãæžãé²ãæ¹ããããŸãã å®éããã®æ¹æ³ã§ããªãªãŒã¹ã¯ã§ãããšæããŸãã ãã ããç¶æ
ãäžæžãããèšèšã§ã¯ãç¶æ
ã®æã¡æ¹ãå€ãããšãããŒãã«å®çŸ©ã®å€æŽãéå»ããŒã¿ã®è£æ£ãå¿
èŠã«ãªãããšããããŸãã å€åã®å€ãç«ã¡äžãæã«ããã®äœæ¥ãäœåºŠãç¹°ãè¿ãããšãæ°ã«ãªããŸããã ES ã§ã¯ããèµ·ããäºå®ãã衚ãã€ãã³ããèšé²ããŸãã ç»é¢ãéèšãåç
§ããããŒãã«ã¯ããã®ã€ãã³ãããäœããŸãã æžã蟌ã¿ãšèªã¿åãã§ã¢ãã«ãåããèãæ¹ã CQRS ã§ãèªã¿åãåŽã®ããŒãã«ã Read ModelããããäœãåŠçã projector ãšåŒã³ãŸãã äºå®ãšèŠãæ¹ãåããŠããã°ã衚瀺ãéèšã®ä»æ§ãå€ãã£ãŠããèšé²æžã¿ã®ã€ãã³ããæžãæããå¿
èŠã¯ãããŸããã Read Model ã¯äœãçŽããŸãããå¿
èŠãªäºå®ãã€ãã³ãã«å«ãŸããŠããã°ã衚瀺ãéèšã®å€æŽãæåœ±åŽã«éããããŸãã ã€ãã³ãã¹ããŒãã³ã°ã§æŽçããæ¥åäžã®äºå®ã¯ã€ãã³ããžã䜿ãå§ããŠããæ±ºãã衚瀺ãéèšã¯æåœ±ãžçœ®ããŸããã 衚瀺ãéèšãå€ããç¶ãã0â1ã§ã¯ããã®åé¢ã«æéãããã䟡å€ããããšèããŸããã ãã®éžæãåããã©ããã¯ãåŸããæ±ºãããããšãã©ãã ãæ®ã£ãŠãããã§å€ãããŸãã 衚瀺ãéèšãŸã§ä»æ§ãåºãŸã£ãŠããå Žåãåºããæéãåããå Žåã倿Žãå°ãªãå Žåã«ã¯ãæåããããŒãã«ãèšèšããã»ããéãã¯ãã§ãã TypeScript ã§ã®å®è£
å®è£
㯠TypeScript ã®ã¢ãã¬ãã§ãã ã€ãã³ãã® payload ãšéçŽã®ç¶æ
㯠Zod ã¹ããŒããäžæ¬¡æ
å ±ãšããåã¯ããããå°åºããŸãã 以éã®ã³ãŒãäŸã¯ã説æã«å¿
èŠãªéšåã ããæ®ããŠç°¡ç¥åããŠããŸãã export const memberRegisteredPayloadSchema = z . object ({ memberId: memberIdSchema , name: z . string (). trim (). min ( 1 ), registeredAt: isoDateTimeSchema , }); export type MemberRegisteredPayload = z . infer < typeof memberRegisteredPayloadSchema >; ãã¡ã€ã³å±€ã¯ããã¡ã€ã³é§åèšèšïŒDDDïŒã®éçŽããšã«ã decide ãš evolve ã®2ã€ã®çŽç²é¢æ°ã§æ§æããŸãã éçŽãšã¯ãäžåºŠã«æŽåæ§ãä¿ã€åäœã§ãã decide(command, state) ã¯ãçŸåšã®ç¶æ
ã§ã³ãã³ããå®è¡ã§ãããå€å®ããã€ãã³ããè¿ããŸãã evolve(state, event) ã¯ãã€ãã³ããç¶æ
ã«é©çšããŸãã ã©ã¡ãã DB ãæå»ã«äŸåããªããããç¶æ
é·ç§»ã®ãã¹ãã¯å
¥åºåã ãã§æžããŸãã ãã®æ§æã¯ãDecider ãã¿ãŒã³ïŒ Functional Event Sourcing Decider ïŒãšããŠç¥ãããŠããŸãã decide ã®æ»ãå€ã«ã¯ Result ã䜿ãã倱ææã«ã¯æ¥åã«ãŒã«ã衚ã union ãè¿ããŸãã æ¿èªãæãéçŽã®äŸãšããŠãæ©æé¢è·æã®çŽ¹ä»æãæ±ãè¿éã±ãŒã¹ã®åãæããŸãã export type DecideRefundCaseError = | { kind : "refund_case_not_created" } | { kind : "refund_case_closed" } | { kind : "refund_case_cannot_update_while_approval_pending" } | { kind : "refund_case_cannot_update_refund_content_after_content_approval" } | { kind : "refund_case_cannot_update_invoice_before_content_approval" }; API å±€ã¯ãšã©ãŒã® kind ã§åå²ããç»é¢ã«åºãã¡ãã»ãŒãžã決ããããŸãã ãã¡ã€ã³å±€ã§ throw ãããšã©ãŒãããã³ãã©ãæååã§å€å¥ããå¿
èŠã¯ãããŸããã éçŽã®ç¶æ
ããã²ãšã€ã®å€§ããªãªããžã§ã¯ãã« optional ãªé
ç®ãè¶³ãã®ã§ã¯ãªããå€å¥å¯èœãª union ã§è¡šããŸãã ããšãã°ããéäŒæžã¿ãªã®ã«é¢è«äºå®ãæ®ã£ãŠããããšããççŸããç¶æ
ã¯åã®äžã§äœããŸããã optional ã¯ãããããã®ç¶æ
ã§æ¬åœã«ä»»æãªé
ç®ã«ã ã䜿ããŸãã export const memberStateSchema = z . discriminatedUnion ( "kind" , [ z . object ({ kind: z . literal ( "initial" ) }), z . object ({ kind: z . literal ( "active" ), memberId: memberIdSchema , interviewScheduledAt: isoDateTimeSchema . optional (), }), z . object ({ kind: z . literal ( "withdrawn" ), memberId: memberIdSchema , withdrawnAt: isoDateTimeSchema , }), ]); export type MemberState = z . infer < typeof memberStateSchema >; API ã«ã¯ Hono.js ãš zod-openapi ã䜿ãããªã¯ãšã¹ãã®æ€èšŒãã OpenAPI å¥çŽã®çæãŸã§ãã¹ããŒãã«å¯ããŠããŸãã ããã³ããšã³ã㯠React Router ã® SPA ã§ãå¥çŽããçæããã¯ã©ã€ã¢ã³ãã䜿ããŸãã äžè¬çãªæ§æãšç°ãªã3ã€ã®å€æ CQRSïŒã€ãã³ããœãŒã·ã³ã°ã§ã¯ãã€ãã³ãã¹ãã¢ã«è¿œèšããã€ãã³ããéåæã§æåœ±ããRead Model ãäœãæ§æãããèŠãããŸãã ç§ãã¡ã®å®è£
ã¯ããã®æ§æãš3ã€ã®ç¹ã§ç°ãªããŸãã æåœ±ãåæã«ãã Read Model ãžã®æåœ±ã¯éåæã«ãããã€ãã³ãã®è¿œèšãšåããã©ã³ã¶ã¯ã·ã§ã³ã§è¡ã£ãŠããŸãã CQRS ã®è§£èª¬ã§ã¯ãæåœ±ãéåæã«ããä¿åçŽåŸã®ç»é¢ã«å°ãåã®ç¶æ
ãèŠããããšã蚱容ããæ§æããã玹ä»ãããŸãã ãã ããCQRS ãåããã®ã¯æžã蟌ã¿ãšèªã¿åãã®ã¢ãã«ã§ãã£ãŠãæåœ±ã®ã¿ã€ãã³ã°ã§ã¯ãããŸããã ããšãã° .NET ã® Marten ã«ã¯ãæåœ±ã®å®è¡æ¹åŒãšã㊠InlineãLiveãAsync ããããŸãã Inline ãéžã¶ãšãã€ãã³ãã®è¿œèšãšåããã©ã³ã¶ã¯ã·ã§ã³ã§ Read Model ãæŽæ°ãããŸãã éåææåœ±ã§ããèªã¿åãåŽã工倫ããã°ãä¿åçŽåŸã®ç»é¢ã«ææ°ã®ç¶æ
ãèŠããããŸãã ãã®å Žåã¯ãæåœ±ã®é
å»¶ãèæ
®ããç»é¢ãé
å»¶ã®ç£èŠã倱æããæåœ±ã®å詊è¡ãæåããçšæããããšã«ãªããŸãã ä»åã»ããã£ãã®ã¯ã€ãã³ããäžæ¬¡èšé²ã«ããèšèšã§ãããéåææåœ±ã«ããã¹ã±ãŒã©ããªãã£ã§ã¯ãããŸããã§ããã å©çšè
ã¯ç€Ÿå
ã®ãªãã¬ãŒã¿ãŒæ°ååã§ãåæã«æžã蟌ã人æ°ã¯ããã«éãããŸãã äžè¬å
¬éã®ãµãŒãã¹ãšã¯ãæ³å®ããè² è·ãéããŸãã ããã§ãåææ§æã¯åææåœ±ã«ããŸããã èŠæš¡ãå€ããã°å€æãèŠçŽããŸãããã€ãã³ããäžæ¬¡èšé²ãšããŠæ®ã£ãŠããéããæåœ±ã®æ¹åŒã¯åŸããå€ããããŸãã åææåœ±ã«ã代åã¯ãããŸãã æåœ±ãšæžã蟌ã¿ãåããã©ã³ã¶ã¯ã·ã§ã³ã«ãããããprojector ã«äžå
·åããããæåœ±ã«å€±æãããšãç»é²ãæŽæ°ãã®ãã®ã倱æããŸãã 倱æããã®ã¯æäœãã1ä»¶ã§ãã·ã¹ãã å
šäœãæ¢ãŸãããã§ã¯ãããŸããã éåææåœ±ãªãæžã蟌ã¿ã¯éããç»é¢ãžã®åæ ã ããé
ããŸãã ç§ãã¡ã¯ã誀ã£ã衚瀺ã®ãŸãŸæ¥åãé²ãããããã®å Žã§æäœã倱æããŠåå ã远ããã»ãããç«ã¡äžãæã«ã¯æ±ãããããšå€æããŸããã ãã®ã¶ããæåœ±ã«ã¯ CI ã§ AST ã¬ãã«ã®å¶çŽããããprojector ã®ãã¹ããæžãããšãèŠçŽã«ããŠããŸãã ã€ãã³ãã¹ãã¢ã MySQL ã®ããŒãã«ã«ãã ã€ãã³ãã¹ãã¢ã«ã¯ã EventStoreDB ã®ãããªå°çšã®ããã«ãŠã§ã¢ã§ã¯ãªãã Aurora MySQL ã®éåžžã®ããŒãã«ã䜿ããŸããã agent_events ã«ã¯ INSERT ããè¡ããªããšæ±ºãã远èšå°çšã®ããŒãã«ãšããŠéçšããŠããŸãã æ¥ååºç€ã®ããŒã¿ããŒã¹ã¯ããžã§ãã¡ãã¬ãŒã䜿ã£ãŠãã Aurora ã¯ã©ã¹ã¿å
ã«çœ®ããŠããŸãã æ°ããããŒã¿ããŒã¹åºç€ãç«ãŠãã«æžã¿ãããã¯ã¢ãããç£èŠã瀟å
ã®ããŒã¿åºç€ãžéããã€ãã©ã€ã³ãå
±çšã§ããŸãã åãã¯ã©ã¹ã¿ã䜿ããããæš©éã¯æ¥ç¶ããšã«åããŸããã ãžã§ãã¡ãã¬ãŒã®ããŒã¿ã¯ãªãŒãã¬ããªã«ããèªãã ãã§ãæžãèŸŒã¿æš©éã¯ãããŸããã åã蟌ããç¯å²ãæš©éã§çµã£ãŠããŸãã æ¥ååºç€ãžã®æžã蟌ã¿ã«äœ¿ãæ¥ç¶ã¯ãèªåãã¡ã®è«çããŒã¿ããŒã¹ã®å€ã«åºãããŸããã ããŒã¿ããŒã¹ã®é
çœ®ãæ±ºããããšãã€ãã³ãã¹ãã¢ã MySQL ã®ããŒãã«ã«ããŸããã ã€ãã³ããš Read Model ãåã MySQL ãã©ã³ã¶ã¯ã·ã§ã³ã§æŽæ°ãããããäž¡æ¹ãåãããŒã¿ããŒã¹ã«çœ®ããŠããŸãã 4ãæãšããæéã«ãæ°ããããã«ãŠã§ã¢ã®åŠç¿ãšéçšãæã¡èŸŒãŸãã«æžãããšã倿ææã§ããã export const agentEvents = mysqlTable ( "agent_events" , { eventSeq: bigint ( "event_seq" , { mode: "number" }) . autoincrement (). primaryKey (), streamKey: varchar ( "stream_key" , { length: 255 }). notNull (), streamVersion: int ( "stream_version" ). notNull (), eventType: varchar ( "event_type" , { length: 100 }). notNull (), payload: json ( "payload" ). notNull (), occurredAt: datetime ( "occurred_at" , { fsp: 6 }). notNull (), }, ( t ) => ({ streamVersion: unique ( "uk_stream_version" ) . on ( t . streamKey , t . streamVersion ), })); ããŒãã«ãã·ã³ãã«ã«ããã¶ããã€ãã³ãã®åã¯ãã¡ã€ã³å±€ã§å³å¯ã«ããŠããŸãã Zod ã® enum ãäžæ¬¡æ
å ±ã«ããŠãéçŽããšã« eventType ãš payload ã®çµã¿åããã union ã§å®çŸ©ããŸãã export const EventTypeSchema = z . enum ([ ` ${ EVENT_TYPE_PREFIX } .introduction.refund-case-created.v1` , ` ${ EVENT_TYPE_PREFIX } .introduction.refund-case-closed.v1` , // ... ]); export type EventType = z . infer < typeof EventTypeSchema >; export type RefundCaseEvent = | ( StoredEventBase & { eventType : typeof EVENT_TYPES . introductionRefundCaseCreated ; payload : RefundCaseCreatedPayload ; }) | ( StoredEventBase & { eventType : typeof EVENT_TYPES . introductionRefundCaseClosed ; payload : RefundCaseClosedPayload ; }); // ... evolve ã§ã¯ switch (event.eventType) ã§åå²ããå case ã®äžã§ event.payload ã®åãçµã蟌ããŸãã DB ã«ä¿åããã eventType ã¯æååã§ãããæžã蟌ãåŽãšèªã¿åºãåŽã¯åã§å¶çŽãããŠããŸãã ã²ãšã€ã®éçŽã«ç©ãŸããã€ãã³ãã®äžŠã³ãã¹ããªãŒã ãšåŒã³ã streamKey ã§èå¥ããŸãã ã€ãã³ãã远èšãããšãã¯ãã¹ããªãŒã ãèªã¿èŸŒãã æç¹ã®çã«1ãè¶³ããå€ã streamVersion ã«æžããŸãã åãéçŽã䞊è¡ããŠæŽæ°ãããšãè€åãŠããŒã¯å¶çŽãåŸããæ¥ãæžã蟌ã¿ã匟ããŸãã å°çšã®ã€ãã³ãã¹ãã¢ã expectedVersion ã§æäŸããæ¥œèгç䞊è¡å¶åŸ¡ããè€åãŠããŒã¯å¶çŽã§å®è£
ãã圢ã§ãã å¶çŽãæ
ãã®ã¯è¡çªã®æ€åºã§ãæžã蟌ã¿ã«æåããã€ãã³ã㯠streamVersion ã«ãã£ãŠã¹ããªãŒã å
ã§é åºã¥ããããŸãã ã1ãã©ã³ã¶ã¯ã·ã§ã³1éçŽããå®ãéããéçŽã®äžå€æ¡ä»¶ãç¶æã§ããŸãã ç«¶åããæäœã¯èªåã§ããçŽãããç»é¢ã«ãšã©ãŒãè¿ããŸãã åãæ±è·è
ãåæã«æäœããå Žé¢ã¯ãŸããªã®ã§ãè£ã§åå®è¡ãããããæäœãã人ã«ç«¶åãäŒããããšã«ããŸããã å°çšã®ã€ãã³ãã¹ãã¢ãæã€æ©èœã®ãã¡ãå¿
èŠã ã£ãã®ã¯è¿œèšãšç«¶åæ€åºã ãã§ããã 賌èªãããã¹ãŠã®ã€ãã³ãã察象ã«ããé åºä¿èšŒã¯äœ¿ã£ãŠããŸããã Read Model ãåæåœ±ãããšãã¯ã eventSeq ã®æé ã§ã€ãã³ããæµããŸãã eventSeq 㯠autoincrement ã®æ¡çªé ã§ãããã³ãããé ãšã¯äžèŽããŸããã åãã¹ããªãŒã ãžã®äžŠè¡è¿œèšã¯ãŠããŒã¯å¶çŽã§ç«¶åãããããæ£åžžã«ä¿åãããåäžã¹ããªãŒã ã®ã€ãã³ãã§ã¯ã eventSeq ãš streamVersion ã®é åºãäžèŽããŸãã ããŸã® projector ã¯éçŽããŸããã é åºã«äŸåããªãã®ã§ããã®æ¹æ³ã§è¶³ããŠããŸãã å°æ¥ãéåææåœ±ãžç§»ãå Žåã¯ãæ¡çªæžã¿ã§æªã³ãããã®ã€ãã³ããé£ã°ããŠèªãå¯èœæ§ããããããé åºã®è¿œãæ¹ããèŠçŽãå¿
èŠããããŸãã ã¹ãããã·ã§ãããäœããªã ã¹ãããã·ã§ãããäœããªããšç©æ¥µçã«æ±ºããããã§ã¯ãããŸããã ãŸã å¿
èŠã«ãªãèŠæš¡ã«éããŠããªãã ãã§ãã ã¹ããªãŒã ãé·ããªããšåçã«æéãããããããéäžã®ç¶æ
ãä¿åããããããåŸã®ã€ãã³ãã ããèªãã®ãäžè¬çã§ãã ç§ãã¡ã¯ decide ã®ãã³ã«ããã®ã¹ããªãŒã ã®ã€ãã³ããæåããèªã¿çŽããŠããŸãã ã²ãšã€ã®æ±è·è
ãå¥çŽã«ç©ãŸããã€ãã³ãã¯ãŸã å°ãªããçŸç¶ã®åçæéã§åé¡ãããŸããã å¿
èŠã«ãªã£ãæç¹ã§è¿œå ããã€ããã§ãã ç§»è¡å°çšã€ãã³ãã§ããŒã¿ç§»è¡ãå
ã«é²ãã ES ãåæã«ããããšã¯ãããŒã¿ç§»è¡ã§åœ¹ã«ç«ã¡ãŸããã äžè¬çãªããŒã¿ç§»è¡ã§ã¯ãå
ã«ç§»è¡å
ã®ã¹ããŒããåºããæ§ããŒã¿ãæ°ããæ§é ãžå€æããŸãã ä»åã¯ãç§»è¡å
ã§ããã·ã¹ãã ã®ä»æ§èªäœããäºæ¥éšãžã®ãã¢ãªã³ã°ãšäžŠè¡ããŠå€ãã£ãŠããŸããã çæ³ã®ããŒã¿æ§é ãåºãŸããŸã§åŸ
ã£ãŠãããšãããŒã¿ç§»è¡ããªãªãŒã¹ã®ã¯ãªãã£ã«ã«ãã¹ã«ãªããŸãã æ©ããªãªãŒã¹ãããã£ãã®ã¯ãæ¥çšã ããçç±ã§ã¯ãããŸããã ã€ãã³ãã¯ãã·ã¹ãã ã䜿ããå§ããŠããèç©ãããŸãã çæ³åœ¢ãŸã§ä»äžããŠããåºããããçŸå Žã䜿ããç¶æ
ãæ©ãäœããæ¥åäžã®äºå®ãèšé²ãå§ããããšèããŠããŸããã èç©ãæ©ãå§ããã»ã©ãåŸãã远å ããéèšãæœçã§åç
§ã§ããæéãé·ããªããŸãã ããã§ãã¹ãã¬ããã·ãŒãã®1è¡ãã»ãŒãã®ãŸãŸ payload ãžåãåããç§»è¡å°çšã®ã€ãã³ãåãå®çŸ©ããŸããã ç§»è¡ã€ãã³ãã«ã¯ãç§»è¡æç¹ã§ã·ãŒãã«ããæžãããŠããããšããäºå®ã ããèšé²ããŸãã ã¢ããªã±ãŒã·ã§ã³ã®æäœããç§»è¡åŸã«ç®æãããŒã¿æ§é ãšã¯åãé¢ããç§»è¡å
ã®å€ã Read Model ã«ã©ã衚ãã㯠projector ã«ä»»ããŸããã ç§»è¡å
ã®èšé²ãšè§£éãåãããããæœåºãã¯ã¬ã³ãžã³ã°ãæå
¥ãæ€èšŒãããªãç§»è¡åŠçãã仿§ã®ç¢ºå®ãåŸ
ããã«æºåã§ããŸããã Read Model ã®ä»æ§ãå€ãã£ãŠããprojector ãçŽããç§»è¡å°çšã€ãã³ãã®çæãšæå
¥ã®æé ã¯ä¿ãŠãŸããã ãã ããç§»è¡å°çšã€ãã³ãã¯è² åµãšããŠæ®ããŸãã ES ã§ã¯éå»ã®ã€ãã³ããæžãæããªããããç§»è¡ã€ãã³ããå±¥æŽããæ¶ããŸããã éçŽã® evolve ãš Read Model ã® projector ã¯ãéåžžã€ãã³ããšç§»è¡ã€ãã³ãã®äž¡æ¹ãè§£éãç¶ããå¿
èŠããããŸãã æ¬ æå€ã®æ±ããªã©ãç§»è¡ã€ãã³ãã«ããå¿
èŠã®ãªãåå²ãæ®ããŸããã æ©èœã远å ãããã³ã«ããã®åå²ãèæ
®ããæéããããå§ããŠããŸãã å°æ¥ã¯ãç§»è¡ã€ãã³ããéåžžã€ãã³ãã®äžŠã³ãžåè§£ããŠæå
¥ãçŽãããã®åå²ããªããèšç»ã§ãã CRUD ãšã®æ¯èŒ ã³ãŒããæžãäœæ¥ã ããªããCRUD ã®ã»ããéãã£ãã¯ãã§ãã ES åºæã®æåœ±åºç€ãåçåŠçãå
ã«çšæããå¿
èŠããªããéçŽã²ãšã€ãããã®ã³ãŒããæžããŸãã ãã ããä»åæ³å®ããŠãã CRUD ã®æ§æã§ã¯ãç§»è¡å
ã®ã¹ããŒããåºããŠããæ§ããŒã¿ã®å€æãæºåããããšã«ãªããŸãã 仿§ã®ç¢ºå®ãåŸ
ã€ã¶ãããªãªãŒã¹æ¥ãŸã§ã®äœè£ã¯ããã«å°ãªããªã£ãŠãããšèããŠããŸãã ããã§æ¯èŒããŠããã®ã¯ãä»åæ€èšããæ§æã§ãã CRUD ã«å±¥æŽããŒãã«ã倿ŽããŒã¿ãã£ããã£ïŒCDCïŒãçµã¿åãããã°ãä¿æã§ããèšé²ã¯å€ãããŸãã æ¯èŒè»ž CRUD CRUDïŒå±¥æŽã»CDC ES åæå®è£
å°ãã å±¥æŽåºç€ãå ãã åçã»æåœ±åºç€ãå«ã¿å€§ãã å
ã«æ±ºãããã® çŸåšç¶æ
ã®ã¹ããŒã æ®ãåããŸãã¯å
šå€æŽã®ååŸæ¹æ³ ã€ãã³ãã®å¢çãš payload æ®ãèšé² åºæ¬ã¯çŸåšç¶æ
è¡ãåã®å€æŽå·®å æ¥åäžã®åºæ¥äº åŸããéèšã§ããç¯å² äžæžãåã®ç¶æ
ã¯åŸ©å
ã§ããªã èšé²ããå·®åãšãåã®æå³ãä¿ãããç¯å² å¿
èŠãªäºå®ãã€ãã³ãã«å«ãŸããç¯å² åãæ¡ä»¶ 仿§ãšæž¬ãæ¹ãå®å®ããŠãã å¿
èŠãªå±¥æŽãå
ã«èšèšã§ãã 衚瀺ãšéèšãåŸããå€ããã 人æç޹ä»ã§ã¯ããã¡ãã«ã®ééçããªãŒãã¿ã€ã ãæœçã®å€æææã«ãªããŸãã ãã®è©³ããæž¬ãæ¹ã決ãŸã£ãã®ã¯ããªãªãŒã¹åŸã§ãã ãã¡ãã«ã®å°éå±¥æŽããŒãã«ã¯ãªãªãŒã¹ãã1ãæååŸãåæçšã® Read Model 矀ã¯3ãæåŸã«äœããŸããã ã©ã¡ããéå»ã«é¡ã£ãŠããŒã¿ãåãŸã£ãŠããŸãã ã€ãã³ãã«ã¯ããã¹ããŒã¿ã¹åã A ãã B ã«å€ãã£ããã§ã¯ãªãããæèšºãå§ãããã颿¥ãåžæããããNG ã«ãªã£ãããšèšé²ããŠããŸããã ãã¡ãã«ã®å段éãåãæ¥åçšèªã§å®çŸ©ããããããæåœ±ãæžããšãã«ãè¡ã®å€æŽãæ¥åäžã®åºæ¥äºãžèªã¿æ¿ããå¿
èŠããããŸããã§ããã CRUD ã§ããå±¥æŽããŒãã«ãæåããçšæããã°åãåæã¯ã§ããŸãã ãã ãããã®å Žåã¯ã©ã®åã®å±¥æŽãæ®ãããå
ã«æ±ºããŸãã ãã¡ãã«ã®å°éå±¥æŽã«äœãå¿
èŠãåãã£ãã®ã¯ãªãªãŒã¹åŸãªã®ã§ãå¿
èŠãªå±¥æŽããªãªãŒã¹åã«ãã¹ãŠéžã¶ã®ã¯é£ããç¶æ³ã§ããã åãéžã°ãããã¹ãŠã®å€æŽãèšé²ããæ¹æ³ããããŸãã Fivetran ã®ãããªããŒã«ã§ CDC ãè¡ãããç£æ»ãã°ã䜿ããããŒãã«ã®å
šå€æŽãåæåºç€ãžéãæ¹æ³ã§ãã éçŽã decide ãå®è£
ããªãã¶ããã¢ããªã±ãŒã·ã§ã³åŽã¯è»œããªããŸãã CDC ã§æ®ãã®ã¯è¡ã®å·®åã§ãã ãã〠NG ã«ãªã£ãããã®ããã«ãããæç¹ã§èµ·ããäºå®ãªãã倿Žå±¥æŽãã埩å
ã§ããŸãã é£ãããªãã®ã¯ãæ¥åäžã®æŠå¿µèªäœãäœãæ¿ããå Žåã§ãã éçºäžã«ãæ±äººãµã€ãã®ãå¿åãããã®ãŸãŸæã¡èŸŒãã èšèšãæšãŠã人æç޹ä»ã®ã玹ä»ããžäžæ¬åããããšããããŸããã ãã®å€æŽã§ã¯ãåãåã§ãååŸã§æå³ãç°ãªããŸãã ã©ã®å€æŽãæ¥åäžäœãæå³ããã®ããå¥ã«èšé²ãæ®ããŠè£ãããšãã§ããŸãã ãã ãæ¥åäžã®æå³ãŸã§å¥ã«èšé²ããŠåŸ©å
ã§ããããã«ãããšãES ãšåãããèšé²æã®æå³ãèšèšããŠä¿ã€ã³ã¹ããçããŸãã ãã¡ãããES ã§ããã¹ãŠãåŸããæ±ºããããããã§ã¯ãããŸããã ã€ãã³ãã®å¢çãš payload ã«äœãå«ãããã¯ãèšé²ããæç¹ã§æ±ºããŸãã åŸããé
ç®ã远å ããŠããéå»ã®ã€ãã³ãã«ãã®å€ã¯å
¥ããŸããã ä»åé
ãããããã®ã¯ãèšé²æžã¿ã®äºå®ããäœã衚瀺ããã©ãéèšããããšãã倿ã§ãã AI ãšãŒãžã§ã³ãã«æž¡ããããã£ãå®è£
ES ã¯å®è£
éã®å€ãã¢ãŒããã¯ãã£ã§ãã ã²ãšã€ã®æ©èœã«ãã€ãã³ãå®çŸ©ã decide ã evolve ãprojectorããã¹ããå¿
èŠã§ãäŒŒãæ§æã®ãã¡ã€ã«ã䞊ã³ãŸãã äžäŸãšããŠãè¿éã±ãŒã¹ã®éçŽã¯å®è£
ã³ãŒãã2,215è¡ããã¹ããå«ãããš4,487è¡ã«ãªããŸããã 人æç޹ä»ã®æ¥åã«ã¯ãå¥çŽãæ¿èªãè§£çŽãè¿éããã¢ãªã³ã°ãªã©ãäŒŒãæ§é ãæã€éçŽãæ°å€ããããŸãã æçµçã«å®è£
ããéçŽã¯20çš®ã§ãã æåœ±ãåçã®å
±éåºç€ããæ©èœéçºã«å
ç«ã£ãŠçšæããå¿
èŠããããŸãã ãã®å®è£
éã¯ãES ãæ¡ãã«ããããçç±ã®ã²ãšã€ã§ããã ãªããžããªãäœã£ãé±ã«ãã³ãŒãã£ã³ã°èŠçŽãšãã¡ã€ã³ã®åæã AI ãšãŒãžã§ã³ãåãã®æç€ºãã¡ã€ã«ã«æžããCI ã®ã¬ãŒããæŽåããŸããã åãã¡ã€ã«ã®è²¬åãçãããåãš CI ã§èŠçŽéåãæ€åºã§ããããã«ããããšã§ãåã圢ã®å®è£
ãç¹°ãè¿ãéšå㯠AI ãšãŒãžã§ã³ãã«æž¡ããŸããã AI ãšãŒãžã§ã³ãã«æž¡ãäœæ¥ã®å¢çã¯ãCRUD ã§ãäœããŸãã ES ãå®ããã®ã¯ã€ãã³ããäžæ¬¡èšé²ã«ãããšãããŸã§ã§ã颿°ã®åãæ¹ãŸã§ã¯æ±ºãŸããŸããã ç§ãã¡ã¯åè¿°ã® Decider ãã¿ãŒã³ãçµã¿åãããæ¥åäžã®æ±ºå®ã decide ãã€ãã³ãã«ããç¶æ
é·ç§»ã evolve ã«åããŸããã evolve ãæ±ãã®ã¯ãããã®ã€ãã³ããé©çšãããšç¶æ
ã®ã©ããå€ããããã§ãã ã€ãã³ãåã远å ããã®ã« evolve ã® case ãæžãå¿ãããšã default ç¯ã® never 代å
¥ãã³ã³ãã€ã«ãšã©ãŒã«ãªããŸãã default : { const unhandled: never = event ; return err ({ kind: "refund_case_unhandled_event" , eventType: String ( unhandled ) }); } decide ã«ã¯æ¥åã«ãŒã«ãéãŸãããã人ãå
容ãèªãã§å€æããŸãã åãéçŽã®äžã§ããå®åçãªç¶æ
é·ç§»ãšãæ¥åäžã®å€æã䌎ãåŠçã颿°åäœã§åããããŸããã CRUD ã®ãã³ãã©ã§ã¯ãAI ãšãŒãžã§ã³ãã«æž¡ãäœæ¥ã®å¢çããããããåŒãããŠããããã§ã¯ãããŸããã å
¥åã®æ€èšŒãæ¥åã«ãŒã«ã®å€å®ãããŒãã«ã®æŽæ°ãã²ãšã€ã®é¢æ°ã«çœ®ããªããã©ããŸã§ä»»ããããå®è£
ããšã«å€æããå¿
èŠããããŸãã éçºã®äžç€ããã¯ãé²ãæ¹ãåºãŸã£ãäœæ¥ããAI ãšãŒãžã§ã³ãåãã®æé æžïŒskillïŒãšããŠåãåºããŸããã éçŽã®å®è£
ãã€ãã³ãã®ããŒãžã§ãã³ã°ãmigration ã®çæãããŒã«ã« DB ã®åæ§ç¯ãªã©ã§ãã ãªãªãŒã¹æç¹ã§62æ¬ã«ãªããŸããã ãã ããã¬ãŒããçšæããã«ãã€ã©ãŒãã¬ãŒãã ããçæããããšãåœ¢ã®æŽã£ãã³ãŒãã«æŠå¿µçãªèª€ããçŽã蟌ã¿ãŸãã æ¬æ Œçã«äœãå§ããåãã¢ãŒããã¯ãã£ãçè§£ãããããå°ããªã¢ããªãäœã£ãŠã¯å£ããŠããŸããã åããšãããŸã§ã¯ããã«ãã©ãçãã®ã«ãæ©èœã远å ãããšæ°æ¥ã§è¡ãè©°ãŸãããšãäœåºŠããããŸããã åŸãã確èªãããšããã¡ã€ã³ã®åãæ¹ã誀ã£ããŸãŸããã¡ã€ã«ã®åœ¢ã ããæã£ãŠããŸããã èšèšå€æã¯ ADRïŒArchitecture Decision RecordïŒãšããŠæ®ãããªãªãŒã¹ãŸã§ã«57æ¬ã«ãªããŸããã ADR ã¯ãAI ãšãŒãžã§ã³ãã«å€æã®èæ¯ãæž¡ããããã«æŽããŸããã AI ãšãŒãžã§ã³ãã«ãã£ãŠãå®è£
ã®ã³ã¹ãã¯äžããç¶ããŠããŸãã ãã ããéãäœããã¶ããèšèšã誀ã£ããšãã«çŽãã³ãŒããå¢ããŸãã äœã£ãŠç¢ºãããéçºã§ã¯ãæžãéãã ãã§ãªããééãã«æ°ã¥ãããšãã«ã©ããŸã§æ»ãããé²ã¿æ¹ãå·Šå³ããŸãã äºå®ãšèŠãæ¹ãåããããšã§ãç»é¢ãéèšã«é¢ãã倿Žã®å€ã㯠projector ã®æžãæãã§æžã¿ãŸããã ãªãªãŒã¹åŸã®è©äŸ¡ 2026幎4æã®ãªãªãŒã¹åœæ¥ãæåã®ããŒã ã®æ¥åãã¹ãã¬ããã·ãŒãããå
補ã·ã¹ãã ãžåãæ¿ããŸããã åãæ¿ãåŸã®1ãæã¯çްããªããŒã¿ä¿®æ£ãç¶ããæ¬çªã® Read Model ã3ååæåœ±ããŸããã ããã§ãæ¥åã¯æ¢ãŸããŸããã§ããã èšé²æžã¿ã®ã€ãã³ãã«ã¯æãå
¥ãããprojector ãçŽã㊠Read Model ãäœãçŽããããã§ãã ãã®çµæã ããèŠãŠãã©ããª0â1ã«ã CQRSïŒã€ãã³ããœãŒã·ã³ã°ãå§ãããããã§ã¯ãããŸããã ä»åã®å€æã«ã¯ãå°ãªããšãæ¬¡ã®æ¡ä»¶ããããŸããã ãªãªãŒã¹åŸãç»é¢ãæž¬ãæ¹ãå€ããç¶ãã æ¥åäžã®äºå®ãåŸããäœåºŠãåç
§ãã ç§»è¡å
ããŒã¿ã®å質ãäºåã«èªã¿åããªã ãããã®æ¡ä»¶ããªããã°ããã£ãšã·ã³ãã«ãªèšèšãéžãã ãšæããŸãã AI ãçµã¿èŸŒããæ¥ååºç€ãž ãã®ã·ã¹ãã ã§ç®æããŠããã®ã¯ãäºæ¥éšã®ã¡ã³ããŒãé¡§å®¢ãæ±è·è
ãšåãåã亀æžãææ¡ã ãã«éäžã§ããç¶æ
ã§ãã æ¥åã®æµããã·ã¹ãã äžã§èŠããããã«ãªããäºåäœæ¥ãå ±åããããžã¡ã³ãã AI ãåŒãåããããã°ãäººã¯æ±äººãµã€ãã ãã§ã¯ä»£æ¿ã§ããªã人æç޹ä»ã®ä»äºã«æéã䜿ããŸãã æ¥åããã»ã¹ã®å¯èŠåãš AI ãã€ãã£ãåã¯ãã¡ãã¬ãŒå
šäœã§é²ããŠããæ¹éã§ãã ä»åã®æ¥ååºç€ãã人æç޹ä»ã®é åã§ãã®æ¹éãé²ããåãçµã¿ã®ã²ãšã€ã§ãã æ¥åã®äºå®ãæ§é åããŠèšé²ããŠããã°ããã®èšé²ãããšã« AI ãæ¥åã®æµããææ¡ãã倿ãå®è¡ã«é¢ãããããã«ãªããŸãã ã¡ãã¬ãŒã§ã¯çæAIå©çšã®ã¬ã€ãã©ã€ã³ã瀟å
ã«å±éããåéšéã¯ãã®ã¬ã€ãã©ã€ã³ã«æ²¿ã£ãŠçæAIãå©çšããŠããŸãã MEDLEY Summer Tech Blog Relay 28æ¥ç®ã®èšäºã¯åæããã§ãïŒ ã¡ãã¬ãŒã§ã¯ããå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ããã仲éãåéããŠããŸãã å°ãã§ãèå³ããæã¡ããã ããŸãããããã²ã«ãžã¥ã¢ã«é¢è«ã«ãè¶ããã ããã ã¡ãã¬ãŒã§åãïœæ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã§ã®åãæ¹ã人äºå¶åºŠãæ±äººæ
å ±ãªã©ãæ¡çšã«é¢ããæ
å ±ãã玹ä»ããŸãã www.medley.jp
ãã¡ãã®èšäºã¯ãMEDLEY Summer Tech Blog Relayãã®17æ¥ç®ã®èšäºã§ãã MEDLEY Summer Tech Blog Relay | MEDLEY Developer Portal ããã«ã¡ã¯ïŒDevRelã®éç°ïŒ@Shige0096ïŒã§ãã ã¡ãã¬ãŒã§ã¯å€äŒç»ãšããŠãMEDLEY Summer Tech Blog Relayããšé¡ããŠãããã°ãªã¬ãŒãéå¬ããŸãïŒ 7/13(æ)ã8/21(é)ãŸã§æ¯æ¥ç°ãªãã¡ã³ããŒã... developer.medley.jp ã¯ããã« æ ªåŒäŒç€Ÿã¡ãã¬ãŒ 人æãã©ãããã©ãŒã æ¬éšã§ãšã³ãžãã¢ãããŠããŸããäœè€ã§ãã çŽè¿ã®7æã«ãšã³ããŠãŒã¶ãŒåãã®éçºæ
åœããŒã ã®ãªãŒããŒããããã©ãããã©ãŒã éçºæ
åœã®ããŒã ãžãªãŒããŒãšããŠç°åããŸããã1ã¶æåã»ã©çµã¡ãŸããã®ã§ãç°ååŸã®ãã€ã³ãã»ããã®å€åãåŠã³ãèšèŒãããŠããã ããã°ãšæããŸãã ãã©ãããã©ãŒã ããŒã ã«ã€ã㊠åŒç€Ÿäººæãã©ãããã©ãŒã æ¬éšã§ã®ãã©ãããã©ãŒã ããŒã ã§ã¯ãéçºè
äœéšã®åäžããããã¯ãéçºã®ã¹ããŒãã»åè³ªã®æç¶çãªåäžãç®çãšããçŸç¶ä»¥äžã®ãããªåãçµã¿ã宿œããŠããŸãã ã·ã¹ãã ãšããŠå¿
é ã®ãµããã¡ã€ã³ãå
±éåºç€ãšããŠåãåºãã»MSAå Ruby on Railsãã¯ãããšããå©çšã©ã€ãã©ãªã®ããŒãžã§ã³ã¢ããã®ä»çµã¿å CI/CDã»ç£èŠã¢ã©ãŒãçã®æé©å AIãå©çšãããã°æ€åºâèªåè§£æ¶ã®ä»çµã¿å AIã§ã®éçºãåæãšããéçºç°å¢ã®æŽåããªã© â»ã¡ãã¬ãŒã§ã¯çæAIå©çšã®ã¬ã€ãã©ã€ã³ã瀟å
ã§å±éãããŠãããåéšéã®æ¥åã§ã¯ãã®ã¬ã€ãã©ã€ã³ã«æ²¿ã£ãŠå©çšãããŠããŸãã ç°ååã«ãã£ãŠããããš ãšã³ããŠãŒã¶ãŒåãã®éçºãè¡ã£ãŠãããšãã¯ãåœç¶ã§ããæ
åœãã¡ã€ã³é åã«ãããŠã®äŸ¡å€ã®æå€§åãç®çãšããŠããŸãããPdMãšååããªãããæ¯èŒççæã®ãããžã§ã¯ããæ¹åæœçãç¶ç¶çã«ãªãªãŒã¹ããäœå¶ãäœãããšããåãã§ãã å質åé¡ããªãç¶æ³ã§ãæ©ãåºããæ©ããã£ãŒãããã¯ãåŸãŠãKPIã«å¯Ÿã广ãåºãã°ãã®ãŸãŸç¶ç¶ãæªåœ±é¿ãåºããåãæ»ãããšãã圢ã§ãã£ãŒãããã¯ãµã€ã¯ã«ãé«éã«åãããšãäž»çŒã«ãããŠããŸããã ãã¡éçºè
ãšããŠã®ãã€ã³ãæããå Žé¢ãå€ãã£ãããããã©ãããã©ãŒã ããŒã ãžã®ç°ååŸã¯ãããã£ããã®ãé«éã§è§£æ¶ããŠããããšãããã€ã³ãã»ããã§ããŸããã ç°ååŸã®æžæã ç°ååŸã¯ãããŒã ã®çŸç¶ã®åãçµã¿ãææ¡ãã€ã€ã以äžã®ãããªæ¥åã宿œããŠããŸããã å
±éåºç€ãžã®æ©èœè¿œå æ¢åã³ãŒãã®ç®¡çäœå¶ãšCDã®æŽå éçšæ¥åã®å®çŸ©ãšå¯Ÿå¿èšç»ã®ç«æ¡ éçºç°å¢ã®æŽå 宿œããäžã§ãã1ã2æ¥çšåºŠã§çµãããšæã£ãŠãããã®ãæã£ããããããããäžã€äžã€ã®çè§£ã«æéããããããšãã£ããèªåã®äžã®èŠèŸŒã¿ãšã®ãºã¬ãæããããã«ãªããæ³å®ããã¹ããŒããåºããªãããšã«çŠããšæžæããæããŠããŸããã æè¡ã¹ã¿ãã¯èªäœã¯ç°ååãšå€§ããå€ãã£ãŠããªãã®ã«ããŸããããªãããã®éåæã®æ£äœãæ¯ãè¿ããšãéçºã®æ§è³ªã®éããšããŠä»¥äžã®2ç¹ããã£ãããã«æããŸãã 宿ããéã 1. ãµãŒãã¹éã®è²¬åãæ
éã«åãæ±ãå¿
èŠããã ç°ååã¯åºæ¬çã«åäžãã¡ã€ã³ãšããã«çŽã¥ãã·ã¹ãã ã®éçºãäžå¿ã ã£ãããã責åã®å¢çãã³ãŒãã¬ãã«ä»¥äžã«æèããããšã¯ããŸããããŸããã§ãããèªåã®ãã¡ã€ã³ã®äžãå€ããèªæã§ãå€ãªãå¥ã®ããŒã ã«çžè«ããã°æžãã ããã§ãã äžæ¹ã§ãå
±éåºç€ãšåã·ã¹ãã ããŸããéçºã§ã¯ãã©ã¡ãã«è²¬åãæãããã¹ãããäŸåã¯ã©ã®çšåºŠã«ãšã©ããã¹ãããããã¡ããæ±ºããåŽã«åããŸãã 象城çã ã£ãã®ããå
±éåºç€åŽã§èµ·ããç¶æ
å€åãåã¢ããªã±ãŒã·ã§ã³ãžäŒããä»çµã¿ãæ€èšãããšãã®ããšã§ããæåã«çæããã®ã¯ææ®µã®æ¯èŒã§ããã åæ¹åã§éä¿¡ã§ããããã«ããå
±éåºç€åŽããã¢ããªã±ãŒã·ã§ã³åŽã®APIãå©ã å
±éåºç€ãéåæã®ã€ãã³ããšããŠæµããã¢ããªã±ãŒã·ã§ã³ãåãåã ã¢ããªã±ãŒã·ã§ã³åŽã§ããŒãªã³ã°ãã ãªã©ããã€ãææ®µãæ¯èŒæ€èšããæ¹åŒã決ããããŠããŸããã éäžã§æ°ã¥ããã®ã¯ãæ¯èŒããŠããæ¡ã®ããã€ãã ãå
±éåºç€ãåã¢ããªã±ãŒã·ã§ã³ã®ããšãç¥ã£ãŠããã 圢ã«ãªã£ãŠããããšã§ãããåºç€åŽããåã¢ããªã±ãŒã·ã§ã³ãžéä¿¡ããã«ã¯ãå°ãªããšãå®å
ã®URLã»èªèšŒæ
å ±ãªã©ãåã
ã®ã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠå€ããæ
å ±ãåºç€ãç¥ã£ãŠããå¿
èŠããããŸãã ãããã¯ãŒã¯çã«ã¯ãçµè·¯ãçšæããã°åæ¹åã®éä¿¡èªäœã¯å®çŸã§ããŸããå
±éåºç€åããŠéããªãææã§ãå©çšããã¢ããªã±ãŒã·ã§ã³ããŸã å°ãªãç¶æ³ã§ãããããã§ããã®åœ¢ãæ¡ããªãã£ãã®ã¯ãå
±éåºç€ã¯å©çšããåŽãå¢ããŠããåæã®ãã®ãªã®ã§ã å©çšåŽã1ã€å¢ãããã³ã«åºç€ãç¥ãã¹ãããšãå¢ãã æ§é ã¯èš±å®¹ããªãã»ãããããšå€æããããã§ãã æçµçã«ã¯èŠä»¶ã®åå®çŸ©ã«ããããªã¢ã«ã¿ã€ã æ§ã®èŠåŠã忀èšããäžã§ãå
±éåºç€åŽã§èµ·ããç¶æ
å€åãã¢ããªã±ãŒã·ã§ã³åŽãç¹å®ã®ããªã¬ãŒã§ååŸãã«è¡ã圢ã«èœã¡çãã責åãäŸåãããã¿ã«å¢ãããã«æžã¿ãŸããã ãã ãåæã§å®è£
ã®ææ®µæ€èšããå
¥ã£ãŠããŸã£ãã¶ããæéã®ãã¹ã¯å€§ããã£ãããã«æããŸãã æéã®ãã¹ä»¥äžã«æ°ã«ããŠããã®ã¯ã倿ã誀ã£ããŸãŸé²ããŠããŸãå¯èœæ§ã®ã»ãã§ãããäŸåã®åœ¢ã¯ãåã¢ããªã±ãŒã·ã§ã³ãããã«ä¹ã£ãããšã§å€ããããšãããšãçžå¿ã®ã³ã¹ãããããå¯èœæ§ãåŠå®ã§ããŸããã誀ã£ã倿ããã®ãŸãŸè² åµãšããŠæ®ãåŸãŸãããåé¡ãšããŠè¡šé¢åããã®ã¯å©çšåŽãå¢ããããšã«ãªããã¡ã§ãã責åãäŸåãæ
éã«åãæ±ãå¿
èŠããããšæããã®ã¯ããã®åŸæ»ãã®ãã«ãããããããã§ããã 2. ãå©çšè
ããšããŠçè§£ããŠããã€ããã®ç°å¢ãããæäŸè
ããšããŠã¯çè§£ã§ããŠããªãã£ã ãšã³ããŠãŒã¶ãŒåãã®éçºãè¡ã£ãŠããéã¯ãèªèº«ããå©çšè
ããšããŠéçºç°å¢ãå©çšããŠããããã®ç¹åŸŽã¯ååã«ææ¡ããŠããã€ããã§ããããæäŸè
ãã®ç®ç·ã§èŠããšããŸã£ããè¶³ããŠããŸããã§ããã éçºçšã®ãã¹ãããŒã¿ã®ä¿®æ£ãã¡ã³ããŒãšé²ããŠãããšãã®ããšã§ããå©çšè
ãšããŠã¯ãå€éã®è€æ°ã®ããŒã¿åŠçãããã«ãã£ãŠããã¹ãããŒã¿ãæå
¥ããããµã³ãããã¯ã¹ç°å¢ãäœãããå§æ¥æã«ã¯å©çšå¯èœã«ãªãããšããçè§£ã§ããããããå®éã«ã¯ãç°å¢ããšã®ããŒã¿åæ æ¡ä»¶ã«å·®åãããããšããäºåæ€èšŒã§æããã«ãªããŸããã æäŸè
ãšããŠã¯ããã®ããŒã¿ãã©ã®ãããªã¯ãŒã¯ãããŒã§äœãããã®ããã©ã®ç°å¢ã«ã¯èªåã§æå
¥ãããŠã©ã®ç°å¢ã«ã¯æå
¥ãããªãã®ããåç
§å
ãç°å¢ããšã«ã©ãåãæ¿ããã®ããŸã§ãææ¡ããŠããå¿
èŠããããŸããã©ãã«æãå ãããšã©ãã«å¯äœçšãåºãã®ããããããåãã£ãŠããªããã°å€æã§ããŸãããããããååã§ãªãã£ãããã忥ããŠããã¡ã³ããŒããã®åé¡æèµ·ãçè§£ããã®ã«æéãèŠããŠããŸããŸããã å©çšè
ãšããŠã®ç¿çã¯ãæäŸè
ãšããŠã®çè§£ã®ä»£ããã«ã¯ãªããªã ãšããã®ãççŽãªå®æã§ããããäžã€äžã€ã®çè§£ã«æéããããããšæããŠããåå ã®å€ãã¯ãå¿
èŠãªçè§£ã®çš®é¡ãå€ãã£ãŠããããšã«æ°ã¥ããªãã£ãããšã«ãããŸããã ãã®äžä»¶ããã£ããã«ãæäŸåŽã®èŠç¹ã§ç°å¢å
šäœã®ã¯ãŒã¯ãããŒãææ¡ãçŽããŸãããå©çšè
ãšæäŸè
ã®éãã¯ãåããããã¯ããè§Šã£ãŠããŠãæ°ä»ãã«ãããã®ã ãšæããŸãã ãããã« ç°ååã¯ãæ©ãåºããŠãæ©ããã£ãŒãããã¯ãåŸããäœå¶ãäœãããšãåªå
ããŠããŸãããå¯éæ§ã®ãããã®ã¯åºãããšããå€æè»žã§èŠèŸŒã¿ãç«ãŠãŠãããšããããšã§ãã äžæ¹ã§ãäžèšã®ãããªçµéšãããçŸåšã¯äºåã®èª¿æ»ã»æ€èšã»çè§£ã«ãªãœãŒã¹ãå²ããäžã§å€æããããšãéèŠããããã軞ãå€ãã£ãŠããŠããŸãã ä»åã®ç°åã§2ã€ã®ç«å Žãçµéšããããšã¯ãéçºã«ãããå€æè»žãå Žæã«ãã£ãŠå€ãããã®ã ãšç¥ãè¯ãæ©äŒã«ãªããŸãããåãããã«ãã©ãããã©ãŒã ãšã³ãžãã¢ãžã®è»¢èº«ãæ§ããŠããæ¹ã®åèã«ãªãã°å¹žãã§ãã Weâre hiring ã¡ãã¬ãŒã§ã¯ãSREãã¯ãããå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ãããããšã«åãçµããšã³ãžãã¢ãåéããŠããŸãããèå³ããæã¡ããã ããŸãããããã²ãå¿åãã ããã â»ã«ãžã¥ã¢ã«é¢è«ã倧æè¿ã§ãïŒãåžæã®éã¯ãããã®ä»ã®é
ç®ïŒåžæèšå
¥æ¬ïŒãã«ãŠãã®æšããèšèŒãã ããã ã¡ãã¬ãŒã§åãïœæ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã§ã®åãæ¹ã人äºå¶åºŠãæ±äººæ
å ±ãªã©ãæ¡çšã«é¢ããæ
å ±ãã玹ä»ããŸãã www.medley.jp MEDLEY Summer Tech Blog Relay 18æ¥ç®ã®èšäºã¯ç§ããã§ãïŒã楜ãã¿ã«ïŒïŒ
ãã¡ãã®èšäºã¯ãMEDLEY Summer Tech Blog Relayãã®20æ¥ç®ã®èšäºã§ãã MEDLEY Summer Tech Blog Relay | MEDLEY Developer Portal ããã«ã¡ã¯ïŒDevRelã®éç°ïŒ@Shige0096ïŒã§ãã ã¡ãã¬ãŒã§ã¯å€äŒç»ãšããŠãMEDLEY Summer Tech Blog Relayããšé¡ããŠãããã°ãªã¬ãŒãéå¬ããŸãïŒ 7/13(æ)ã8/21(é)ãŸã§æ¯æ¥ç°ãªãã¡ã³ããŒã... developer.medley.jp ã¯ããã« ã¡ãã¬ãŒ å»çãã©ãããã©ãŒã éçºå®€ SREã°ã«ãŒãã«2026幎4æã«å
¥ç€Ÿããææšãšç³ããŸãã ãããŸã§ã®çµæŽã¯ä»¥äžã®ãšããã§ãã 1瀟ç®: 人äºçµŠäžç³»äŒæ¥ã®åäŒç€Ÿã«å
¥ç€Ÿããããã±ãŒãžãœãããŠã§ã¢ã®å°å
¥èšå®ãããžãã¹ãã£ããã®Androidã¢ããªéçºãªã©ãæ
åœ 2瀟ç®: ã¡ãŒã«é
ä¿¡SaaSã®ã€ã³ãã©æ§ç¯ããéçºãã¬ã³ã¿ã«ãµãŒããŒäºæ¥ã®ãšã³ãžãã¢ãªã©ãæ
åœ 3瀟ç®: ã¡ãã¬ãŒ å»çãã©ãããã©ãŒã éçºå®€ SREã°ã«ãŒãïŒçŸè·ïŒ ãã®ãããªæµãã§å¹
åºãæè¡é åã®çµéšãç©ãã§ãããšã³ãžãã¢ã§ãã æ¬èšäºã§ã¯ã瀟å
åãã®æ¥åWebã¢ããªãçæéã§éçºããçµéšãéããŠããAIã«ãã£ãŠWebã¢ããªéçºãã©ãå€ãã£ãããã«ã€ããŠãäŒãããŸãã ã¡ãã¬ãŒã§ã¯çæAIå©çšã®ã¬ã€ãã©ã€ã³ã瀟å
ã§å±éãããŠãããåéšéã®æ¥åã§ã¯ãã®ã¬ã€ãã©ã€ã³ã«æ²¿ã£ãŠå©çšãããŠããŸãã äœãäœã£ãã®ã ãã®1ã2é±éã§ã瀟å
æ¥åã®éçšã«å¿
èŠãªäžéšæ©èœãåãã瀟å
åãWebã¢ããªãéçºããŸããã ãªãäœã£ãã®ãïŒèæ¯ïŒ ã¡ãã¬ãŒã®å»çãã©ãããã©ãŒã ã§ã¯ãå»çäºæ¥è
åãã«è€æ°ã®SaaSãããã¯ããæäŸããŠããŸããç§ã¯ç€Ÿå
æ¥åã®éçšæ¹åã«ãé¢ãã£ãŠããŸãã 察象ãšãªã管çããŒã¿ã¯ãéçšããªããæ¹åãéããŠããŸãããä»åŸããã«å¹ççãã€åçŸæ§é«ã管çãããããäžéšã®äœæ¥ã§ã¯ Claude ãæŽ»çšããªãããããŒã¿ãæ£èŠåããŠä»çµã¿ãšããŠç®¡çã§ããç¶æ
ãç®æãããšã«ããŸãããããããèª²é¡æãããä»åã®éçºãã¹ã¿ãŒãããŸããã ãWebã¢ããªäœããç°¡åã«ãªã£ãããšæãã3ã€ã®ç¬é ãåãªãCRUDã®Webã¢ããªãªãAIã䜿ãããšãç°¡åã«äœããã®ã§ã¯?ããšæããããããããŸããããããä»åã¯ãæ¢åã®Excel圢åŒãèžè¥²ããã¹ãã¬ããã·ãŒã颚ã®å
¥åç»é¢ã«å ããã³ã¡ã³ãæ©èœãããŒãžã§ã³ç®¡çã差忝èŒãããã«ã¯ç®¡çã¡ãã¥ãŒã§ã®çµç¹ããªãŒç®¡çãªã©ããããªãã®èŠæš¡ã®ã¢ããªã±ãŒã·ã§ã³ã«ãªã£ãŠããŸãã ãã®ã¢ããªãéçºããäžã§ããWebã¢ããªäœããæ¬åœã«ç°¡åã«ãªã£ãããšç¢ºä¿¡ããç¬éã3åãããŸããã 1. ã€ã³ãã©æ§æãšèŠä»¶ãå°ãäŒããã ãã§åœ¢ã«ãªã£ããšã AIã«äŒããã®ã¯ãã€ã³ãã©æ§æã䜿çšèšèªãéçºã®æµãã ãã§ãããæåæ°ã«ãããšãæ¬èšäºã®ãããŸã§ã®æç« ãããå°ãªãåéã§ãã ãã®çšåºŠã®ããã³ããã§ã»ãŒå
šæ©èœã®ã³ãŒãã宿ãããšãããæå°éã®ç¥èãšããã³ããã§ãæ°ãããã®ããŒãããäœããæä»£ã«ãªã£ãããšå®æããŸããã 2. Playwrightã«ãã¹ããä»»ããŠããã°ã¬ãèªåã§çºèŠã»ä¿®æ£ããŠããããšã ã¹ãã¬ããã·ãŒã颚ã®å
¥åç»é¢ã¯ãæäœæ¥ã§ã®ãã¹ãã«éåžžã«æéããããããã°ã¬ïŒæå³ããªãæ©èœã®åŸéãäžå
·åïŒãèŠã€ããã®ãå°é£ã§ãã ããã§ Playwright ã«ãããã¹ãã®è¿œå ãAIã«äŸé Œãããã¹ãŠã®ãã¹ãããã¹ããç¶æ
ãäœããŸããããããšã次ã®ä¿®æ£ãå
¥ããéã«AIããã°ã¬ãçºèŠããèªåŸçã«ä¿®æ£ãŸã§å®äºãããŠãããã®ã§ãã éçºã®äžã§ãã£ãšãå°éã§éªšã®æããäœæ¥ãäžèŠã«ãªã£ãç¬éã§ããã 3. MCPïŒModel Context ProtocolïŒãµãŒããŒã掻çšãããšã äžçªé©ããã®ã¯ããã§ãã åæããŒã¿ã®æŽåã§ã¯ã MCPïŒModel Context ProtocolïŒ ãµãŒããŒã®æ©èœã远å ããClaudeçµç±ã§ãèªç¶èšèªã«ããåŠçå
容ã®èšèšããã·ã§ã«ã¹ã¯ãªããã®äœæãŸã§ããè¡ããŸããã ãããæåãããšãããWebã¢ããªã¯ãããŒã¿ãä¿æãããç®±ããšãã€ã³ã¿ãŒãã§ãŒã¹ãã«éããªããªã£ãã®ã ããšæ·±ãçŽåŸããŸããã ãªããAIã«ããŒã¿ããŒã¹ãçŽæ¥æäœãããã®ã§ã¯ãªãã·ã§ã«ã¹ã¯ãªãããåºåãããã®ã¯ãåŠçå
容ãã³ãŒããšããŠåºå®åããå®è¡åã«ã¬ãã¥ãŒã§ããããã«ããããšã§ãªã¹ã¯ãæããããã§ãã ãŸãšã äžèšã®3ç¹ããéçºãµã€ã¯ã«ãšããŠè¡šçŸãããšæ¬¡ã®ãããªåœ¢ã§ãã ãã®éçºãµã€ã¯ã«ãéããŠããæ¥åWebã¢ããªã¯èª°ã§ãç°¡åã«äœããæä»£ã«ãªã£ãããšããããšã宿ããŸããã ãã®åŠã³ããããšã³ãžãã¢ãšããŠã®ä»åŸã®åãåãæ¹ã¯2ã€ãããšèããŠããŸãã AIã䜿ãåããŠéçºããã»ã¹ããã·ããã¬ãããããããAIãå§åçã«äžåãå°éæ§ã磚ãã èªåãäœããããã¯ãã«ã¯ç©æ¥µçã«AIæ©èœãçµã¿èŸŒãã§ãã AIãæ©èœãšããŠçµã¿èŸŒãã ãããã¯ãéçºãã§ããã°ãSaaSäŒæ¥ãæäŸã§ãã䟡å€ã¯ãŸã ãŸã åºãããŸãããAIæä»£ãçãæããšã³ãžãã¢ã«ãªããã¯ãã§ãã ãŸãã©ããã§äœéšè«ãç¥èŠãå
±æã§ããã°ãšæããŸãã®ã§ããã²ã¡ãã¬ãŒã®Developer Portalã®ãã©ããŒããé¡ãããŸãã Weâre hiring ã¡ãã¬ãŒã§ã¯ãSREãã¯ãããå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ãããããšã«åãçµããšã³ãžãã¢ãåéããŠããŸãããèå³ããæã¡ããã ããŸãããããã²ãå¿åãã ããã â»ã«ãžã¥ã¢ã«é¢è«ã倧æè¿ã§ãïŒãåžæã®éã¯ãããã®ä»ã®é
ç®ïŒåžæèšå
¥æ¬ïŒãã«ãŠãã®æšããèšèŒãã ããã ã¡ãã¬ãŒã§åãïœæ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã§ã®åãæ¹ã人äºå¶åºŠãæ±äººæ
å ±ãªã©ãæ¡çšã«é¢ããæ
å ±ãã玹ä»ããŸãã www.medley.jp MEDLEY Summer Tech Blog Relay 21æ¥ç®ã®èšäºã¯å±±æ¬ããã§ãïŒã楜ãã¿ã«ïŒïŒ
ãã¡ãã®èšäºã¯ãMEDLEY Summer Tech Blog Relayãã®6æ¥ç®ã®èšäºã§ãã MEDLEY Summer Tech Blog Relay | MEDLEY Developer Portal ããã«ã¡ã¯ïŒDevRelã®éç°ïŒ@Shige0096ïŒã§ãã ã¡ãã¬ãŒã§ã¯å€äŒç»ãšããŠãMEDLEY Summer Tech Blog Relayããšé¡ããŠãããã°ãªã¬ãŒãéå¬ããŸãïŒ 7/13(æ)ã8/21(é)ãŸã§æ¯æ¥ç°ãªãã¡ã³ããŒã... developer.medley.jp ã¯ããã« å»çãã©ãããã©ãŒã æ¬éš ãã©ãããã©ãŒã éçºå®€ SRE ã°ã«ãŒãã®å±±ç°ã§ããå»çæ©é¢åã SaaS ã§ãã CLINICS ã®å®å®çšŒåãšã·ã¹ãã ä¿¡é Œæ§ã®åäžã«åãçµãã§ããŸãã æ¬èšäºã§ã¯ãCLINICS ãé·ãã«ããã£ãŠäœ¿çšããŠããã¯ã©ã€ã¢ã³ãèªèšŒãµãŒãã OpenResty ãã Nginx ãžç§»è¡ããã«è³ã£ãçµç·¯ã«ã€ããŠç޹ä»ããŸãã ç¹ã«å®éã«çŽé¢ããããžãã¹èª²é¡ãæè¡éžå®ã«ãã©ãŒã«ã¹ãåœãŠãŠã話ãããŸãã ãªããæ¬èšäºã®äž»çŒã¯ãOpenResty vs Nginxãã®ããŒã«æ¯èŒã§ã¯ãããŸãããæ¯èŒæ€èšãé²ãããªãã§ãããããé»å眲åãèŠããªãã®ã§ã¯ãªããããšããæ°ã¥ãã«è³ããçµæãšããŠèªèšŒãµãŒãåäœã§ã¯ãªãã¢ãŒããã¯ãã£å
šäœãèŠçŽãããšã«ãªããŸãããæ¬èšäºã§ã¯ãã®è©äŸ¡è»žãšå€æã®éçšãå
±æããŸãã æ³å®èªè
: æ¢åã·ã¹ãã ã®æè¡éžå®ã»å·æ°ã«åãçµããšã³ãžã㢠æ€èšŒç°å¢: AWS (ALB / NLB / NAT Gateway / VPC) ãåæ å·çæç¹: 2026幎3æãOpenResty / Nginx ã®ããŒãžã§ã³èšè¿°ã¯åœæã®æ
å ± æ¬èšäºã®ãã€ã³ã æ¬èšäºã¯ CLINICS ã®ã¯ã©ã€ã¢ã³ãèªèšŒãµãŒãã OpenResty ãã Nginx ãžç§»è¡ããäºäŸã§ããã話ã®äžå¿ã¯ããŒã«çœ®ãæããã®ãã®ã§ã¯ãªãããããããèªèšŒãµãŒãã¯äœã解決ããŠããã®ãããåãçŽããéçšã«ãããŸãã å
¥å£ã®åã : OpenResty ã®åŸç¶ãšããŠäœãéžã¶ã èŠçŽããåã : èªèšŒãµãŒãã«æ®ãã¹ã圹å²ã¯æ¬åœã«äœã 蟿ãçããçã : çµè·¯ããããã¯ãŒã¯å±€ã§åé¢ããã°ãã¢ããªå±€ã®é»å眲åã¯äžèŠãšãªããèªèšŒãµãŒãã®åœ¹å²ã¯ mTLS æ€èšŒã®ã¿ã«çž®ã æè¡éžå®ã®æ±ºãæ : ãæ°èŠãŠãŒã¶ãŒãã¯ã©ã€ã¢ã³ãèšŒææžãªãã§ã¢ã¯ã»ã¹ã§ããå°ç·ãå¿
èŠããšãã CLINICS åºæã®ä»æ§ããALB mTLS ã§ã¯ãªã Nginx åäœãéžã¶æ ¹æ ãšãªã£ã ããã«è³ããçç±ãã²ãšããšã§èšãã°ããOpenResty ã®ä»£æ¿ãæ¢ããããšããããŠãã¢ãŒããã¯ãã£ã®åæãã®ãã®ãåãçŽããããã§ããããŒã«æ¯èŒã¯å
¥å£ã«ããããæ¬è³ªã¯æè¡ã¹ã¿ãã¯ã®å€åŽ â ã¢ãŒããã¯ãã£ã®åæãšãµãŒãã¹ã®äœ¿ããæ¹ â ã«ãããŸããã åæ: ãªãã¯ã©ã€ã¢ã³ãèªèšŒ (mTLS) ãå¿
èŠãªã®ã æ¬é¡ã«å
¥ãåã«ãCLINICS ã®ãããªå»çãããã¯ãã«ãããŠããªãã¯ã©ã€ã¢ã³ãèªèšŒ (mTLS) ãè¡ãèªèšŒãµãŒããå¿
èŠãªã®ããæŽçããŸãã CLINICS ã¯å»çæ©é¢ã§å©çšãããæ
å ±ã·ã¹ãã ã§ãããåçåŽåçãå»çæ
å ±ã·ã¹ãã ã®å®å
šç®¡çã«é¢ããã¬ã€ãã©ã€ã³ 第6.0çã(2023幎5æ) ã®å¯Ÿè±¡ãšãªããŸããåã¬ã€ãã©ã€ã³ã® ã·ã¹ãã éçšç·š [Control] 13. ãããã¯ãŒã¯ã«é¢ããå®å
šç®¡çæªçœ® ã§ã¯ããªãŒãã³ãªãããã¯ãŒã¯ãä»ããéä¿¡ã«ã€ããŠæ¬¡ã®ããã«æèšãããŠããŸã ( åçåŽåç ã¬ã€ãã©ã€ã³å
¬åŒããŒãž )ã ⥠ãªãŒãã³ãªãããã¯ãŒã¯ã«ãããŠãIPsec ã«ãã VPN æ¥ç¶çãå©çšãã HTTPS ãå©çšããå ŽåãTLS ã®ãããã³ã«ããŒãžã§ã³ã TLS1.3 以äžã«éå®ããäžã§ãã¯ã©ã€ã¢ã³ãèšŒææžãå©çšãã TLS ã¯ã©ã€ã¢ã³ãèªèšŒã宿œããããšããã ãã·ã¹ãã ã»ãµãŒãã¹çã®å¯Ÿå¿ãå°é£ãªå Žåã«ã¯ TLS1.2 ã®èšå®ã«ããããšãå¯èœãšããããã®éãTLS ã®èšå®ã¯ãµãŒã/ã¯ã©ã€ã¢ã³ããšãã«ãTLS æå·èšå®ã¬ã€ãã©ã€ã³ 3.0.1 çãã«èŠå®ãããæãå®å
šæ§æ°Žæºã®é«ããé«ã»ãã¥ãªãã£åãã«æºããé©åãªèšå®ãè¡ãããšã â å»çæ
å ±ã·ã¹ãã ã®å®å
šç®¡çã«é¢ããã¬ã€ãã©ã€ã³ 第6.0ç ã·ã¹ãã éçšç·š [Control] ã€ãŸããCLINICS ããªãŒãã³ãªãããã¯ãŒã¯çµç±ã§ã¯ã©ã€ã¢ã³ããšéä¿¡ãã以äžãTLS 1.3 (ãŸãã¯é«ã»ãã¥ãªãã£åèšå®ã® TLS 1.2) + mTLS ã¯ã¬ã€ãã©ã€ã³äžã®èŠè«ã«ãªããŸããIPAãTLS æå·èšå®ã¬ã€ãã©ã€ã³ãã®é«ã»ãã¥ãªãã£åã«ã€ããŠã¯ãå
¬åŒããŒãž ( IPA å
¬åŒããŒãž ) ãåç
§ããŠãã ãã (å·çæç¹ã®ææ°çã¯ç¬¬3.1.1ç (2025幎4æ25æ¥å
¬é)ãäžèšåŒçšæäžã®ã3.0.1 çãã¯å»çæ
å ±ã¬ã€ãã©ã€ã³ç¬¬6.0çæ¬æã®èšèŒã«åºã¥ããŸã)ã CLINICS ã«ã¯ã©ã€ã¢ã³ãèªèšŒãµãŒããååšããæ ¹æ¬çç±ã¯ããã«ãããŸããããã¹ããã©ã¯ãã£ã¹ãšããŠå°å
¥ããŠãããã®ã§ã¯ãªããå»çæ
å ±ãæ±ããµãŒãã¹ãšããŠæºããã¹ãèŠä»¶ãšããŠããããã¯ãŒã¯çµè·¯äžã« mTLS æ€èšŒãæ
ãã³ã³ããŒãã³ããé
眮ãããŠããŸãã ãã®ãmTLS ãã©ãã§çµç«¯ããèª°ãæ€èšŒããããããæ¬èšäºã§æ±ãèšèšå€æã®åºçºç¹ãšãªããŸãã æ§æ§æãš OpenResty æ¡çšã®èæ¯ CLINICS ã®ã¯ã©ã€ã¢ã³ãèªèšŒãµãŒãã¯ãçŽ4幎ã«ããã£ãŠ OpenResty ã§éçšãããŠããŸããããµãŒãã¹ãã¹ã±ãŒã«ã¢ããããŠããææã«èšèšããããã®åŸã倧ããªæ¹ä¿®ãå ããã«åãç¶ããŠãããã®ã§ãã ãªãåœæ OpenResty ãéžã°ããã®ããèŠä»¶ãšèšèšå€æã®é ã«è¿œã£ãŠã¿ãŸãã èŠä»¶: mTLS ã«ããã¯ã©ã€ã¢ã³ãèªèšŒ åé
ã§è¿°ã¹ããšãããCLINICS ããªãŒãã³ãªãããã¯ãŒã¯çµç±ã§ã¯ã©ã€ã¢ã³ããšéä¿¡ãã以äžãå»çæ
å ±ã¬ã€ãã©ã€ã³ã®èŠè«ãšã㊠mTLS ã®å®è£
ãå¿
èŠã§ããã¯ã©ã€ã¢ã³ãèªèšŒãµãŒãã¯ããã® mTLS æ€èšŒãæ
ãã³ã³ããŒãã³ããšããŠé
眮ãããŠããŸãã èšèšå€æ: Web ãµãŒãã®å
±éå äžæ¹ãCLINICS ã® Web ãµãŒãã¯ãæ§è³ªã®ç°ãªãè€æ°çµè·¯ããã®ãªã¯ãšã¹ããåäžã§æãæ§æã«ãªã£ãŠããŸãããããã§ãããè€æ°çµè·¯ããšã¯ã次ã®3çš®é¡ã®ãŠãŒã¶ãŒããã®ãªã¯ãšã¹ãã§ãã 瀟å
ãªãã¬ãŒã¿ãŒ: ãµããŒããã¹ã¯ãªã©ã瀟å
ã®ãªãã¬ãŒã·ã§ã³æ¥åãæ
ããŠãŒã¶ãŒ melmo ãŠãŒã¶ãŒ: æ£è
åãã¢ã㪠melmo ã®å©çšè
å»åž« / å»çäºå (æ¬èšäºã§ã¯ãã«ã«ãå©çšãŠãŒã¶ãŒããšã衚èš): CLINICS ã«ã«ãããå©çšããã ããŠããå»çæ©é¢ã®ãŠãŒã¶ãŒ 远å èŠä»¶: ãªã¯ãšã¹ãçµè·¯ã®èå¥ Web ãµãŒããå
±éåããçµæãåãåã£ããªã¯ãšã¹ãããã©ã®çµè·¯ã蟿ã£ãŠãããããå€å®ããå¿
èŠãçãŸããŸããã èšèšå€æ: é»å眲åã«ãããªã¯ãšã¹ãçµè·¯ã®èå¥ CLINICS ã§ã¯ãã®ãçµè·¯èå¥ãããã¯ã©ã€ã¢ã³ãèªèšŒãµãŒããä»äžããé»å眲åã§å®çŸããŠããŸããã ã€ãŸããèªèšŒãµãŒãã¯ãmTLS ã®å®è£
ããšããªã¯ãšã¹ãçµè·¯ã®èå¥ãã®2ã€ã®èŠä»¶ãåæã«æºããå¿
èŠããããŸãããç¹ã«çµè·¯èå¥ãé»å眲åã§å®çŸããã«ã¯ããªã¯ãšã¹ãã®åçš®æ
å ±ã Lua ã¹ã¯ãªãããã Nginx ã®å€æ°çµç±ã§åãåºãå¿
èŠããããŸããäž¡æ¹ã1ã€ã®æè¡ã¹ã¿ãã¯ã§å®çŸã§ããéžæè¢ãšã㊠OpenResty ãæ¡çšããŠããŸãããåœæã®èŠä»¶ã«å¯ŸããŠã¯ãåççãªéžæã ã£ããšèšããŸãã ãã ããã·ã¹ãã ã¯èŠä»¶ãšäžç·ã«å€ã³ããã®ã§ããçŽ4幎ã®éã«ããµãŒãã¹ã®ã¹ã±ãŒã«ããŠãŒã¶ãŒå±æ§ã®å€æ§åãAWS åŽã§å©çšã§ããæ©èœã®é²åããããåœåã®åæãå°ããã€ãºã¬ãŠããŠããŸããã æ§æ§æã§èŠããŠãã2ã€ã®èª²é¡ é·å¹Žéçšãããã¡ã«ãæ§æäžã®èª²é¡ãé¡åšåããŠããŸããã 1. NAT Gateway äŸåã«ããçµè·¯æ§æã®èª²é¡ Web ãµãŒãã® ALB ã Internet-facing ã¹ããŒã ã®ããããã¡ã€ã³è§£æ±ºã§ã¯ãããªã㯠IP ãè¿ãããŸããOpenResty ãã proxy_pass ã§ ALB ãžãªã¯ãšã¹ããéãçµè·¯ã¯ãçµæãšã㊠VPC å€ãçµç±ããã«ãŒãã£ã³ã°ãšãªããNAT Gateway ãå¿
ãéãæ§æã«ãªã£ãŠããŸããã å ããŠãOpenResty ã® Docker Hub äžã§å
¬éãããŠããå
¬åŒã€ã¡ãŒãž ( openresty/openresty ) ã¯å·çæç¹ã§ 1.29.2.3 (Nginx 1.29.2 ããŒã¹) ãŸã§ãå
¬éãããŠãããNginx æ¬å®¶ã§ upstream ãžã® keep-alive ãããã©ã«ãåããã 1.29.7 ã®å€æŽ ( NGINX Community Blog ) ãåã蟌ãã«ã¯ãèªåã§ Docker ã€ã¡ãŒãžããã«ãããå¿
èŠããããŸãããproxy_pass ã®åºŠã«æ°èŠ TCP ã»ãã·ã§ã³ã匵ããããªãŒããŒããããããµãŒãã¹ãæäŸããäžã§ã®ããã©ãŒãã³ã¹èª²é¡ã®äžã€ã§ããã ããã«åé¡ãªã®ã¯ããã®çµè·¯äžã«ãã NAT Gateway ãåäžé害ç¹ãšããŠæ©èœããŠããŸãããšã§ããæ€èšåœæãAWS ã® NAT Gateway 㯠AZ åäœ (Zonal) åäœã®ã¿ã§ãCLINICS ã®æ§æã§ã¯èªèšŒãµãŒããã Web App ãžã®çµè·¯ãåäžã® NAT Gateway ãçµç±ããŠããŸãã (å·çæç¹ã§ã¯è€æ° AZ ãžèªåå±éãã Regional NAT Gateway ãéžæè¢ã«å ãã£ãŠããŸã)ããããèœã¡ããšã次ã®2æ¹åãåæã«æ¢ãŸããŸãã ã€ã³ããŠã³ãæ¹å: èªèšŒãµãŒã â Web App ãžã®ãªã¯ãšã¹ãçµè·¯ã鮿ãããã«ã«ãå©çšãŠãŒã¶ãŒã®ãªã¯ãšã¹ãåä»ã忢ãã ã¢ãŠãããŠã³ãæ¹å: Web App â å€éš SaaS ãžã®é£æºãäžèœã«ãªã æ¬æ¥ã§ããã°ããã®çµè·¯ã NAT Gateway ã®ãããªåäžé害ç¹ã«äŸåãããããšã¯é¿ããããšããã§ããã 2. é害çºçæã®åœ±é¿ç¯å²ã®åºã 瀟å
ãªãã¬ãŒã¿ãŒ / melmo ãŠãŒã¶ãŒ / ã«ã«ãå©çšãŠãŒã¶ãŒãåã Web ãµãŒããå
±æããŠãããããWeb ãµãŒãã§é害ãèµ·ãããšãæ§è³ªã®ç°ãªãå
šãŠãŒã¶ãŒã«åæã«åœ±é¿ãæ³¢åããæ§é ã«ãªã£ãŠããŸããããµãŒãã¹ã®æé·ã«å¯ŸããŠããªã¹ã¯ãç·åœ¢ä»¥äžã«èšããã§ããç¶æ
ãšãèšããŸãã è§£æ±ºã®æ¹åæ§ â çµè·¯ã®åé¢ãš VPC å
éåå 2ã€ã®èª²é¡ããæã¡æã«å¯Ÿå¿ããããšæ¬¡ã®ããã«ãªããŸãã NAT Gateway äŸåã«ããçµè·¯æ§æã®èª²é¡ â ALB ã Private Subnet ã«é
眮ããèªèšŒãµãŒããã Web App ãŸã§ã®éä¿¡ã VPC å
ã«éãã é害çºçæã®åœ±é¿ç¯å²ã®åºã â ã«ã«ãå©çšãŠãŒã¶ãŒã®çµè·¯ãã瀟å
ãªãã¬ãŒã¿ãŒã»melmo ãŠãŒã¶ãŒã®çµè·¯ããåé¢ãã ã€ãŸãä»åã®å·æ°ã§ã¯ããã«ã«ãå©çšãŠãŒã¶ãŒã®çµè·¯ãåé¢ããVPC å
ã§å®çµãããããšããã¢ãŒããã¯ãã£ã®æ¹éãå
ã«æ±ºãŸããŸããèªèšŒãµãŒããã©ãäœãçŽããã¯ããã®æ¹éã®ããšã«ç¶ãåãã§ãã åé¢ã®åž°çµ â é»å眲åã®ååšçç±ãæ¶ãã æ¹éãæ±ºãŸã£ããšããã§ãOpenResty ãæ
ã£ãŠãã圹å²ãåè§£ãçŽããŸãã mTLS ã«ããã¯ã©ã€ã¢ã³ãèªèšŒ â å»çæ
å ±ã¬ã€ãã©ã€ã³ã®èŠè« é»å眲åã«ããçµè·¯èå¥ â åäžã® Web ãµãŒããå
šçµè·¯ãæãããã®ä»çµã¿ 1 ã¯å€ããªããã§ã¯ 2 ã¯ã©ããã é»å眲åã§çµè·¯ãèå¥ããªããã°ãªããªãã£ãã®ã¯ãã瀟å
ãªãã¬ãŒã¿ãŒ / melmo ãŠãŒã¶ãŒ / ã«ã«ãå©çšãŠãŒã¶ãŒã®ãã¹ãŠã®çµè·¯ããåäžã® Web ãµãŒããæããŠãããããã§ããçµè·¯ããããã¯ãŒã¯çã«åºå¥ã§ããªããããããã¢ããªå±€ã®é»å眲åã§åºå¥ããŠããŸãããçµè·¯ããããã¯ãŒã¯å±€ã§åãããªããé»å眲åãã®ãã®ãèŠããªããªããŸãã ããã¯äœãã工倫ããŠåã£ãçµæãšãããããåé¢ãšããæ¹éã®è«ççãªåž°çµã§ãããã ãããã®åž°çµãæã€æå³ã¯å€§ãããèªèšŒãµãŒãã«æ®ã圹å²ã¯ mTLS ã«ããã¯ã©ã€ã¢ã³ãèªèšŒãã 1ã€ã«ãªããŸãããOpenResty ã®åŸç¶ã«äœãå¿
èŠãããšããåãã¯ããã®æç¹ã§ãmTLS ã ããªããäœã§å®è£
ãããããšããããã£ãšå°ããªåãã«å€ãã£ãŠããŸãã æ€èšããéžæè¢ â mTLS ã ããªããäœã§å®è£
ããã èªèšŒãµãŒãã«æ®ã圹å²ã mTLS ã®ã¿ã«çµããããšã§ãéžæè¢ã¯æ¬¡ã®2ã€ã«ãªããŸãã éžæè¢ A: AWS ALB ã® mTLS æ©èœ â ã¯ã©ã€ã¢ã³ãèªèšŒããããŒãžãæ©èœã§ä»£æ¿ããèªèšŒãµãŒããã®ãã®ã廿¢ãã éžæè¢ B: Nginx åäœ â èªèšŒãµãŒãã¯æ®ããLua ã¹ã¯ãªãã (OpenResty) ãæããŠæšæºæ©èœã®ã¿ã§åæ§æãã ãŸãé
åçã«èŠããã®ã¯éžæè¢ A ã§ãããmTLS ããæ
ããªãã³ã³ããŒãã³ãã®ããã«ããµãŒããèªåã§éçšãç¶ããçç±ã¯ãªããããããŸãããéçšè² è·ãäžããæ§æãåçŽã«ã§ãããšèããŠããŸããã éžæè¢ A: AWS ALB ã® mTLS æ©èœ AWS 㯠ALB ã« mTLS æ©èœãæäŸããŠããŸã ( ALB Mutual TLS å
¬åŒããã¥ã¡ã³ã )ãALB ã® mTLS ã«ã¯ verify ã¢ãŒã ãš passthrough ã¢ãŒã ã®2ã€ããããããããåäœãšè²¬åç¯å²ã倧ããç°ãªããŸãã A-1. verify ã¢ãŒã ALB ãã¯ã©ã€ã¢ã³ãèšŒææžãçŽæ¥æ€èšŒããã¢ãŒãã§ããã¯ã©ã€ã¢ã³ããæç€ºãã X.509 èšŒææžããALB ã«çŽä»ãã Trust Store ã® CA èšŒææžããã³ CRL (倱å¹ãªã¹ã) ãšç
§åããæ€èšŒã TLS ãã³ãã·ã§ã€ã¯å
ã§å®çµãããŸããæ€èšŒçµæã¯ X-Amzn-Mtls-Clientcert-Serial-Number ã» X-Amzn-Mtls-Clientcert-Issuer ã» X-Amzn-Mtls-Clientcert-Subject ã» X-Amzn-Mtls-Clientcert-Validity ãªã©ã®ãããã§ããã¯ãšã³ãã«æž¡ãããŸãã æ€èšŒã»å€±å¹ç¢ºèªãŸã§ ALB ã«å§ä»»ã§ãã: Web App åŽã«èšŒææžåŠçã³ãŒããäžèŠãšãªããèªèšŒé¢å¿ããããã¯ãŒã¯åºç€åŽã«éã蟌ãããã æ€èšŒå€±æã®è² è·ãããã¯ãšã³ãã«åã°ãªã: ãã³ãã·ã§ã€ã¯æ®µéã§æ€èšŒãå®çµãããããäžæ£ãªèšŒææžã Web App ã«å°éããããšããªã èšŒææžãæç€ºããªãã¯ã©ã€ã¢ã³ã㯠TLS ãã³ãã·ã§ã€ã¯ãæç«ããªã: ããã¯ãäžæ£ã¢ã¯ã»ã¹ãæ©æã«é®æã§ããããšããã¡ãªããã§ãããããæ£åœãªçç±ã§èšŒææžãæããªãã¯ã©ã€ã¢ã³ãããäžåéããªããšããå¶çŽã§ããã A-2. passthrough ã¢ãŒã æ€èšŒããžãã¯ãã¢ããªåŽã§èªç±ã«ã«ã¹ã¿ãã€ãºã§ãã: Subject ã Issuer ã«å¿ããèªå¯ãçµç¹åºæã®ããªã·ãŒé©çšãªã©ããã¢ããªã®ã³ãŒãããŒã¹ã§å®çµãã æ€èšŒããªã·ãŒãã³ãŒãã§ããŒãžã§ã³ç®¡çãããã: Trust Store ã®æŽæ°ã ALB ã®ç®¡çç»é¢ã§ã¯ãªããããã€ãã€ãã©ã€ã³ã§æ±ãã èšŒææžãã§ãŒã³æ€èšŒã»å€±å¹ç¢ºèªã®ã³ã¹ãã¯ãã¹ãŠ Web App åŽã«ä¹ã: æ€èšŒããžãã¯ã®å®è£
責任ã«å ããæ§èœãã¥ãŒãã³ã° (ãã§ãŒã³æ€èšŒã®ãã£ãã·ã¥ãCRL/OCSP ã®ååŸçµè·¯) ã Web App ã§æã€å¿
èŠããã ã»ãã·ã§ã³åé (Session Resumption) ã¯ãµããŒããããªã: AWS å
¬åŒããã¥ã¡ã³ãäžãpassthrough ãš verify ã®äž¡ã¢ãŒãã§ Session Resumption ã¯ç¡å¹åãããæšãæèšãããŠãã ( Mutual authentication with TLS - Before you begin ) éžæè¢ B: Nginx åäœ é»å眲åãæšãŠãããšã®èªèšŒãµãŒãã«å¿
èŠãªã®ã¯ãTLS ã®çµç«¯ãã¯ã©ã€ã¢ã³ãèšŒææžã®æ€èšŒãããã¯ãšã³ããžã® proxy_pass ã ãã§ãããããã¯ãã¹ãŠ Nginx ã®æšæºæ©èœã§å®çµããŸãã ãããã OpenResty ãæ¡çšããŠããçç±ã¯ãé»å眲åã®ããã«ãªã¯ãšã¹ãæ
å ±ã Lua ã§æè»ã«æ±ãããããšã§ãããLua ã䜿ãåæ©ããªããªã£ã以äžãæ¬å®¶ Nginx ã«æ»ãã®ãèªç¶ãªéžæè¢ã«ãªããŸããæ¬å®¶ã«æ»ãã°ãupstream ãžã® keep-alive ãããã©ã«ãåããã 1.29.7 ã®ãããªãæ¬å®¶ã®ãªãªãŒã¹ã«ãçŽæ¥è¿œåŸã§ããŸãã æ¯èŒãšè©äŸ¡ â ALB mTLS ãæ¡çšããªãã£ãçç± ALB mTLS ã¯é
åçã«èŠããŸããããCLINICS ã®ã¢ããªã±ãŒã·ã§ã³ä»æ§ãšç
§ããåããããšæ¡çšã§ããŸããã§ããã CLINICS ã®ä»æ§ â ã«ã«ãå©çšãŠãŒã¶ãŒã§ã mTLS ãªãã§éãçµè·¯ãå¿
èŠ CLINICS ã«ã¯ãã«ã«ãå©çšãŠãŒã¶ãŒã§ãã£ãŠããæ°èŠãŠãŒã¶ãŒã®ã¯ã©ã€ã¢ã³ãèšŒææžçºè¡æã¯ã¯ã©ã€ã¢ã³ãèšŒææžãæããªãç¶æ
ã§ãµãŒãã¹ã«ã¢ã¯ã»ã¹ã§ããå¿
èŠããããšãã仿§ããããŸãã ALB ã® verify ã¢ãŒããæ¡çšãããšãèšŒææžãæããªãã¯ã©ã€ã¢ã³ã㯠TLS æ¥ç¶èªäœã確ç«ããªãããããŠãŒã¶ãŒç»é²ã®å°ç·ãå£ããŠããŸããŸãã ãã®ä»æ§ã¯ãQA ããŒã ãšãçŸç¶ã©ããªãã¿ãŒã³ã®ã¢ã¯ã»ã¹ãéããŠãããããäžç·ã«æ£åžãããã¿ã€ãã³ã°ã§æŽçã§ãããã®ã§ãããã³ãŒããèªãã ã ãã§ã¯èŠããŠããªãã䜿ããæ¹ãããQA ããŒã ã®å®æ©æ€èšŒããŠããŠããæµ®ãäžãã£ãŠãã圢ã§ãããæ©èœèŠä»¶ãã§ã¯ãªãããµãŒãã¹ã®äœ¿ããæ¹ãã®æèã§æãçŽãå¿
èŠããããŸããã passthrough ã¢ãŒãã®å Žåã®é£ç¹ ã§ã¯ passthrough ã¢ãŒãã¯ã©ãããALB ã¯èšŒææžãã§ãŒã³ããããã§æž¡ãã ããªã®ã§ãå®éã® mTLS æ€èšŒã¯ Web App åŽã§è¡ãããšã«ãªããŸããããã¯æ¬¡ã®ãããªå¥çš®ã®ãªãŒããŒããããçã¿ãŸãã èªèšŒããžãã¯ã Web App ã«æã¡èŸŒããããèªèšŒé¢å¿ãšããžãã¹é¢å¿ãæ··ãã mTLS ã®æ€èšŒã³ã¹ã (èšŒææžãã§ãŒã³ã®æ€èšŒã倱å¹ç¢ºèª) ã Web App ã®å¿çæéã«çŽæ¥åœ±é¿ãã ãèªèšŒãµãŒãã廿¢ã㊠ALB ã«å¯ãããã€ããããçµå± Web App åŽã«è€éæ§ãç§»ãã ãã®çµæãšãªããŸãã ããããŠãmTLS ã®å®è£
ã¯éžæè¢ B ã® Nginx ã«æ±ºãŸããŸãããæ¹é (çµè·¯ã®åé¢ãš VPC å
éåå) ãšæè¡éžå® (Nginx) ãåãããçµæããæ¬¡ã®æ°æ§æã§ãã æ°æ§æ åã³ã³ããŒãã³ãã®åœ¹å²ãšèšèšæå³ NLB (L4 ããŒããã©ã³ãµ) NLB 㯠TCP ã®ãŸãŸãã¹ã¹ã«ãŒãã L4 ããŒããã©ã³ãµãšããŠæ®ããŸãããçç±ã¯ãTLS çµç«¯ã Nginx ã«çœ®ãããã£ãããã§ããALB ãæå段ã«çœ®ããš L7 ã§ TLS ãçµç«¯ããããšã«ãªããmTLS æ€èšŒã®éžæè¢ã¯ ALB ã® verify/passthrough ã¢ãŒãã«éå®ãããŠããŸããŸããNLB ãåæ®µã«ã㊠TCP ã®ãŸãŸ Nginx ã«å±ããããšã§ãTLS ã®çµç«¯ãš mTLS æ€èšŒã Nginx åŽã§å®çµã§ããŸãã Nginx (TLS çµç«¯ + mTLS æ€èšŒ) Nginx ã TLS çµç«¯ã®äœçœ®ã«çœ®ããèšèšæå³ã¯æ¬¡ã®ãšããã§ãã Web App ã TLS çµç«¯ã«ããªã: Web App åŽã« TLS çµç«¯ãš mTLS æ€èšŒããžãã¯ãæããããšãèªèšŒé¢å¿ãšããžãã¹é¢å¿ãæ··ãã (ALB passthrough ã¢ãŒãã§ææãã課é¡ãšåãçç±) èªèšŒããžãã¯ããåäžã®å Žæãã«éã蟌ãã: èªèšŒã¯ Web App ããæåã§å®çµãããWeb App ã¯ããžãã¹ããžãã¯ã«éäžããã OpenResty æä»£ã® Lua ã¹ã¯ãªãããäžèŠã«ãªã: çµè·¯èå¥ (= é»å眲å) ãæšãŠãããšã§ãNginx ã®æšæºæ©èœã®ã¿ã§æ§æã§ãã Private Subnet ALB (L7 ã«ãŒãã£ã³ã° + ãã«ã¹ãã§ãã¯) ALB 㯠Internet-facing ãã Private Subnet é
眮ã«å€æŽããŸãããããã«ãããNginx ãã ALB ãžã®éä¿¡ã VPC å
ã«éããNAT Gateway ãçµç±ããªããªããŸãã ALB ãå®å
šã«å€ã㊠Nginx ãã Web App ã«çŽçµããæ¡ãããåŸãŸããããALB ãæ®ããã®ã¯æ¬¡ã®åœ¹å²åæ
ãæå³ããããã§ãã L7 ã«ãŒãã£ã³ã° (ãã¹ããŒã¹ã»ãã¹ãããŒã¹) ã ALB ã«ä»»ããNginx ã¯èªèšŒã«éäžããã ãã«ã¹ãã§ãã¯ãšãããã€æã®ããŒããŒã·ã§ã³ã ALB ã«å§ãã Nginx ã¯èªèšŒãALB ã¯é
é â é¢å¿ã®åé¢ããããã¯ãŒã¯äžã®åœ¹å²ãšããŠãæç€ºããèšèšãšããŸããã 倿Žãããããããã® æŽçãããšãæ°æ§æã¯æ¬¡ã®4ç¹ãåæã«å®çŸããŠããŸãã1 ãš 3 ã2ã€ã®èª²é¡ãžã®çŽæ¥ã®åçã2 ã¯åé¢ã®åž°çµã4 ã¯ãã®å¯ç£ç©ã§ãã ã¹ã³ãŒãããã«ã«ãå©çšãŠãŒã¶ãŒããã®ãªã¯ãšã¹ããã«éå®ã瀟å
ãªãã¬ãŒã¿ãŒã»melmo ãŠãŒã¶ãŒã¯å¥çµè·¯ãžåé¢ çµè·¯ããããã¯ãŒã¯çã«åããããããé»å眲åã«ããçµè·¯èå¥ãäžèŠã«ãOpenResty ã§ Lua ã䜿ãåæ©ããªããªããNginx åäœã§ååãªæ§æã« NAT Gateway ãçµç±ããªããªããæ§æäžã®åäžé害ç¹ãæ¶æ»
VPC å
éåéä¿¡ã«ãªã£ãããšã§ãNginx 1.29.7 ã®ããã©ã«ã upstream keep-alive ( NGINX Community Blog ) ã®æ©æµããã®ãŸãŸäº«åã§ããæ§æã« ç§»è¡ã§èŠæŠããç¹ â ãèšèšå³ã«æžãããŠããªãçµè·¯ããäžçªæã æ°æ§æãçµµã«æãããšèªäœã¯æ¯èŒçæ©ãçµãããŸãããæ¬åœã«æéãããã£ãã®ã¯ããã®åŸã®ãçŸç¶ã©ã䜿ãããŠããããã®æ£åžãã§ãã CLINICS ã«ã¯ãã«ã«ãå©çšãŠãŒã¶ãŒã§ãã£ãŠããæ°èŠãŠãŒã¶ãŒã®ã¯ã©ã€ã¢ã³ãèšŒææžçºè¡æã¯ã¯ã©ã€ã¢ã³ãèšŒææžãæããªãç¶æ
ã§ã¢ã¯ã»ã¹ã§ããå¿
èŠããããšãã仿§ããããŸãã ããã¯èšèšå³ã§ã¯ãªãããµãŒãã¹ã®äœ¿ããæ¹ãšããŠååšãã仿§ã§ãã ãã®çµè·¯ã®ååšã«æ°ã¥ãããšãã§ããã®ã¯ãQA ããŒã ã«äŸé Œãã E2E ãã¹ãã®çµæã確èªãããšãã§ããã SRE åŽã§èšèšå³ãã³ãŒãã远ããããŠããæ®µéã§ã¯æŸããªãã£ã仿§ãããã®è³ç£ãéããæ€èšŒã§è¡šã«åºãŠããããšããã®ãæ£çŽãªãšããã§ããæºäžã®èšèšå³ã ãã远ããããŠãããããªãªãŒã¹åŸã«ç»é²å°ç·ãå£ããŠãããããããŸããã ããã§å€§ããã£ãã®ã¯ãä»ããŒã ãç©ã¿äžããŠããè³ç£ããSRE ã®ç§»è¡æ€èšŒãšããŠãã®ãŸãŸæŽ»çšã§ããããšã§ããQA ããŒã ãæŽåããŠãã E2E ãã¹ãã¯ããã®ç§»è¡ã®ããã«äœããããã®ã§ã¯ãªããæ¥åžžçãªå質æ
ä¿ã®ãªãã§è²ã£ãŠãããã®ã§ãããããç§»è¡æ€èšŒã«ã転çšã§ãããšãããããŒã ããŸããã§è³ç£ã«ã¢ã¯ã»ã¹ã§ããç¶æ
ããæºäžã®èšèšã ãã§ã¯èŠããªã仿§ãç§»è¡åã«æŽãåºãã»ãŒããã£ãããã«ãªã£ãŠããŸããã å ããŠããã°ã¬æ€èšŒã倧ããªå·¥æ°ãå²ããå·¥çšã§ããããåããŠããæ¢åãµãŒãã眮ãæããããšã¯ãæ¢åã®ãã¹ãŠã®æåãä¿èšŒããå¿
èŠããããšããããšã§ããããŸããæ¬çªãšçäŸ¡ãªæ¯ãèããããããQA ããŒã ã«æ°ç°å¢ã§ã®æ©èœã®ç·ããããäŸé ŒããŠç¢ºèªããŸãããSRE åç¬ã§åçã®èгç¹ããŒãããçµã¿ç«ãŠãããšããŠãããããã®æ€èšŒã¯æç«ããŠããªãã£ããšæããŸãã æèš â ããŒã«æ¯èŒã®åã«ã圹å²ã®åè§£ããã£ã ä»åã®ç§»è¡ãéããŠæ®ã£ãæèšã¯ã次ã®2ã€ã§ãã 1. æè¡éžå®ã®åã«ã圹å²ã®åè§£ããã ãOpenResty ã®ç§»è¡ããšããŠæ€èšãå§ãããšãçŸè¡ãµãŒããæ
ã£ãŠãã圹å²ããã¹ãŠåŒãç¶ãããšãæé»ã®åæã«ãªããŸãããã®åæã®ãŸãŸã§ã¯ããLua çžåœã®æè»æ§ãæã€åŸç¶ããæ¢ãç¶ããŠããã¯ãã§ãã å®éã«ã¯ãã¢ãŒããã¯ãã£ã®åæ â åäžã® Web ãµãŒããå
šçµè·¯ãæã â ãå
ã«èŠçŽããããšã§ãåŒãç¶ãã¹ã圹å²ã¯ mTLS ã ãã«çž®ã¿ãŸããããããŸã§æ¥ãã°ãããŒã«ã®æ¯èŒã¯ã»ãšãã©èªæã§ããèšãæãããšãOpenResty ã®ä»£æ¿ãæ¢ãã®ããããããOpenResty ãèŠããªããªã£ããšããããšã§ãã ãOpenResty vs NginxããALB mTLS ã䜿ããåŠãããšããããŒã«ã®æ¯èŒã¯ãå
¥ãå£ã«ãããŸããã§ãããæ¬è³ªã¯ãäœã解決ããŠããã®ãããåãçŽãããšã§ããããã®çãã¯å€ãã®å Žåãæè¡ã¹ã¿ãã¯ã®å€åŽ â ã¢ãŒããã¯ãã£ã®åæ â ã«ãããŸãã 2. ããã§ããæåŸã®æ±ºãæã¯ã䜿ããæ¹ã 圹å²ã mTLS ã ãã«çµã£ãŠãããALB mTLS ã Nginx ãããšããéžæã¯æ®ããŸããããããæ±ºããã®ã¯æ§èœã§ãã³ã¹ãã§ããªãããæ°èŠãŠãŒã¶ãŒã®ã¯ã©ã€ã¢ã³ãèšŒææžçºè¡æã¯ãèšŒææžãªãã§ã¢ã¯ã»ã¹ã§ããå¿
èŠãããããšãã仿§ã§ããããããŠãã®ä»æ§ã¯ãã³ãŒããèšèšããã¥ã¡ã³ãã§ã¯ãªããQA ããŒã ã®å®æ©æ€èšŒããŠããŠã®ãªãã«ãããŸããã ALB mTLS ã¯åäœã§èŠãã°åªããæ©èœã§ãããCLINICS ã®ä»æ§ãšçµã¿åããããšæ¡çšã§ããŸãããæè¡éžå®ã®è¯ãæªãã¯ãéžå®å¯Ÿè±¡ã®åªå£ã§ã¯ãªããéžå®å¯Ÿè±¡ãšãµãŒãã¹ä»æ§ã®çµã¿åããã§æ±ºãŸããŸãã ã¢ãŒããã¯ãã£å·æ°ã«ãããæè¡éžå®ã¯ãæè¡çãªæ£ããã ãã§ãªããã¢ããªã±ãŒã·ã§ã³ã®ä»æ§ããŠãŒã¶ãŒãã©ã®ããã«ãµãŒãã¹ã䜿ã£ãŠããããçè§£ããäžã§è¡ãå¿
èŠãããã ç§»è¡æ€èšŒã®å·¥çšãå«ããŠãä»åã®å·æ°ã§æãæéãèŠããã®ã¯ãã®çè§£ã§ããã ãŸãšã CLINICS ã®ã¯ã©ã€ã¢ã³ãèªèšŒãµãŒãã OpenResty ãã Nginx ãžç§»è¡ããäºäŸããèæ¯ã«ããã¢ãŒããã¯ãã£èŠçŽãã®éçšãšããããŠç޹ä»ããŸããã æ§æ§æ: åäžã® Web ãµãŒããå
šçµè·¯ãæããããã¢ããªå±€ã®é»å眲åã§çµè·¯èå¥ â NAT Gateway äŸåã«ããçµè·¯æ§æãé害波åç¯å²ã®åºãã«èª²é¡ãæ±ããŠãã æ¹é: ã«ã«ãå©çšãŠãŒã¶ãŒã®çµè·¯ãåé¢ããVPC å
ã«éãã â åé¢ã®åž°çµãšããŠé»å眲åãäžèŠã«ãªããèªèšŒãµãŒãã®åœ¹å²ã¯ mTLS ã®ã¿ã«çž®å° æè¡éžå®: ALB mTLS 㯠CLINICS ã®ä»æ§ (èšŒææžãªãã§éãå°ç·ãå¿
èŠ) ãšçµã¿åããããšæ¡çšã§ãããNginx åäœãæ¡çš æèš: ããŒã«æ¯èŒã®åã«åœ¹å²ã®åè§£ããããããã§ãæåŸã®æ±ºãæã¯ãµãŒãã¹ã®äœ¿ããæ¹ã®çè§£ã«ãã£ã ä»åã¯ã«ã«ãå©çšãŠãŒã¶ãŒã®çµè·¯ããçæããŸãããã瀟å
ãªãã¬ãŒã¿ãŒã»melmo ãŠãŒã¶ãŒã®çµè·¯ã«ã€ããŠãåãèãæ¹ã§æŽçãé²ããŠããäºå®ã§ãã ãåããŠãããã®ããå€ããã®ã¯æããã®ã§ãããèšèšæã®åæãå€ãã£ããŸãŸæŸçœ®ãããšããã€ã®éã«ããåããŠããã ãã®ãã®ãã«ãªã£ãŠããŸããŸãããã®å·®åãåããäœæ¥ãããããããç¶ããŠãããããšèããŠããŸãã Weâre hiring ã¡ãã¬ãŒã§ã¯ãSRE ãã¯ãããå»çãã«ã¹ã±ã¢ã®æªæ¥ããå
±ã«åµã£ãŠãããšã³ãžãã¢ãåéããŠããŸãããèå³ããæã¡ããã ããŸãããããã²ãå¿åãã ããã â»ã«ãžã¥ã¢ã«é¢è«ã倧æè¿ã§ãïŒãåžæã®éã¯ãããã®ä»ã®é
ç®ïŒåžæèšå
¥æ¬ïŒãã«ãŠãã®æšããèšèŒãã ããã ã¡ãã¬ãŒã§åãïœæ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã§ã®åãæ¹ã人äºå¶åºŠãæ±äººæ
å ±ãªã©ãæ¡çšã«é¢ããæ
å ±ãã玹ä»ããŸãã www.medley.jp MEDLEY Summer Tech Blog Relay 7æ¥ç®ã®èšäºã¯æè€ããã§ãïŒã楜ãã¿ã«ïŒïŒ
ããã«ã¡ã¯ïŒDevRelã®éç°ïŒ @Shige0096 ïŒã§ãã ã¡ãã¬ãŒã§ã¯å€äŒç»ãšããŠãMEDLEY Summer Tech Blog Relayããšé¡ããŠãããã°ãªã¬ãŒãéå¬ããŸãïŒ 7/13(æ)ã8/21(é)ãŸã§æ¯æ¥ç°ãªãã¡ã³ããŒãæè¡ããšã³ãžãã¢ãªã³ã°ãå人éçºãªã©å¹
åºãããŒãã§ããã¯ããã°ãå
¬éããŠãããŸãïŒ æ¬èšäºã«ãŠæ¯æ¥ããã°ãè¿œèšæŽæ°ããŠããã®ã§ããã²ã楜ãã¿ãã ããâš â»åæ¥ç¥ãé€ã ðãããããã°æšå¹Žã®èšäºããã²ãã§ãã¯ããŠã¿ãŠãã ããïŒ MEDLEY Summer Tech Blog Relay | MEDLEY Developer Portal ããã«ã¡ã¯ïŒã¡ãã¬ãŒã§DevRelãããŠããéç°ã§ãã ä»å¹Žãæãæ¥ãç¶ããŠããŸããããããéããã§ããïŒ ã¡ãã¬ãŒã§ã¯å€äŒç»ãšããŠãMEDLEY Summer Tech Blog Relayããšé¡ããŠãããã°ãªã¬ãŒãéå¬ããŸãïŒ 8/2... developer.medley.jp ð» ããã°ãªã¬ãŒã«ã¬ã³ã㌠ðïžç¬¬1é±(7/13~7/17) Day1ïŒïŒä»®ïŒðïŒçäºïŒ Day2ïŒFivetranã«ã€ããŠïŒæ¬å€ïŒ Day3ïŒTBDïŒæ£®å·ïŒ Day4ïŒBigQueryã®ã³ã¹ãåæžåšãïŒæç°ïŒ Day5ïŒTBDïŒå®ïŒ ðïžç¬¬2é±(7/21~7/24) Day6ïŒFY25 CLINICSå€§èŠæš¡é害察å¿ã§èªèšŒåºç€ã®å·æ°ãããæã«åŸãåŠã³ã«ã€ããŠïŒå±±ç°ïŒ Day7ïŒããŒã«ã«LLMã®å人ã§ã®æŽ»çšã«ã€ããŠïŒæè€ïŒ Day8ïŒèªäœããŒãã¹ãšããŒã«ã«LLMããŽãªãŽãªïŒçŠå³¶ïŒ Day9ïŒTBDïŒçš²æïŒ ðïžç¬¬3é±(7/27~7/31) Day10ïŒRubyã§çµã¿èŸŒã¿ã»ã²ãŒã ã»AIã®ã©ããïŒïŒè€åïŒ Day11ïŒTBDïŒå¹³æïŒ Day12ïŒTBDïŒé«æ©ïŒ Day13ïŒ(ä»®) AI API å©ããšãèããããšïŒå±±äžïŒ Day14ïŒJetson Orin Nano Super ã«ããããŒã«ã«MLLM掻çšã«ã€ããŠïŒå±±æ¬ïŒ ðïžç¬¬4é±(8/3~8/7) Day15ïŒMaestro E2EïŒè
åïŒ Day16ïŒTBDïŒå¥¥æŸ€ïŒ Day17ïŒTBDïŒäœè€ïŒ Day18ïŒTBDïŒç§ïŒ Day19ïŒTBDïŒä¹
ä¿ïŒ ðïžç¬¬5é±(8/10~8/14) Day20ïŒTBDïŒææšïŒ Day21ïŒTBDïŒå±±æ¬ïŒ Day22ïŒTBDïŒæäžïŒ Day23ïŒTBDïŒç«¹æ¬ïŒ ðïžç¬¬6é±(8/17~8/21) Day24ïŒTBDïŒå±±æ²³ïŒ Day25ïŒTBDïŒäºæŸ€ïŒ Day26ïŒTBDïŒæž
æ°ŽïŒ Day27ïŒã¡ãã¬ãŒã«ããã0â1éçºã®ãªã¢ã«ãªè©±ïŒãšãŒãžã§ã³ãæ¥åã·ã¹ãã ïŒïŒåŸ·æ°žïŒ Day28ïŒTBDïŒåæïŒ ð Weâre hiring! ã¡ãã¬ãŒã§ã¯ããå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ããã仲éã倧åéããŠããŸãïŒ å°ãã§ãèå³ããæã¡ããã ããŸãããããã²ãã«ãžã¥ã¢ã«é¢è«ã«ãè¶ããã ããð ãå¿åãåŸ
ã¡ããŠãããŸãïŒïŒ ã¡ãã¬ãŒã§åãïœæ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã§ã®åãæ¹ã人äºå¶åºŠãæ±äººæ
å ±ãªã©ãæ¡çšã«é¢ããæ
å ±ãã玹ä»ããŸãã www.medley.jp
ããã«ã¡ã¯ãå»çãã©ãããã©ãŒã æ¬é𠿝ç§èšºçæäºæ¥éš DENTISéçºã°ã«ãŒãã®è€åã§ãã 2026幎4æã«ã¡ãã¬ãŒã«å
¥ç€Ÿããšã³ãžãã¢ãšããŠã¯ã©ãŠãæ¯ç§æ¥åæ¯æŽã·ã¹ãã ã DENTIS ããéçºããŠããŸãã ã¡ãã¬ãŒã¯2026幎5æ30æ¥ã«å²éçã®é¢ã±åãµãããã»ã³ã¿ãŒã«ãŠéå¬ããããé¢ã±åRubyäŒè°01ãã«Goldã¹ãã³ãµãŒãšããŠåè³ããŸããïŒ é¢ã±åRubyäŒè°01 é¢ã±åRubyäŒè°01ã¯ã倩äžåãç®ã®å°ãé¢ã±åãã§éå¬ãããå°åRubyäŒè°ã§ãã2026幎5æ30æ¥ïŒåïŒéå¬ã regional.rubykaigi.org é¢ã±åRubyäŒè°ã¯å°åRubyäŒè°ã®ãã¡ã®ã²ãšã€ã§ãéå¬å°ã®å²éåšèŸºã®æ¹ã
ã ãã§ã¯ãªããå
šåœããRubyãšã³ãžãã¢ãéãã€ãã³ãã§ãã å
¥ç€ŸãããŠã®ç§ãå«ãããšã³ãžãã¢ãšDevRelã®èš3åãçŸå°åå ããå€ãã®æ¹ã
ãšäº€æµãããŠããã ããŸããã ä»åã¯äŒå Žã»ããŒã¹ãšçºè¡šã®æ§åãã玹ä»ããŸãã éäž é¢ã±åé§
ããåŸæ©10åãé¢ã±åã®æŠãã«ã€ããŠã®ç޹ä»ããŒããèŠãªããäŒå ŽãžåãããŸããã äŒå Žã®æ§å äŒå Žã«ã¯è¥¿è»ã»æ±è»ã®å¹ãç«ã£ãŠããŸããã ç»å£è
ããšã«æŠå°ããŒã ãèšèŒãããŠããŸããã®ã§ãæ±è»ã§ç»å£ããåŒç€Ÿã®ç§ãšããŒã¹ã¹ã¿ããã§èšå¿µæ®åœ±ãããããŸããã çºè¡šã¯400åžãè¶
ãã倧ããŒã«ã«ãŠè¡ãããŸããã åŒç€ŸããŒã¹ã®æ§å åŒç€ŸããŒã¹äŒç»ãšããŠãçæAIã®æŽ»çšã¢ã³ã±ãŒãã»Xãã©ããŒã§ã®ããã«ãã£GETã¬ã©ãã³ãã£ã¬ã³ãžã宿œããããŸããã çºè¡šã®æ§å ã©ã®ã»ãã·ã§ã³ãéåžžã«é¢çœãã£ãã®ã§ãããå人çã«å°è±¡ã«æ®ã£ãã»ãã·ã§ã³ãå°ã玹ä»ããŸãã ãè¥¿è» æ¬¡éã Termfront: Rubyæšæºã©ã€ãã©ãªã ãã§äœãFPS Termfront: Rubyæšæºã©ã€ãã©ãªã ãã§äœãFPS - é¢ã±åRubyäŒè°01 é¢ã±åRubyäŒè°01ã¯ã倩äžåãç®ã®å°ãé¢ã±åãã§éå¬ãããå°åRubyäŒè°ã§ãã2026幎5æ30æ¥ïŒåïŒéå¬ã regional.rubykaigi.org Rubyã®æšæºã©ã€ãã©ãªã®ã¿ã§äœããããã¿ãŒããã«äžã§åãFPSãTermfrontãã®çºè¡šã§ãã ç»å£è
ã®S.H.ããã¯FPSã奜ãã§ã¹ããæéã«ããã¬ã€ããããšã®ããšã§ãã ãããæè¿ã¯AIãžã®æç€ºãªã©ã§ãŸãšãŸã£ãåŸ
ã¡æéãå°ãªãã5ã10åçšåºŠã®ã»ãã·ã§ã³ïŒè©ŠåïŒãã€ç°¡åã«éå§ã§ããããã¿ãŒããã«ã«ãããããã§ãã ã¿ãŒããã«ãªã®ã§åœç¶2Dãªã®ã§ãããæ¬äŒŒçãª3Dåã«ãã奥è¡ããããããã«èŠããŸãã é³å£°ã ãã¯å€éšã®ã©ã€ãã©ãªã§ã¯ãããã®ã®ããã以å€ã¯Rubyæšæºã©ã€ãã©ãªã®ã¿ã§å®è£
ãããŠãããåæŠïŒé信察æŠïŒãå¯èœã§ããã æè¿ã¯ã¿ãŒããã«ã®è¡šçŸåãäžãããã¿ãŒããã«UIããæµè¡ã£ãŠããŸããããŸããã²ãŒã ãŸã§äœãããšã¯æããé©ããŸããã ãæ±è» äžå
ã Play Music on Ruby ââ PicoRubyã§äœãMIDIãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŒã« Play Music on Ruby ââ PicoRubyã§äœãMIDIãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŒã« - é¢ã±åRubyäŒè°01 é¢ã±åRubyäŒè°01ã¯ã倩äžåãç®ã®å°ãé¢ã±åãã§éå¬ãããå°åRubyäŒè°ã§ãã2026幎5æ30æ¥ïŒåïŒéå¬ã regional.rubykaigi.org åŒç€Ÿã®ç§ã«ãããMIDIïŒMusical Instrument Digital InterfaceïŒé»å楜åšã®é³å£°ã®è»¢éèŠæ ŒïŒãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŒã«ãMIDoRIãã®çºè¡šã§ãã 2023幎ã®KeebKaigiã§ã®çºè¡šããã£ããã«ãå
¥åºåã»å å·¥ãå¯èœãªæ±çšçãªMIDIããã€ã¹éçºãç®æããŠãããšã®ããšã§ãã PicoRubyã®å¯Ÿå¿ããã€ã¹ã®å¢å ã»ããã€ã¹æ§èœã®åäžã«ãããå®çŸããããã®ãä»åã®å
容ã§ããã ãã¢ã§ã¯MIDIããŒããŒããšSEQTRACKïŒã€ããæ ªåŒäŒç€ŸïŒã®éã«MIDoRIããã€ã¹ãç¹ãæŒå¥ãããŸããã çŽãšå°ºå
«ãå¶åŸ¡ããããã®ããŒããŒãã®ã¹ããªããããåæ©èœã®ãªã³ã»ãªãåãæ¿ãã§äœ¿ãã¿ãããããã®å¶åŸ¡ã¯Rubyã§æžãããŠãããä»ã®ããã€ã¹ãšãèªç±ã«çµã¿åãããããããã§ãã PicoRubyãžã®åã蟌ã¿ã«åããŠæŽ»åäžãšã®ããšã§ãä»åŸã¯Rubyã«ã³ãã¡ã¬ã³ã¹ã§é»å楜åšãèŠãããšã«ãªããšæããšæ¥œãã¿ã§ãã ã©ã³ãã»ãã〠ãåŒåœãšã¬ãžã£ãŒã·ãŒããåãåã£ãŠäŒå Žå€ãžã倩åã¯æŽãã§é¢šãæ¶Œããã絶奜ã®ãã¯ããã¯æ¥åã§ããã åºã§ã¯æ±è»ã»è¥¿è»ã®å倧å°ãžã®ã€ã³ã¿ãã¥ãŒãè¡ãããæåŸã¯ãããã§ã¯ãã°ãã®äŒæŠããæ¥œãã¿ãã ããããšããåããŠèãæ¥æ¬èªã§ç· ããããŸããã RubyKaja RubyKaja 2026 åè³è
RubyKaja 2026 ã®åè³è
ãæšèŠçç±ãåå ã³ãã¥ããã£ã玹ä»ããŸãã kaja.rubyist.net RubyKajaã¯2012幎ã«ã äºãã«è€ãåãè³è³ãåãæåãçã¿åºããèªèº«ãåšå²ã®æŽ»èºãç©æ¥µçã«ã¢ããŒã«ããŠããäžçãäœã£ãŠãããã ããšããŠå§ãŸã£ãããã§ãã ä»åã¯Rubyã³ãã¥ããã£ãã20åã®ç޹ä»ãšãç¹å¥è³ãšããŠ5åã衚地ãããŸããã ïŒæ¬ã€ãã³ãã§ç»å£ããåŒç€Ÿã®ç§ãéžåºãããŸããâšïŒ ã³ãã¥ããã£ãç¶æã»ç¶ç¶ããæŽ»åã¯å€ããåããã¥ãããããããããŠè²¢ç®ãè©äŸ¡ãããã®ã¯çŽ æµãªããšã ãšæããŸããã åæŠ ããããçŽ æŽãããçºè¡šã ã£ãã®ã§ãããããã¯é¢ã±åãæ±ºçãã€ããããã®æ±ºæŠãå§ãŸããŸããã æ±è»ã»è¥¿è»ã«åãããŠç± æ»ãïŒçå
¥ãïŒãè¡ãâŠæããã西è»ã®åå©ãšãªããŸããã æåŸã¯å
šå¡ã§èšå¿µæ®åœ±ããŠã¯ããŒãžã³ã°ãšãªããŸããã æåŸã« æ±è»ã»è¥¿è»ã«åãããŠã®çºè¡šãåæŠãæŠå°ã®ãããªèšèé£ããæŠå°èªããªã©ãä»ã«ã¯ãªãç¹è²ã»é¢ã±åã®å°ã§ã«ã³ãã¡ã¬ã³ã¹ãããããšãžã®ç±æã«è§ŠããããçŽ æŽãããã€ãã³ãã§ããã å¥è¡è¡ïŒéå¶ã¹ã¿ããïŒã®çæ§ãæŠå°ïŒç»å£è
ïŒã®çæ§ãåå è
ã®çæ§ãæ¬åœã«ããããšãããããŸããïŒ ã¡ãã¬ãŒã§ã¯ãšã³ãžãã¢ãç©æ¥µæ¡çšäžã§ãïŒ ã¡ãã¬ãŒã§ã¯Rubyãç©æ¥µçã«æŽ»çšããŠãå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ãããããã¯ããéçºããŠããŸãã å»çãã«ã¹ã±ã¢é åã®èª²é¡è§£æ±ºã«èå³ãããæ¹ã¯ããã²ãæ°è»œã«ãé£çµ¡ãã ããïŒ ã¡ãã¬ãŒã§åãïœæ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã§ã®åãæ¹ã人äºå¶åºŠãæ±äººæ
å ±ãªã©ãæ¡çšã«é¢ããæ
å ±ãã玹ä»ããŸãã www.medley.jp Medley Engineer Entrance Book ãã®åºŠã¯æ ªåŒäŒç€Ÿã¡ãã¬ãŒã«èå³ããå¯ãããã ãããããšãããããŸããæ¬è³æã¯ãã¡ãã¬ãŒãžã®è»¢è·ããæ€èšããã ããŠããçæ§ã«ãåœç€Ÿãããæ·±ããçè§£ããã ãããã«äœæããããŸããã medley-inc.notion.site
ããã«ã¡ã¯ãå»çãã©ãããã©ãŒã æ¬é𠿝ç§èšºçæäºæ¥éš DENTISéçºã°ã«ãŒãã®è€åã§ãã 2026幎4æã«ã¡ãã¬ãŒã«å
¥ç€Ÿããšã³ãžãã¢ãšããŠã¯ã©ãŠãæ¯ç§æ¥åæ¯æŽã·ã¹ãã ã DENTIS ããéçºããŠããŸãã ã¡ãã¬ãŒã¯2026幎5æ30æ¥ã«å²éçã®é¢ã±åãµãããã»ã³ã¿ãŒã«ãŠéå¬ããããé¢ã±åRubyäŒè°01ãã«Goldã¹ãã³ãµãŒãšããŠåè³ããŸããïŒ é¢ã±åRubyäŒè°01 é¢ã±åRubyäŒè°01ã¯ã倩äžåãç®ã®å°ãé¢ã±åãã§éå¬ãããå°åRubyäŒè°ã§ãã2026幎5æ30æ¥ïŒåïŒéå¬ã regional.rubykaigi.org é¢ã±åRubyäŒè°ã¯å°åRubyäŒè°ã®ãã¡ã®ã²ãšã€ã§ãéå¬å°ã®å²éåšèŸºã®æ¹ã
ã ãã§ã¯ãªããå
šåœããRubyãšã³ãžãã¢ãéãã€ãã³ãã§ãã å
¥ç€ŸãããŠã®ç§ãå«ãããšã³ãžãã¢ãšDevRelã®èš3åãçŸå°åå ããå€ãã®æ¹ã
ãšäº€æµãããŠããã ããŸããã ä»åã¯äŒå Žã»ããŒã¹ãšçºè¡šã®æ§åãã玹ä»ããŸãã éäž é¢ã±åé§
ããåŸæ©10åãé¢ã±åã®æŠãã«ã€ããŠã®ç޹ä»ããŒããèŠãªããäŒå ŽãžåãããŸããã äŒå Žã®æ§å äŒå Žã«ã¯è¥¿è»ã»æ±è»ã®å¹ãç«ã£ãŠããŸããã ç»å£è
ããšã«æŠå°ããŒã ãèšèŒãããŠããŸããã®ã§ãæ±è»ã§ç»å£ããåŒç€Ÿã®ç§ãšããŒã¹ã¹ã¿ããã§èšå¿µæ®åœ±ãããããŸããã çºè¡šã¯400åžãè¶
ãã倧ããŒã«ã«ãŠè¡ãããŸããã åŒç€ŸããŒã¹ã®æ§å åŒç€ŸããŒã¹äŒç»ãšããŠãçæAIã®æŽ»çšã¢ã³ã±ãŒãã»Xãã©ããŒã§ã®ããã«ãã£GETã¬ã©ãã³ãã£ã¬ã³ãžã宿œããããŸããã çºè¡šã®æ§å ã©ã®ã»ãã·ã§ã³ãéåžžã«é¢çœãã£ãã®ã§ãããå人çã«å°è±¡ã«æ®ã£ãã»ãã·ã§ã³ãå°ã玹ä»ããŸãã ãè¥¿è» æ¬¡éã Termfront: Rubyæšæºã©ã€ãã©ãªã ãã§äœãFPS Termfront: Rubyæšæºã©ã€ãã©ãªã ãã§äœãFPS - é¢ã±åRubyäŒè°01 é¢ã±åRubyäŒè°01ã¯ã倩äžåãç®ã®å°ãé¢ã±åãã§éå¬ãããå°åRubyäŒè°ã§ãã2026幎5æ30æ¥ïŒåïŒéå¬ã regional.rubykaigi.org Rubyã®æšæºã©ã€ãã©ãªã®ã¿ã§äœããããã¿ãŒããã«äžã§åãFPSãTermfrontãã®çºè¡šã§ãã ç»å£è
ã®S.H.ããã¯FPSã奜ãã§ã¹ããæéã«ããã¬ã€ããããšã®ããšã§ãã ãããæè¿ã¯AIãžã®æç€ºãªã©ã§ãŸãšãŸã£ãåŸ
ã¡æéãå°ãªãã5ã10åçšåºŠã®ã»ãã·ã§ã³ïŒè©ŠåïŒãã€ç°¡åã«éå§ã§ããããã¿ãŒããã«ã«ãããããã§ãã ã¿ãŒããã«ãªã®ã§åœç¶2Dãªã®ã§ãããæ¬äŒŒçãª3Dåã«ãã奥è¡ããããããã«èŠããŸãã é³å£°ã ãã¯å€éšã®ã©ã€ãã©ãªã§ã¯ãããã®ã®ããã以å€ã¯Rubyæšæºã©ã€ãã©ãªã®ã¿ã§å®è£
ãããŠãããåæŠïŒé信察æŠïŒãå¯èœã§ããã æè¿ã¯ã¿ãŒããã«ã®è¡šçŸåãäžãããã¿ãŒããã«UIããæµè¡ã£ãŠããŸããããŸããã²ãŒã ãŸã§äœãããšã¯æããé©ããŸããã ãæ±è» äžå
ã Play Music on Ruby ââ PicoRubyã§äœãMIDIãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŒã« Play Music on Ruby ââ PicoRubyã§äœãMIDIãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŒã« - é¢ã±åRubyäŒè°01 é¢ã±åRubyäŒè°01ã¯ã倩äžåãç®ã®å°ãé¢ã±åãã§éå¬ãããå°åRubyäŒè°ã§ãã2026幎5æ30æ¥ïŒåïŒéå¬ã regional.rubykaigi.org åŒç€Ÿã®ç§ã«ãããMIDIïŒMusical Instrument Digital InterfaceïŒé»å楜åšã®é³å£°ã®è»¢éèŠæ ŒïŒãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŒã«ãMIDoRIãã®çºè¡šã§ãã 2023幎ã®KeebKaigiã§ã®çºè¡šããã£ããã«ãå
¥åºåã»å å·¥ãå¯èœãªæ±çšçãªMIDIããã€ã¹éçºãç®æããŠãããšã®ããšã§ãã PicoRubyã®å¯Ÿå¿ããã€ã¹ã®å¢å ã»ããã€ã¹æ§èœã®åäžã«ãããå®çŸããããã®ãä»åã®å
容ã§ããã ãã¢ã§ã¯MIDIããŒããŒããšSEQTRACKïŒã€ããæ ªåŒäŒç€ŸïŒã®éã«MIDoRIããã€ã¹ãç¹ãæŒå¥ãããŸããã çŽãšå°ºå
«ãå¶åŸ¡ããããã®ããŒããŒãã®ã¹ããªããããåæ©èœã®ãªã³ã»ãªãåãæ¿ãã§äœ¿ãã¿ãããããã®å¶åŸ¡ã¯Rubyã§æžãããŠãããä»ã®ããã€ã¹ãšãèªç±ã«çµã¿åãããããããã§ãã PicoRubyãžã®åã蟌ã¿ã«åããŠæŽ»åäžãšã®ããšã§ãä»åŸã¯Rubyã«ã³ãã¡ã¬ã³ã¹ã§é»å楜åšãèŠãããšã«ãªããšæããšæ¥œãã¿ã§ãã ã©ã³ãã»ãã〠ãåŒåœãšã¬ãžã£ãŒã·ãŒããåãåã£ãŠäŒå Žå€ãžã倩åã¯æŽãã§é¢šãæ¶Œããã絶奜ã®ãã¯ããã¯æ¥åã§ããã åºã§ã¯æ±è»ã»è¥¿è»ã®å倧å°ãžã®ã€ã³ã¿ãã¥ãŒãè¡ãããæåŸã¯ãããã§ã¯ãã°ãã®äŒæŠããæ¥œãã¿ãã ããããšããåããŠèãæ¥æ¬èªã§ç· ããããŸããã RubyKaja RubyKaja 2026 åè³è
RubyKaja 2026 ã®åè³è
ãæšèŠçç±ãåå ã³ãã¥ããã£ã玹ä»ããŸãã kaja.rubyist.net RubyKajaã¯2012幎ã«ã äºãã«è€ãåãè³è³ãåãæåãçã¿åºããèªèº«ãåšå²ã®æŽ»èºãç©æ¥µçã«ã¢ããŒã«ããŠããäžçãäœã£ãŠãããã ããšããŠå§ãŸã£ãããã§ãã ä»åã¯Rubyã³ãã¥ããã£ãã20åã®ç޹ä»ãšãç¹å¥è³ãšããŠ5åã衚地ãããŸããã ïŒæ¬ã€ãã³ãã§ç»å£ããåŒç€Ÿã®ç§ãéžåºãããŸããâšïŒ ã³ãã¥ããã£ãç¶æã»ç¶ç¶ããæŽ»åã¯å€ããåããã¥ãããããããããŠè²¢ç®ãè©äŸ¡ãããã®ã¯çŽ æµãªããšã ãšæããŸããã åæŠ ããããçŽ æŽãããçºè¡šã ã£ãã®ã§ãããããã¯é¢ã±åãæ±ºçãã€ããããã®æ±ºæŠãå§ãŸããŸããã æ±è»ã»è¥¿è»ã«åãããŠç± æ»ãïŒçå
¥ãïŒãè¡ãâŠæããã西è»ã®åå©ãšãªããŸããã æåŸã¯å
šå¡ã§èšå¿µæ®åœ±ããŠã¯ããŒãžã³ã°ãšãªããŸããã æåŸã« æ±è»ã»è¥¿è»ã«åãããŠã®çºè¡šãåæŠãæŠå°ã®ãããªèšèé£ããæŠå°èªããªã©ãä»ã«ã¯ãªãç¹è²ã»é¢ã±åã®å°ã§ã«ã³ãã¡ã¬ã³ã¹ãããããšãžã®ç±æã«è§ŠããããçŽ æŽãããã€ãã³ãã§ããã å¥è¡è¡ïŒéå¶ã¹ã¿ããïŒã®çæ§ãæŠå°ïŒç»å£è
ïŒã®çæ§ãåå è
ã®çæ§ãæ¬åœã«ããããšãããããŸããïŒ ã¡ãã¬ãŒã§ã¯ãšã³ãžãã¢ãç©æ¥µæ¡çšäžã§ãïŒ ã¡ãã¬ãŒã§ã¯Rubyãç©æ¥µçã«æŽ»çšããŠãå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ãããããã¯ããéçºããŠããŸãã å»çãã«ã¹ã±ã¢é åã®èª²é¡è§£æ±ºã«èå³ãããæ¹ã¯ããã²ãæ°è»œã«ãé£çµ¡ãã ããïŒ ã¡ãã¬ãŒã§åãïœæ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã§ã®åãæ¹ã人äºå¶åºŠãæ±äººæ
å ±ãªã©ãæ¡çšã«é¢ããæ
å ±ãã玹ä»ããŸãã www.medley.jp Medley Engineer Entrance Book ãã®åºŠã¯æ ªåŒäŒç€Ÿã¡ãã¬ãŒã«èå³ããå¯ãããã ãããããšãããããŸããæ¬è³æã¯ãã¡ãã¬ãŒãžã®è»¢è·ããæ€èšããã ããŠããçæ§ã«ãåœç€Ÿãããæ·±ããçè§£ããã ãããã«äœæããããŸããã medley-inc.notion.site
ã¯ããã« ããã«ã¡ã¯ãå»çãã©ãããã©ãŒã æ¬éš CLINICS éçºã°ã«ãŒãã®å岡ã§ãã ã¡ãã¬ãŒã¯ 5 æ 22 æ¥ã»23 æ¥ã«ãã«ãµãŒã«çŸœç°ç©ºæž¯ã«ãŠéå¬ããã TSKaigi 2026 ã« Bronzeã¹ãã³ãµãŒãšããŠåè³ããŸããã TSKaigi ã¯ãæ¥æ¬æå€§çŽã® TypeScript ãããŒããšããæè¡ã«ã³ãã¡ã¬ã³ã¹ã§ã2024 幎ã®ç¬¬ 1 åããæ¯å¹Žåè³ããŠããŸãã ä»å¹Žã¯çŸå°åå 800 人ããªã³ã©ã€ã³åå 900 人ãè¶
ããèŠæš¡ã§éå¬ãããŸããã TSKaigi 2026 äŒå ŽïŒãã«ãµãŒã«çŸœç°ç©ºæž¯ïŒ TSKaigi 2026 ã§ã¯ãTypeScript 7 ã§æ£åŒãªãªãŒã¹ãšãªã tsgo ã«é¢ããã»ãã·ã§ã³ãå€ãèŠãããŸããã æ¬èšäºã§ã¯ãåŒç€Ÿããç»å£ãã髿©ã®ã»ãã·ã§ã³ãšããã®ä»ã«å°è±¡ã«æ®ã£ãã»ãã·ã§ã³ã«ã€ããŠç޹ä»ããŸãã åŒç€Ÿã»é«æ©ã®ç»å£ã次äžä»£ãªã³ã¿ãŒã§æ¢ããtsgo æä»£ã«ãããåèªèã«ã¹ã¿ã ã«ãŒã«ã®çŸå®è§£ã Day2 ã® Leverages ãã©ãã¯ã«ãŠãåŒç€Ÿã®é«æ©ãç»å£ããŸããã æ¬¡äžä»£ãªã³ã¿ãŒã§æ¢ããtsgo æä»£ã«ãããåèªèã«ã¹ã¿ã ã«ãŒã«ã®çŸå®è§£ | TSKaigi 2026 TSKaigi 2026 ã®ã¹ããŒã«ãŒãããŒã¯æ
å ±ã§ãã 2026.tskaigi.org çºè¡šå
容 çºè¡šã§ã¯ããŸãåèªèãªã³ãã«ã€ããŠãtypescript-eslintãOxlintãRslintãBiome ã®åãªã³ã¿ãŒã®å¯Ÿå¿ç¶æ³ãæŽçãããŸãããç¶ããŠãRslint ã«å¯ŸããŠåèªèã«ã¹ã¿ã ã«ãŒã«ã Go èšèªã§å®è£
ããç¬èªãã«ããããªã³ã¿ãŒãã€ããªã§å®éã«èšºæã§ããããšã瀺ããPoCã®ãã¢ããããŸããã ç¹ã«å匷ã«ãªã£ãã®ã¯ãããããã«ã¹ã¿ã ã«ãŒã«ã¯ typescript-go ã® internal API ã«äŸåããããšã«ãªãããã®è¿œåŸã³ã¹ããèæ
®ããå¿
èŠããããšããç¹ã§ããåèªèã«ã¹ã¿ã ã«ãŒã«ã§å¯Ÿå¿ããã®ã§ã¯ãªããã³ãŒãèŠçŽãšèšèšã工倫ããŠãASTã®ã¿ã§å€å®å¯èœãªã«ã¹ã¿ã ã«ãŒã«ãšåãã§ãã¯ã§è§£æ±ºã§ããªãããæåã«æ€èšãã¹ãã ãšããæéã瀺ãããŸããã äœè«ã§ãããçºè¡šåæ¥ã« Oxlint JS Plugin ãã tsgo ã®åæ
å ±ãåãåãããæ¹æ³ãå®èšŒãã OSS ã§ãã corsa-bind ãçºèŠããåœæ¥ã®æã«æ¥éœã¹ã©ã€ãã远å ããŠèšãã ãšããè£è©±ããããŸããã æ¬¡äžä»£ãªã³ã¿ãŒã«ãããã«ã¹ã¿ã ãã©ã°ã€ã³ã®ä»åŸã®ååã«æ³šç®ããŠããããã§ããã çºè¡šäžã®æ§å å°è±¡ã«æ®ã£ãã»ãã·ã§ã³ tscããtsgoãž ââ Denoã®TypeScriptåºç€ã¯ã©ãå€ãã£ãã ç»å£è
: maguro ãã tscããtsgoãž ââ Denoã®TypeScriptåºç€ã¯ã©ãå€ãã£ãã | TSKaigi 2026 TSKaigi 2026 ã®ã¹ããŒã«ãŒãããŒã¯æ
å ±ã§ãã 2026.tskaigi.org Phase 1 ã§ã¯ãtsc ã«ããããåœãŠã JavaScript ãã¡ã€ã«ã Deno binary ã«åã蟌ã¿ãV8 isolate å
ã§å®è¡ããŠããŸããã Phase 2 ã§ã¯ãtsgo ã fork ããŠåããã»ã¹ã§åããããšã§ãåãã§ãã¯ïŒ deno check ïŒãçŽ 2.5 ã 2.6 åã«é«éåãããŸãããäžæ¹ã§ãäžæµè¿œåŸãš LSP 察å¿ã®ã³ã¹ããéãããšã課é¡ãšãªã£ãŠããŸããã ãããŠçŸåšé²è¡äžã® Phase 3 ã§ã¯ãfork ããããDeno åŽã®ãœãŒã¹ãå
¬åŒ TypeScript ãèªãã圢㫠materialize ããŠãnpm ã®å
¬åŒ TypeScript ã«åŠçãããæ¹éãžãšé²ãã§ããŸãã ãfork ãåå®è£
ãé¿ãããããšããå¶çŽã®äžã§å
¬åŒ TypeScript ãžã®çµ±åãé²ãã Deno ã®æ¹éãå°è±¡çã§ããã TS 7: How We Got There ç»å£è
: Jake Bailey ãã TS 7: How We Got There | TSKaigi 2026 TSKaigi 2026 ã®ã¹ããŒã«ãŒãããŒã¯æ
å ±ã§ãã 2026.tskaigi.org TypeScript ããŒã æ¬äººã«ããåºèª¿è¬æŒã§ãTypeScript ã³ã³ãã€ã©ã Go èšèªãžç§»æ€ããèæ¯ãèªãããŸãããã»ãã·ã§ã³ã§ã¯ tsgo ã®ãã¢ãè¡ãããåŸæ¥ 2 åã»ã©ããã£ãŠããåãã§ãã¯ã 10 ç§ã«ççž®ãããæ§åã瀺ãããŸããã ã³ã³ãã€ã«æã®åŠç㯠ParseãBindãCheckãEmit ã®é ã§è¡ãããŸããç¹ã«å°è±¡çã ã£ãã®ã¯ãChecker ã§çæãããåæ
å ±ã Checker éã§å
±æããªãããšã§ã䞊åå®è¡æã®åæãªãŒããŒããããé¿ããŠé«éåãå®çŸããŠããç¹ã§ãã CLINICS ã§ãããŒã«ã«ç°å¢ã§ tsgo ã䜿çšããŠãããåãã§ãã¯ãé«éåããããšã§ãAI éçºã®ãã£ãŒãããã¯ãéããŠããŸãã å¶çŽãšæä»£ããèªã¿è§£ãTypeScriptã³ã³ãã€ã©èšèšå² ç»å£è
: Yoshiaki Togami ãã å¶çŽãšæä»£ããèªã¿è§£ãTypeScriptã³ã³ãã€ã©èšèšå² | TSKaigi 2026 TSKaigi 2026 ã®ã¹ããŒã«ãŒãããŒã¯æ
å ±ã§ãã 2026.tskaigi.org TypeScript ã³ã³ãã€ã©ã¯ãAST ã semantic æ
å ±ãèè² ãã埪ç°åç
§ã ããã®æ§é ã«ãªã£ãŠãããšããç¬ç¹ãªæ§æãæã£ãŠããŸãã Web ã®æŽå²ã®äžã§ Ajax é©åœã V8 / Chrome / Node.js ã®ç»å Žã«ãã JavaScript ã§å€§èŠæš¡ãªãœãããŠã§ã¢ãæžãããããã«ãªããMicrosoft å
éšã§ã Office ãªã©ã® Web ç§»æ€ãè¿«ãããŠããŸãããäžæ¹ã§ãåœæã® JavaScript åãéçºããŒãªã³ã°ã¯è²§åŒ±ã§ãå€§èŠæš¡éçºã®äœéšãæç«ããªãã£ããããããã解決ããããã« TypeScript ãéçºãããŸããã ããã«ãTypeScript ã«ã¯ IDE ã§ã®é«éãªå¿çãèŠä»¶ãšããŠèª²ããããŸãããæ¬æ¥ã§ããã° immutability ãšèŠªã¢ã¯ã»ã¹ãäž¡ç«ããä»çµã¿ãå¿
èŠã§ããããåœæã® JavaScript ã§ã¯å®çŸã§ãããçµæãšã㊠AST ã«çŽæ¥ symbol ã parent ãæžã蟌ãçŸåšã®æ§æã«èœã¡çããŠããŸãã tsgo ã§ã¯ãã€ãã£ãåãšå
±æã¡ã¢ãªã»ãã«ãã¹ã¬ããåã§çŽ 10 åã®é«éåãå®çŸãããŠããŸããæŽå²ãé¡ãããšã§ãçŸåšã® TypeScript ããªããã®ãããªèšèšã«ãªã£ãŠããã®ããšããèæ¯ãçè§£ã§ããŸããã ãŸãšã æ¬èšäºã§ã¯ãåŒç€Ÿã»é«æ©ã®ç»å£ãšãTSKaigi 2026 ã§å°è±¡ã«æ®ã£ãã»ãã·ã§ã³ã«ã€ããŠç޹ä»ããŸããã ä»å¹Žã®ã¡ãã¬ãŒããã¯ãBronzeã¹ãã³ãµãŒãšããŠã®åè³ãšé«æ©ã®ç»å£ã«å ããéå¶ã¹ã¿ãããšããŠã執氞ãšå±±æ²³ã® 2 åã TSKaigi 2026 ã«é¢ãããŸããã TSKaigi 2026 ã«åå ããã¡ãã¬ãŒã¡ã³ã㌠ã¡ãã¬ãŒã§ã¯ä»åŸã TypeScript ã³ãã¥ããã£ã®çºå±ã«è²¢ç®ãã瀟å
ã§ã®å®è·µãç¶ããŠãããŸãã éå»ã«ã¹ãã³ãµãŒãšããŠåè³ãã TSKaigi ã®åå ã¬ããŒãã¯ãã¡ãã§ãã TSKaigi 2025 åå ã¬ããŒãïŒæ°å2幎ç®ãšã³ãžãã¢ãæããTypeScriptã®æåç· | MEDLEY Developer Portal ã¯ããã« ããã«ã¡ã¯ïŒ 人æãã©ãããã©ãŒã æ¬éšãããã¯ãçµ±æ¬éšãããã¯ãéçºéšã¢ã«ãããŒéçºã°ã«ãŒãæå±ã®åéïŒã·ããïŒã§ãã ç§ã¯ 2024 幎 4 æã«æ°åãšã³ãžãã¢ãšããŠå
¥ç€ŸããçŸåšã¯ãªã³ã©ã€ã³åç»ç ä¿®ãµãŒãã¹ããžã§ãã¡ãã¬ãŒã¢ã«ã... developer.medley.jp TSKaigi 2024ã®ã¹ãã³ãµãŒLTã§TypeScriptã³ãŒãæ¹åã®åãçµã¿ã«ã€ããŠç޹ä»ããŸãã | MEDLEY Developer Portal ããã«ã¡ã¯ãå»çãã©ãããã©ãŒã æ¬éšãããã¯ãéçºå®€ CLINICS 第äºéçºã°ã«ãŒãæå±ã®é«æ©ã§ãã ã¡ãã¬ãŒã¯ 5 æ 11 æ¥ã«äžéã»ã³ãã©ã«ããŒã¯ã«ã³ãã¡ã¬ã³ã¹ã«ãŠéå¬ããã TSKaigi 2024 ã« Gold Sponsor ... developer.medley.jp Weâre hiring ã¡ãã¬ãŒã§ã¯äžç·ã«åã仲éã倧åéããŠããŸãïŒ ã«ãžã¥ã¢ã«é¢è«ã宿œããŠãããŸãã®ã§ããã話ã ãã§ãèããŠã¿ããïŒããã¡ãã£ãšéè«ããŠã¿ããïŒãã§ãæ§ããŸããã®ã§ããæ°è»œã«ãåãåãããã ããïŒ ã¡ãã¬ãŒã§åãïœæ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã§ã®åãæ¹ã人äºå¶åºŠãæ±äººæ
å ±ãªã©ãæ¡çšã«é¢ããæ
å ±ãã玹ä»ããŸãã www.medley.jp Medley Engineer Entrance Book ãã®åºŠã¯æ ªåŒäŒç€Ÿã¡ãã¬ãŒã«èå³ããå¯ãããã ãããããšãããããŸããæ¬è³æã¯ãã¡ãã¬ãŒãžã®è»¢è·ããæ€èšããã ããŠããçæ§ã«ãåœç€Ÿãããæ·±ããçè§£ããã ãããã«äœæããããŸããã medley-inc.notion.site
ã¯ããã« ããã«ã¡ã¯ïŒã¡ãã¬ãŒDevRelã®éç°ïŒ @Shige0096 ïŒã§ãã ã¡ãã¬ãŒã¯ã2026幎5æ30æ¥(å)ã«å²éçé¢ã±åçºã§éå¬ãããå°åRubyäŒè° ãé¢ã±åRubyäŒè°01ã ã«Goldã¹ãã³ãµãŒãšããŠåè³ããŸãïŒ é¢ã±åRubyäŒè°01 é¢ã±åRubyäŒè°01ã¯ã倩äžåãç®ã®å°ãé¢ã±åãã§éå¬ãããå°åRubyäŒè°ã§ãã2026幎5æ30æ¥ïŒåïŒéå¬ã regional.rubykaigi.org æ¬èšäºã§ã¯ãã€ãã³ãã®æŠèŠãã¡ãã¬ãŒã®ããŒã¹æ
å ±ããããŠåœæ¥ç»å£ããåŒç€Ÿç€Ÿå¡ã®ã»ãã·ã§ã³ã«ã€ããŠå
è¡æ
å ±ããäŒãããŸãïŒ ãé¢ã±åRubyäŒè°01ããšã¯ïŒ ã倩äžåãç®ã®å°åRubyäŒè°ããšéæããã é¢ã±åRubyäŒè°01 ã¯ãæŽå²ãã倿Šå Žã®å°ãé¢ã¶åãã§éå¬ãããæ°ããªå°åRubyäŒè°ã§ãã é嬿¥ ïŒ2026幎5æ30æ¥(å) äŒå Ž ïŒé¢ã±åãµãããã»ã³ã¿ãŒïŒå²éçäžç Žé¡é¢ã±åçºïŒ å
šåœããRubyistãéãŸããç±ãè°è«ãç¥èŠã®å
±æãè¡ãããããŸãã«ã倩äžåãç®ãã®çãäžãããæåŸ
ãããã«ã³ãã¡ã¬ã³ã¹ã§ãã Goldã¹ãã³ãµãŒãšããŠããŒã¹åºå±ããŸãïŒ åœæ¥ã¯ãäŒå Žå
ã®ã¹ãã³ãµãŒããŒã¹ãšãªã¢ã«ãŠã¡ãã¬ãŒãããŒã¹ãåºå±ããããŸãïŒ ããŒã¹ã§ã¯ãAIã«é¢ããã¢ã³ã±ãŒã調æ»ãã¯ããããç«ã¡å¯ãããã ããæ¹ã®ããã«ã ãªãªãžãã«ããã«ã㣠ããçšæããŠããŸãããã²ãæ°è»œã«è¶³ãéãã§ã¿ãŠãã ããïŒ ã¡ãã¬ãŒã®ãšã³ãžãã¢ãç»å£ããŸãïŒ åŒç€Ÿã®å»çãã©ãããã©ãŒã æ¬éšæ¯ç§èšºçæäºæ¥éš äºæ¥éšé· å
Œ DENTISéçºã°ã«ãŒã ã°ã«ãŒããããžã£ãŒã® ç§ïŒ@kirikak2ïŒ ãç»å£ããŸãïŒ æé ïŒ14:30-14:50 ã»ãã·ã§ã³è©³çް ïŒ Play Music on Ruby ââ PicoRubyã§äœãMIDIãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŒã« - é¢ã±åRubyäŒè°01 é¢ã±åRubyäŒè°01ã¯ã倩äžåãç®ã®å°ãé¢ã±åãã§éå¬ãããå°åRubyäŒè°ã§ãã2026幎5æ30æ¥ïŒåïŒéå¬ã regional.rubykaigi.org ã»ãã·ã§ã³ã®èŠã©ããããçºè¡šè
ã®ç§ããã³ã¡ã³ãããã ããŸããïŒ ããããŠäŒç€Ÿã®ããã°ã§ç޹ä»ããŠãããã®ãæçž®ãªã®ã§ãããæ®æ®µãã£ãŠããä»äºãšã¯å
šãé¢ä¿ã®ãªãè¶£å³100%ã®é»å楜åšãšRubyã«é¢ããçºè¡šãããŸããããã¢ãã¯ãªå
容ã§ããããªãã¹ãåããŠã®äººã«ãåããããã«è§£èª¬ããªããçºè¡šããŸãã®ã§ãããããäžçããããã ããšããæ°æã¡ã§èããŠããã ãããšå¹žãã§ãã ãããã« ã¡ãã¬ãŒã¯ãå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ããããããã·ã§ã³ã«æ²ããå»çãã«ã¹ã±ã¢é åã«ããã瀟äŒèª²é¡ã解決ãããããã¯ããRubyãäžå¿ã«éçºããŠããŸãã ä»åã®é¢ã±åRubyäŒè°01ãéããŠãå€ãã®Rubyistã®çããŸãšçŸå°ã§ãäŒãããç±ãã話ãã§ããããšã楜ãã¿ã«ããŠããŸãã åœæ¥ãé¢ã±åãµãããã»ã³ã¿ãŒã®ã¡ãã¬ãŒããŒã¹ãããã³ã»ãã·ã§ã³äŒå Žã§ãäŒãããŸãããïŒ ã¡ãã¬ãŒã§ã¯ãRubyã倧奜ããªãšã³ãžãã¢ãåéããŠããŸãïŒïŒãã¡ãããã以å€ã®ãšã³ãžãã¢è·çš®ã倧æè¿ã»å€§åéäžã§ãïŒïŒ ãŸãã¯ã«ãžã¥ã¢ã«é¢è«ã§ãã£ãã°ããã«ã話ãã§ããã®ã§ãäŒå Žã§ãäŒãã§ããªãæ¹ã¯ãã²ãã¡ãã§ã話ãããŸãããïŒãåŸ
ã¡ããŠãããŸãïŒ å»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ããïœæ ªåŒäŒç€Ÿã¡ãã¬ãŒ æ ªåŒäŒç€Ÿã¡ãã¬ãŒã®ã³ãŒãã¬ãŒããµã€ãã§ããã¡ãã¬ãŒã¯ããå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ããããããã·ã§ã³ã«æ²ãããã¯ãããžãŒã掻çšããäºæ¥ããããžã§ã¯ããéããŠãçŽåŸã§ããå»çãã®å®çŸãç®æããŸãã www.medley.jp æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ãšã³ãžã㢠æ±äº¬ ã®æ±äººäžèЧ æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ãšã³ãžã㢠æ±äº¬ ã®æ±äººäžèЧã§ãã| HRMOS hrmos.co
ã¯ããã« ããã«ã¡ã¯ïŒã¡ãã¬ãŒDevRelã®éç°ïŒ @Shige0096 ïŒã§ãã æ¥æ¬æå€§çŽã® TypeScript ã«ã³ãã¡ã¬ã³ã¹ãTSKaigi 2026ãã®éå¬ãããããç®åã«è¿«ã£ãŠããŸããã2024幎ã®ç£å£°ãäžããŠãããåãéããããšã«ãšã³ãžãã¢ã®ç±éãé«ãŸã£ãŠããæ¬ã€ãã³ãã§ãããä»å¹Žã¯çŸœç°ç©ºæž¯ãšããæ°ããªèå°ã§2æ¥éã«ãããéå¬ãããŸãã å®ã¯ãã¡ãã¬ãŒã¯2024幎ã®ç¬¬1åç®ããæ¯å¹Žåè³ãããŠããŸãâš æ¬å¹ŽããTypeScript ã³ãã¥ããã£ã®ãããªãçºå±ãé¡ããBronzeã¹ãã³ãµãŒãšããŠçãäžããŠãããããšæããŸãïŒ TSKaigi 2026 TSKaigiã¯æ¥æ¬æå€§çŽã®TypeScriptãããŒããšããæè¡ã«ã³ãã¡ã¬ã³ã¹ã§ãã2026/5/22 (é) - 23 (å) ã®æ¥çšã§éå¬ããŸãã 2026.tskaigi.org ã¡ãã¬ãŒã®ãšã³ãžãã¢ãç»å£ããŸãïŒ Day2ã®5/23ïŒåïŒ15:50 ~ 16:20 ïŒLeveragesãã©ãã¯ïŒã«ãŠåŒç€Ÿã®é«æ©ãç»å£ããŸãã æ¬¡äžä»£ãªã³ã¿ãŒã§æ¢ããtsgo æä»£ã«ãããåèªèã«ã¹ã¿ã ã«ãŒã«ã®çŸå®è§£ | TSKaigi 2026 TSKaigi 2026 ã®ã¹ããŒã«ãŒãããŒã¯æ
å ±ã§ãã 2026.tskaigi.org åœæ¥ã®ã»ãã·ã§ã³ããããæ¥œãã¿ããã ãããã«ãä»åã¯ç¹å¥ã«å
è¡æ
å ±ãå
¬éããããšæããŸãïŒ å»ç§èšºçæãããã¯ãéçºå®€ AIæšé²ã°ã«ãŒãã®é«æ©ã§ããDay2ã®15:50ãããæ¬¡äžä»£ãªã³ã¿ãŒã§æ¢ããtsgo æä»£ã«ãããåèªèã«ã¹ã¿ã ã«ãŒã«ã®çŸå®è§£ããšããã¿ã€ãã«ã§çºè¡šããŸãã TypeScript 7.0 / tsgo ã®ç»å Žã«ãããåãã§ãã¯ããã«ãã Go å®è£
ã§å€§å¹
ã«é«éåãããèŠèŸŒã¿ã§ããäžæ¹ã§ããããŸã§ typescript-eslint ã® parser service çµç±ã§ Program ã TypeChecker ã䜿ã£ãŠå®çŸããŠããåèªèã«ã¹ã¿ã ã«ãŒã«ã¯ãtsgo æä»£ã«ã¯ã©ã®ããã«éçšããŠããã°ããã®ã§ãããããæ¬ã»ãã·ã§ã³ã§ã¯ããã®åãã軞ã«ã話ãããŸãã ã»ãã·ã§ã³ã¯äžéšæ§æã§ãããŸã Oxlint / Rslint / Biome ãšãã£ã次äžä»£ãªã³ã¿ãŒããåèªèã«ãŒã«ã«ã©ããŸã§å¯Ÿå¿ããŠããã®ããæŽçããŸããæ¬¡ã«ãRslint ã䞻軞ã«ãåŠçå¥çŽå€ã®æšãŠå¿ãããæ€åºããåèªèã«ã¹ã¿ã ã«ãŒã«ã PoC ãšããŠå®è£
ããå®çŸå¯èœæ§ãè©äŸ¡ããŸããæåŸã«ããã® PoC ãèžãŸããŠãåèªèã«ã¹ã¿ã ã«ãŒã«ãæç¶çã«éçšããŠããããã®è«ç¹ãè°è«ããŸãã AI ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã«ãããã³ãŒãçæ â ãªã³ã â ä¿®æ£ãã«ãŒããæ¥åžžåããŠããæä»£ã«ãåèªèã«ã¹ã¿ã ã«ãŒã«ãšã©ãä»ãåã£ãŠããããçãããšäžç·ã«èããæéã«ã§ããã°ãšæã£ãŠããŸãããªã³ã¿ãŒã»éçºäœéšã«é¢å¿ã®ããæ¹ã¯ããã²åœæ¥èãã«æ¥ãŠãã ããïŒ ãããã« TSKaigiã¯ãåãªãäºäŸçºè¡šã®å Žã§ã¯ãªããTypeScriptãæãããšã³ãžãã¢ãéããçŸå Žã®ç¥æµã詊è¡é¯èª€ãåãã¡åãããšã§ãã³ãã¥ããã£å
šäœã®éçºäœéšãã¢ããããŒãããŠããã€ãã³ãã§ãã äŒå Žã§ã¡ãã¬ãŒã®ç€Ÿå¡ãèŠãããŸãããããã²è©±ããããŠããã ãããšå¬ããã§ãïŒ çãããšãäŒãã§ããã®ããåŒç€Ÿäžå楜ãã¿ã«ããŠããŸãã ããã§ã¯ã矜ç°ã§ãäŒãããŸãããïŒ ãŸããã¡ãã¬ãŒã§ã¯ãTypeScriptã倧奜ããªãšã³ãžãã¢ãåéããŠããŸãïŒïŒãã¡ãããã以å€ã®ãšã³ãžãã¢è·çš®ã倧æè¿ã»å€§åéäžã§ãïŒïŒ ãŸãã¯ã«ãžã¥ã¢ã«é¢è«ã§ãã£ãã°ããã«ã話ãã§ããã®ã§ãäŒå Žã§ãäŒãã§ããªãæ¹ã¯ãã²ãã¡ãã§ã話ãããŸãããïŒãåŸ
ã¡ããŠãããŸãïŒ æ ªåŒäŒç€Ÿã¡ãã¬ãŒ æ£ç€Ÿå¡ ãšã³ãžãã¢ ã®æ±äººäžèЧ æ ªåŒäŒç€Ÿã¡ãã¬ãŒ æ£ç€Ÿå¡ ãšã³ãžãã¢ ã®æ±äººäžèЧã§ãã| HRMOS hrmos.co
ããã«ã¡ã¯ïŒã¡ãã¬ãŒDevRelã®éç°ïŒ @Shige0096 ïŒã§ãã 4/22(æ°Ž)-24(é) ã«åœé€šã§éå¬ãããRubyKaigi ã«ä»å¹Žãåå ããŠããã®ã§ããã®åå ã¬ããŒãããéãããŸãð ã¯ããã« æ ªåŒäŒç€Ÿã¡ãã¬ãŒã¯Rubyã¹ãã³ãµãŒãšããŠåè³ããçŸå°ã§ããŒã¹åºå±ããŸããã åŒç€Ÿã®ãããã¯ãã®åæ°ä»¥äžã§RubyãçšããŠããããšãããã Rubyã³ãã¥ããã£ãžã®è²¢ç®ã¯ãåè³æŽ»åã®äžã§ãç¹ã«éèŠèŠããŠããæŽ»åã§ãïŒ ïŒçªæåã«ããŽãæ²èŒããŠããã ããŸããð åŒç€ŸVPoEã®åæïŒ @terukura ïŒãæžã蟌ã¿äžâïž ä»å¹Žã¯åœ¹å¡ãå«ãç·å¢13åã§åå ããRubyKaigi ãå ªèœããŸããâš æ¬ã¬ããŒãã§ã¯ãçŸå°ã®æ§åãåŒç€Ÿã®ããŒã¹äŒç»ã®ã玹ä»ãåçã¡ã€ã³ã§é°å²æ°ãäŒãããããäŒãããŸãïŒ ãã²æ¥œããã§ã芧ããã ãããšå¬ããã§ãð äŒå Žã®æ§å æ¬å¹Žã®éå¬å Žæã¯ãåœé€šããïŒæšå¹Žã®çºè¡šããå¿åŸ
ã¡ã«ããŠããŸãã!!!ïŒ æ¡çšäººäºã®çŠå³¶ãããšãšãã«åæ¥å
¥ãããããŒã¹èšå¶âïž ããŒã¹ã®å®æåœ¢ãRubyã¹ãã³ãµãŒã¯é·æº2ã€ãªã®ã§åºã
ãšããŠããŸããð© äžããèŠãäŒå Žã åŒç€ŸããŒã¹ã®ãçŽ¹ä» ããŒã¹äŒç»ãã®ïŒ_RubyÃAIã¢ã³ã±ãŒãèª¿æ» ä»¥äž3ã€ã®AIã«é¢ããã¢ã³ã±ãŒãããšããŸããïŒð ãåçããã ããçæ§ããååããããšãããããŸããïŒïŒ AIïŒçæAIãªã©ïŒãéçºã«åãå
¥ãå§ããã®ã¯ãã€é ã§ããïŒ äœ¿ã£ãŠããå
·äœçãªã«ãŒã«ãæããŠäžãã AIãæŽ»çšããRubyéçºã«ãããæåäœéšããå°ãããšãæããŠäžãã ã¢ã³ã±ãŒãçµæãµããªâïž 1.AIãéçºã«åãå
¥ãå§ããææ 2024幎ååïŒ æ©æå°å
¥å±€ãäžå®æ°ååšãããã®ææããæŽ»çšãå§ãŸãã 2024幎åŸåã2025幎ååïŒ ããªã¥ãŒã ãŸãŒã³ ã§ãããã®æéã«å§åç倿°ã®ãšã³ãžãã¢ãå°å
¥ãéå§ã 2025幎åŸåã2026å¹ŽïŒ å°å
¥ãäžæ®µèœããã»ãŒå
šãŠã®ãšã³ãžãã¢ãåœããåã«å©çšããŠãããã§ãŒãºã«ç§»è¡ã 2.䜿ã£ãŠããå
·äœçãªããŒã« å§åçã·ã§ã¢: Claude Code 䜵çšã»ç¹å®çšé: Cursor, Codex, GitHub Copilot, Devin, Gemini ãªã© çµæãšããŠã¯åãªããã³ãŒãã®è£å®ãã§ã¯ãªããClaude Code ã Code xãDevin ã®ãããªãèªåŸçã«ã¿ã¹ã¯ãå®äºããããšãŒãžã§ã³ãåããäž»æµã§ããããšãé¡èã«çŸããŠããŸããã 3.Rubyéçºã«ãããæåäœéšã»ãå°ãããš âïž ããžãã£ãïŒæåäœéšïŒâ»äžéšæç² éçºã¹ããŒãã®åäž: ãå®è£
ãæ©ããªã£ãããã³ãŒããæžãæéãæžã£ãããçéããPRïŒãã«ãªã¯ãšã¹ãïŒåºããŸã§ãæ©ãããšãã£ã声ãç®ç«ã¡ãŸããã åŠç¿ã»èª¿æ»ã®å¹çå: ãç¥ããªãæ§æãã©ã€ãã©ãªãããèãããããšã©ãŒè§£æ¶ãæ©ãããRubyã®å€ãããŒãžã§ã³ããã®ç§»è¡ã«åœ¹ç«ã£ãã ãã¹ãã»ããã¥ã¡ã³ã: ããã¹ãã³ãŒããæžããŠããããã仿§ã®èšèªåãæ¥œã«ãªã£ãã 粟ç¥çè² æ
ã®è»œæž: ãäžäººã§æ©ãæéãæžã£ãããå¿ççããŒãã«ãäžãã£ãã âïž ãã¬ãã£ãïŒãå°ãããšïŒ â»äžéšæç² 粟床ã®åé¡: ãåãã€ãïŒãã«ã·ããŒã·ã§ã³ïŒããåããªãã³ãŒããåºãŠããããå€ãæ
å ±ãåºããŠããã ã¬ãã¥ãŒã»å質ãžã®æžå¿µ: ãã¬ãã¥ãŒã倧å€ã«ãªã£ãããAIãæžããã³ãŒãã®æå³ã远ãã®ãèŠåŽããããã³ããã«ããæè¡çè² åµãžã®äžå®ã ç¹æã®æ©ã¿: ãããŒã¯ã³ä»£ãé«ããã远ãã€ãã®ã倧å€ããAIã®ã¹ããŒãã«äººéãã€ããŠãããªãã ããŒã¹äŒç»ãã®2_ã¢ã³ã±ãŒã or Xãã©ããŒã§ããã«ãã£GETð åŒç€Ÿã®èªç¥åºŠãã¯ãããšããç°¡åãªã¢ã³ã±ãŒããžã®åçãŸãã¯Xãã©ããŒã§ã¬ã©ãã³ãã£ã¬ã³ãžãããŠããã«ãã£ããã¬ãŒã³ãããŠããŸããâš ã©ã¡ãããååããã ããæ¹ã¯2ååŒããŠããã ããŸããðª é²çœ7ç¹ã»ãããã¯ããçµåµèãããŒããªã©ãçšæããŸããð å€ãã®æ¹ã«ãè¶ãããã ããè³ãããèŠããåŒç€ŸããŒã¹ã®æ§åðâšããããã åŒç€Ÿåœ¹å¡ã®ãªãã·ã§ããðž Matzããã«ãè¶ãããã ãèšå¿µæ®åœ±âš ããããšãããããŸããïŒ ãšã³ãžãã¢ã«ããã»ãã·ã§ã³ã¬ããŒã ãšã³ãžãã¢ã«ããã»ãã·ã§ã³ã®ææ³ãäžéšç޹ä»ããŸãïŒ Ruby Committers and the World Ruby Committers and the World RubyKaigi 2026, #rubykaigi rubykaigi.org Rubyã®éçºäœå¶ã«ã€ããŠãMatzãããããªããªã£ãå ŽåãèããŠãpythonã®ãããªåè°å¶ãžã®ç§»è¡ãªã©ãæ€èšãã¹ããã話ããããMatzããã¯å€§äººæ°ã§ã®åè°å¶ã«ã¯åŠå®çã§ãäžéšã®æèŠã«ãã£ãŠèšèªèšèšãæºãããããªãæžå¿µããããšè©±ããŠãããå°äººæ°ã§ã®åè°å¶ããAIã§ã¡ã«Matzãäœãã¹ããšããæèŠããã£ãã Rubyã³ããã¿ãŒã®AI掻çšã«ã€ããŠãã³ããã¿ãŒãåå以äžãAIã«å®è£
ãããŠãã人ãå€ããMatzãããäžå¹Žä»¥äžèªåã§ã³ãŒããæžããŠããªãããšãã£ã¿ãéçºç®çã§ã¯äœ¿ã£ãŠããªãïŒã¡ãŒã«ã§ãemacsã䜿ã£ãŠããïŒãCRubyã¯ä»¥åããMatzããã¯å®è£
ããé¢ããŠä»ã®ã³ããã¿ãŒã«ä»»ããŠãããåã¬ãã«ã®ããšãAIãšãŒãžã§ã³ãã«ä»»ããŠãã¢ãŠããããã¬ãã«ã¯ãããªã«å€ãããªãããããïŒèšãäºãå¹ããªãããšãããã³ããã¿ãŒãã¡ãããAIãšãŒãžã§ã³ãã䜿ã£ãã»ããè¯ããšã®ããšïŒ HTML-Aware ERB: The Path to Reactive Rendering HTML-Aware ERB: The Path to Reactive Rendering RubyKaigi 2026, #rubykaigi rubykaigi.org ãã®çºè¡šã¯ãERBãåãªãæååçæã®ä»çµã¿ãšããŠã§ã¯ãªããHTMLæ§é ãçè§£ã§ãããã³ãã¬ãŒããšããŠæ±ãããšã§ãRailsã®Viewå±€ãããé²åãããããšããå
容ã§ãããHerbã¯HTML+ERBãè§£æããããã®ææ³ãšããŒãµãæäŸããPrismãšçµã¿åãããããšã§ãRubyæ§æãHTMLã®äžæŽåãå®è¡åã«æ€åºã§ããããã«ããŸããæ®æ®µReactãæžããŠããç«å ŽããèŠããšãJSXãããŒã«ãæ§é ãšããŠçè§£ã§ããããšãReactã®éçºäœéšãæ¯ããŠããããã«ãHerbã¯ERBã«ãããã«è¿ãåå°ãäœãããšããŠããããã«æããŸãããHotwireã§é²ãã§ããHTMLäžå¿ã®Railséçºãããã³ãã¬ãŒãè§£æããšãã£ã¿æ¯æŽã®é¢ããããã«æŒãé²ããåãçµã¿ã«èŠããŸããç¹ã«é¢çœãã®ã¯ãå°æ¥çã«ãã©ã®ç¶æ
ãã©ã®DOMã«åœ±é¿ããããã远跡ããå¿
èŠãªéšåã ããæŽæ°ãããªã¢ã¯ãã£ããªä»çµã¿ã«ã€ãªããå¯èœæ§ãããç¹ã§ãããã ããReactçãªãªã¢ã¯ãã£ããã£ããããã®ãŸãŸå®çŸããããã§ã¯ãªããçŸæç¹ã§ã¯ãã®ããã®åºç€ã¥ãããšããäœçœ®ã¥ãã«è¿ããã§ãããµãŒããŒãµã€ãã¬ã³ããªã³ã°ãäžå¿ã«ããªãããå¿
èŠãªãšããã ãè³¢ãæŽæ°ã§ããæ¹åæ§ã¯ãšãŠãé
åçã§ããERBãæ§é ãçè§£ã§ããéçºããããUIèšè¿°ãšããŠé²åããŠãããªããå°èŠæš¡ãªã¢ããªã管çç»é¢ã§ã¯ãReactãæã¡èŸŒãŸãã«ãã®æ¹åæ§ãéžã¶å Žé¢ãå¢ããŠãããããããŸããã ERBã®åé¡ïŒHTMLã®æ§é ã«åé¡ããã£ãŠãäœãæ€åºããªãïŒãšããã解決ããããã«herbãçã¿åºãããherbã«äœãã§ãããïŒãšãã£ã話ãherb-toolsã§HTMLãããŒã¹ããããdev serverã§ããããªããŒãã§ãããããã®ç¥ããªãã£ãã®ã§å匷ã«ãªããŸããã Matz Keynote Matz Keynote RubyKaigi 2026, #rubykaigi rubykaigi.org Rubyã®ãœãŒã¹ã³ãŒããã³ã³ãã€ã«ããŠãå®è¡ãã¡ã€ã«ãçæããåãçµã¿ãCRubyã«æ¯ã¹ãŠå€§å¹
ãªæ§èœåäžãå®çŸããŠããïŒYJITãšã¯å¥ã®ã¢ãããŒãïŒãå
šãŠã®Rubyã®æ©èœãå©çšã§ããããã§ãªããRuby on Railsã®çœ®ãæãã¯çŸæç¹ã§åççã«äžå¯ãšã®ããšãCLIããŒã«ãªã©ã®äžéšã®ãŠãŒã¹ã±ãŒã¹ã§ã¯å©çšã§ããä»çµã¿ãããããªããšæããã åŒç€Ÿã¹ãã³ãµãŒã»ãã·ã§ã³ æçµæ¥ã«ã¯ã¹ãã³ãµãŒã»ãã·ã§ã³ãšããŠãåŒç€Ÿã®å®æžïŒå·è¡åœ¹å¡ å»çãã©ãããã©ãŒã æ¬éš CTOïŒãããŒã¯ããŸããã ãèŽè¬ããã ããçããŸãããããšãããããŸããïŒ å
¬ç«ã¯ãã ãŠæªæ¥å€§åŠåŠçãžã®æ¯æŽæŽ»å äºååç¥ããã°ã«ãèšèŒããŠããŸãããåŒç€Ÿã®æ°åæ¡çšã«ãããŠéå¬å°ïŒåœé€šïŒã¯æ·±ãç¹ãããããã 瀟å
ã«ã¯ã¯ãã ãŠæªæ¥å€§åŠã®OBã»OGãè€æ°ååšç±ãã第äžç·ã§æŽ»èºããŠããŸãâš RubyKaigi 2026 ã«Rubyã¹ãã³ãµãŒãšããŠåè³ããŸãïŒ | MEDLEY Developer Portal ã¯ããã« ããã«ã¡ã¯ïŒã¡ãã¬ãŒDevRelã®éç°ïŒ@Shige0096ïŒã§ãã ä»å¹Žãã€ãã«ãRubyistãã¡ã®ç¥å
ž RubyKaigi 2026 ã®å£ç¯ããã£ãŠãŸãããŸããïŒ æšå¹Žã®æçµæ¥ã«ã次ã¯åœé€šïŒããšçºè¡šãããŠãããæ¥æ¬äžå€§å€æ¯ãš... developer.medley.jp ããã§ä»åã¯ãRubyKaigi ãžã®åå è²»çšã®æ¯æŽãšåŒç€Ÿç€Ÿå¡ãšã®æèŠªäŒãžã®æåŸ
ãè¡ããŸããã ãåå ããã ããçæ§ãããããšãããããŸããïŒ çãæéã§ããããåŒç€Ÿäžå楜ããæéãéããããšãã§ããŸããïŒå°ãã§ãã¡ãã¬ãŒã«ã€ããŠç¥ã£ãŠããã ããèå³ãæã£ãŠããã ããŠããã幞ãã§ãïŒ ããŸã RubyKaigiãžã®åå ãéããŠãåæµ·éã®é
åã«ãããããè§Šããããšãã§ããŸããã çŸå³ããæ°Žãšç©ºæ°ãããå Žæã¯ã飯ããšã«ããçŸå³ããïŒïŒãããŠèªç¶ãæãããã3æ¥éã§ããð± æãåºã®åçãããã€ãã玹ä»ããŸãðââïž 2æ¥ç®ã®å€ã«åžæã¡ã³ããŒã§ãæ¥æ¬äžå€§å€æ¯ã§ãããåœé€šå±±ããã®å€æ¯ãèŠã«è¡ããŸããâ°ïž æ°é®®åºŠããŸãã§éãåæµ·éã®æµ·é®®ïŒ 掻ãããŸãŸæ°Žæãã»èŒžéãããçŽåãŸã§çããŠããã€ã«ïŒ=掻ã€ã«ïŒãããã ããŸããðŠå³ã¯ãã¡ãããã³ãªã³ãªãã飿ãæé«ã§ããð åž°ãã®ã¿ã¯ã·ãŒã§é転æããã«ãªã¹ã¹ã¡ããŠããã ãããœããã¯ãªãŒã ðŠ åæµ·éæå€ã®çç²åºãã«ãã§çŸéŽãã§é£ã¹ãããŸãâïžç²ããäœã«æ²ã¿ãçãã§ããð ãããã« æ¹ããŠãRubyKaigi ã«ãŠåŒç€ŸããŒã¹ã«ãè¶ãããã ããçæ§ãã¯ãã ãŠæªæ¥å€§åŠã®çæ§ããããŠéå¶ã®çæ§ãããããšãããããŸããïŒïŒïŒ å
šåœã®Rubyistã®çãããšäº€æµãã§ããããšãåŒç€Ÿäžåå¬ããæããŸãïŒ ä»åŸãRubyã³ãã¥ããã£ãžå°ãã§ãè²¢ç®ã§ããããšèããŠããŸãã®ã§ãåŒãç¶ããããããé¡ãããããŸãã ããã§ã¯ãæ¥å¹Žã¯å®®åŽã§ãäŒãããŸãããïŒïŒïŒé 匵ã£ãŠç³ã蟌ããðªð¥ïŒ ã¡ãã¬ãŒã§ã¯ãRubyã倧奜ããªãšã³ãžãã¢ãåéããŠããŸãïŒïŒãã¡ãããã以å€ã®ãšã³ãžãã¢è·çš®ã倧æè¿ã»å€§åéäžã§ãïŒïŒ ãŸãã¯ã«ãžã¥ã¢ã«é¢è«ã§ãã£ãã°ããã«ã話ãã§ããã®ã§ãäŒå Žã§ãäŒãã§ããªãæ¹ã¯ãã²ãã¡ãã§ã話ãããŸãããïŒãåŸ
ã¡ããŠãããŸãïŒ æ ªåŒäŒç€Ÿã¡ãã¬ãŒ æ£ç€Ÿå¡ ãšã³ãžãã¢ ã®æ±äººäžèЧ æ ªåŒäŒç€Ÿã¡ãã¬ãŒ æ£ç€Ÿå¡ ãšã³ãžãã¢ ã®æ±äººäžèЧã§ãã| HRMOS hrmos.co
ããã«ã¡ã¯ïŒã¡ãã¬ãŒDevRelã®éç°ïŒ @Shige0096 ïŒã§ãã 4/22(æ°Ž)-24(é) ã«åœé€šã§éå¬ãããRubyKaigi ã«ä»å¹Žãåå ããŠããã®ã§ããã®åå ã¬ããŒãããéãããŸãð ã¯ããã« æ ªåŒäŒç€Ÿã¡ãã¬ãŒã¯Rubyã¹ãã³ãµãŒãšããŠåè³ããçŸå°ã§ããŒã¹åºå±ããŸããã åŒç€Ÿã®ãããã¯ãã®åæ°ä»¥äžã§RubyãçšããŠããããšãããã Rubyã³ãã¥ããã£ãžã®è²¢ç®ã¯ãåè³æŽ»åã®äžã§ãç¹ã«éèŠèŠããŠããæŽ»åã§ãïŒ ïŒçªæåã«ããŽãæ²èŒããŠããã ããŸããð åŒç€ŸVPoEã®åæïŒ @terukura ïŒãæžã蟌ã¿äžâïž ä»å¹Žã¯åœ¹å¡ãå«ãç·å¢13åã§åå ããRubyKaigi ãå ªèœããŸããâš æ¬ã¬ããŒãã§ã¯ãçŸå°ã®æ§åãåŒç€Ÿã®ããŒã¹äŒç»ã®ã玹ä»ãåçã¡ã€ã³ã§é°å²æ°ãäŒãããããäŒãããŸãïŒ ãã²æ¥œããã§ã芧ããã ãããšå¬ããã§ãð äŒå Žã®æ§å æ¬å¹Žã®éå¬å Žæã¯ãåœé€šããïŒæšå¹Žã®çºè¡šããå¿åŸ
ã¡ã«ããŠããŸãã!!!ïŒ æ¡çšäººäºã®çŠå³¶ãããšãšãã«åæ¥å
¥ãããããŒã¹èšå¶âïž ããŒã¹ã®å®æåœ¢ãRubyã¹ãã³ãµãŒã¯é·æº2ã€ãªã®ã§åºã
ãšããŠããŸããð© äžããèŠãäŒå Žã åŒç€ŸããŒã¹ã®ãçŽ¹ä» ããŒã¹äŒç»ãã®ïŒ_RubyÃAIã¢ã³ã±ãŒãèª¿æ» ä»¥äž3ã€ã®AIã«é¢ããã¢ã³ã±ãŒãããšããŸããïŒð ãåçããã ããçæ§ããååããããšãããããŸããïŒïŒ AIïŒçæAIãªã©ïŒãéçºã«åãå
¥ãå§ããã®ã¯ãã€é ã§ããïŒ äœ¿ã£ãŠããå
·äœçãªã«ãŒã«ãæããŠäžãã AIãæŽ»çšããRubyéçºã«ãããæåäœéšããå°ãããšãæããŠäžãã ã¢ã³ã±ãŒãçµæãµããªâïž 1.AIãéçºã«åãå
¥ãå§ããææ 2024幎ååïŒ æ©æå°å
¥å±€ãäžå®æ°ååšãããã®ææããæŽ»çšãå§ãŸãã 2024幎åŸåã2025幎ååïŒ ããªã¥ãŒã ãŸãŒã³ ã§ãããã®æéã«å§åç倿°ã®ãšã³ãžãã¢ãå°å
¥ãéå§ã 2025幎åŸåã2026å¹ŽïŒ å°å
¥ãäžæ®µèœããã»ãŒå
šãŠã®ãšã³ãžãã¢ãåœããåã«å©çšããŠãããã§ãŒãºã«ç§»è¡ã 2.䜿ã£ãŠããå
·äœçãªããŒã« å§åçã·ã§ã¢: Claude Code 䜵çšã»ç¹å®çšé: Cursor, Codex, GitHub Copilot, Devin, Gemini ãªã© çµæãšããŠã¯åãªããã³ãŒãã®è£å®ãã§ã¯ãªããClaude Code ã Code xãDevin ã®ãããªãèªåŸçã«ã¿ã¹ã¯ãå®äºããããšãŒãžã§ã³ãåããäž»æµã§ããããšãé¡èã«çŸããŠããŸããã 3.Rubyéçºã«ãããæåäœéšã»ãå°ãããš âïž ããžãã£ãïŒæåäœéšïŒâ»äžéšæç² éçºã¹ããŒãã®åäž: ãå®è£
ãæ©ããªã£ãããã³ãŒããæžãæéãæžã£ãããçéããPRïŒãã«ãªã¯ãšã¹ãïŒåºããŸã§ãæ©ãããšãã£ã声ãç®ç«ã¡ãŸããã åŠç¿ã»èª¿æ»ã®å¹çå: ãç¥ããªãæ§æãã©ã€ãã©ãªãããèãããããšã©ãŒè§£æ¶ãæ©ãããRubyã®å€ãããŒãžã§ã³ããã®ç§»è¡ã«åœ¹ç«ã£ãã ãã¹ãã»ããã¥ã¡ã³ã: ããã¹ãã³ãŒããæžããŠããããã仿§ã®èšèªåãæ¥œã«ãªã£ãã 粟ç¥çè² æ
ã®è»œæž: ãäžäººã§æ©ãæéãæžã£ãããå¿ççããŒãã«ãäžãã£ãã âïž ãã¬ãã£ãïŒãå°ãããšïŒ â»äžéšæç² 粟床ã®åé¡: ãåãã€ãïŒãã«ã·ããŒã·ã§ã³ïŒããåããªãã³ãŒããåºãŠããããå€ãæ
å ±ãåºããŠããã ã¬ãã¥ãŒã»å質ãžã®æžå¿µ: ãã¬ãã¥ãŒã倧å€ã«ãªã£ãããAIãæžããã³ãŒãã®æå³ã远ãã®ãèŠåŽããããã³ããã«ããæè¡çè² åµãžã®äžå®ã ç¹æã®æ©ã¿: ãããŒã¯ã³ä»£ãé«ããã远ãã€ãã®ã倧å€ããAIã®ã¹ããŒãã«äººéãã€ããŠãããªãã ããŒã¹äŒç»ãã®2_ã¢ã³ã±ãŒã or Xãã©ããŒã§ããã«ãã£GETð åŒç€Ÿã®èªç¥åºŠãã¯ãããšããç°¡åãªã¢ã³ã±ãŒããžã®åçãŸãã¯Xãã©ããŒã§ã¬ã©ãã³ãã£ã¬ã³ãžãããŠããã«ãã£ããã¬ãŒã³ãããŠããŸããâš ã©ã¡ãããååããã ããæ¹ã¯2ååŒããŠããã ããŸããðª é²çœ7ç¹ã»ãããã¯ããçµåµèãããŒããªã©ãçšæããŸããð å€ãã®æ¹ã«ãè¶ãããã ããè³ãããèŠããåŒç€ŸããŒã¹ã®æ§åðâšããããã åŒç€Ÿåœ¹å¡ã®ãªãã·ã§ããðž Matzããã«ãè¶ãããã ãèšå¿µæ®åœ±âš ããããšãããããŸããïŒ ãšã³ãžãã¢ã«ããã»ãã·ã§ã³ã¬ããŒã ãšã³ãžãã¢ã«ããã»ãã·ã§ã³ã®ææ³ãäžéšç޹ä»ããŸãïŒ Ruby Committers and the World Ruby Committers and the World RubyKaigi 2026, #rubykaigi rubykaigi.org Rubyã®éçºäœå¶ã«ã€ããŠãMatzãããããªããªã£ãå ŽåãèããŠãpythonã®ãããªåè°å¶ãžã®ç§»è¡ãªã©ãæ€èšãã¹ããã話ããããMatzããã¯å€§äººæ°ã§ã®åè°å¶ã«ã¯åŠå®çã§ãäžéšã®æèŠã«ãã£ãŠèšèªèšèšãæºãããããªãæžå¿µããããšè©±ããŠãããå°äººæ°ã§ã®åè°å¶ããAIã§ã¡ã«Matzãäœãã¹ããšããæèŠããã£ãã Rubyã³ããã¿ãŒã®AI掻çšã«ã€ããŠãã³ããã¿ãŒãåå以äžãAIã«å®è£
ãããŠãã人ãå€ããMatzãããäžå¹Žä»¥äžèªåã§ã³ãŒããæžããŠããªãããšãã£ã¿ãéçºç®çã§ã¯äœ¿ã£ãŠããªãïŒã¡ãŒã«ã§ãemacsã䜿ã£ãŠããïŒãCRubyã¯ä»¥åããMatzããã¯å®è£
ããé¢ããŠä»ã®ã³ããã¿ãŒã«ä»»ããŠãããåã¬ãã«ã®ããšãAIãšãŒãžã§ã³ãã«ä»»ããŠãã¢ãŠããããã¬ãã«ã¯ãããªã«å€ãããªãããããïŒèšãäºãå¹ããªãããšãããã³ããã¿ãŒãã¡ãããAIãšãŒãžã§ã³ãã䜿ã£ãã»ããè¯ããšã®ããšïŒ HTML-Aware ERB: The Path to Reactive Rendering HTML-Aware ERB: The Path to Reactive Rendering RubyKaigi 2026, #rubykaigi rubykaigi.org ãã®çºè¡šã¯ãERBãåãªãæååçæã®ä»çµã¿ãšããŠã§ã¯ãªããHTMLæ§é ãçè§£ã§ãããã³ãã¬ãŒããšããŠæ±ãããšã§ãRailsã®Viewå±€ãããé²åãããããšããå
容ã§ãããHerbã¯HTML+ERBãè§£æããããã®ææ³ãšããŒãµãæäŸããPrismãšçµã¿åãããããšã§ãRubyæ§æãHTMLã®äžæŽåãå®è¡åã«æ€åºã§ããããã«ããŸããæ®æ®µReactãæžããŠããç«å ŽããèŠããšãJSXãããŒã«ãæ§é ãšããŠçè§£ã§ããããšãReactã®éçºäœéšãæ¯ããŠããããã«ãHerbã¯ERBã«ãããã«è¿ãåå°ãäœãããšããŠããããã«æããŸãããHotwireã§é²ãã§ããHTMLäžå¿ã®Railséçºãããã³ãã¬ãŒãè§£æããšãã£ã¿æ¯æŽã®é¢ããããã«æŒãé²ããåãçµã¿ã«èŠããŸããç¹ã«é¢çœãã®ã¯ãå°æ¥çã«ãã©ã®ç¶æ
ãã©ã®DOMã«åœ±é¿ããããã远跡ããå¿
èŠãªéšåã ããæŽæ°ãããªã¢ã¯ãã£ããªä»çµã¿ã«ã€ãªããå¯èœæ§ãããç¹ã§ãããã ããReactçãªãªã¢ã¯ãã£ããã£ããããã®ãŸãŸå®çŸããããã§ã¯ãªããçŸæç¹ã§ã¯ãã®ããã®åºç€ã¥ãããšããäœçœ®ã¥ãã«è¿ããã§ãããµãŒããŒãµã€ãã¬ã³ããªã³ã°ãäžå¿ã«ããªãããå¿
èŠãªãšããã ãè³¢ãæŽæ°ã§ããæ¹åæ§ã¯ãšãŠãé
åçã§ããERBãæ§é ãçè§£ã§ããéçºããããUIèšè¿°ãšããŠé²åããŠãããªããå°èŠæš¡ãªã¢ããªã管çç»é¢ã§ã¯ãReactãæã¡èŸŒãŸãã«ãã®æ¹åæ§ãéžã¶å Žé¢ãå¢ããŠãããããããŸããã ERBã®åé¡ïŒHTMLã®æ§é ã«åé¡ããã£ãŠãäœãæ€åºããªãïŒãšããã解決ããããã«herbãçã¿åºãããherbã«äœãã§ãããïŒãšãã£ã話ãherb-toolsã§HTMLãããŒã¹ããããdev serverã§ããããªããŒãã§ãããããã®ç¥ããªãã£ãã®ã§å匷ã«ãªããŸããã Matz Keynote Matz Keynote RubyKaigi 2026, #rubykaigi rubykaigi.org Rubyã®ãœãŒã¹ã³ãŒããã³ã³ãã€ã«ããŠãå®è¡ãã¡ã€ã«ãçæããåãçµã¿ãCRubyã«æ¯ã¹ãŠå€§å¹
ãªæ§èœåäžãå®çŸããŠããïŒYJITãšã¯å¥ã®ã¢ãããŒãïŒãå
šãŠã®Rubyã®æ©èœãå©çšã§ããããã§ãªããRuby on Railsã®çœ®ãæãã¯çŸæç¹ã§åççã«äžå¯ãšã®ããšãCLIããŒã«ãªã©ã®äžéšã®ãŠãŒã¹ã±ãŒã¹ã§ã¯å©çšã§ããä»çµã¿ãããããªããšæããã åŒç€Ÿã¹ãã³ãµãŒã»ãã·ã§ã³ æçµæ¥ã«ã¯ã¹ãã³ãµãŒã»ãã·ã§ã³ãšããŠãåŒç€Ÿã®å®æžïŒå·è¡åœ¹å¡ å»çãã©ãããã©ãŒã æ¬éš CTOïŒãããŒã¯ããŸããã ãèŽè¬ããã ããçããŸãããããšãããããŸããïŒ å
¬ç«ã¯ãã ãŠæªæ¥å€§åŠåŠçãžã®æ¯æŽæŽ»å äºååç¥ããã°ã«ãèšèŒããŠããŸãããåŒç€Ÿã®æ°åæ¡çšã«ãããŠéå¬å°ïŒåœé€šïŒã¯æ·±ãç¹ãããããã 瀟å
ã«ã¯ã¯ãã ãŠæªæ¥å€§åŠã®OBã»OGãè€æ°ååšç±ãã第äžç·ã§æŽ»èºããŠããŸãâš RubyKaigi 2026 ã«Rubyã¹ãã³ãµãŒãšããŠåè³ããŸãïŒ | MEDLEY Developer Portal ã¯ããã« ããã«ã¡ã¯ïŒã¡ãã¬ãŒDevRelã®éç°ïŒ@Shige0096ïŒã§ãã ä»å¹Žãã€ãã«ãRubyistãã¡ã®ç¥å
ž RubyKaigi 2026 ã®å£ç¯ããã£ãŠãŸãããŸããïŒ æšå¹Žã®æçµæ¥ã«ã次ã¯åœé€šïŒããšçºè¡šãããŠãããæ¥æ¬äžå€§å€æ¯ãš... developer.medley.jp ããã§ä»åã¯ãRubyKaigi ãžã®åå è²»çšã®æ¯æŽãšåŒç€Ÿç€Ÿå¡ãšã®æèŠªäŒãžã®æåŸ
ãè¡ããŸããã ãåå ããã ããçæ§ãããããšãããããŸããïŒ çãæéã§ããããåŒç€Ÿäžå楜ããæéãéããããšãã§ããŸããïŒå°ãã§ãã¡ãã¬ãŒã«ã€ããŠç¥ã£ãŠããã ããèå³ãæã£ãŠããã ããŠããã幞ãã§ãïŒ ããŸã RubyKaigiãžã®åå ãéããŠãåæµ·éã®é
åã«ãããããè§Šããããšãã§ããŸããã çŸå³ããæ°Žãšç©ºæ°ãããå Žæã¯ã飯ããšã«ããçŸå³ããïŒïŒãããŠèªç¶ãæãããã3æ¥éã§ããð± æãåºã®åçãããã€ãã玹ä»ããŸãðââïž 2æ¥ç®ã®å€ã«åžæã¡ã³ããŒã§ãæ¥æ¬äžå€§å€æ¯ã§ãããåœé€šå±±ããã®å€æ¯ãèŠã«è¡ããŸããâ°ïž æ°é®®åºŠããŸãã§éãåæµ·éã®æµ·é®®ïŒ 掻ãããŸãŸæ°Žæãã»èŒžéãããçŽåãŸã§çããŠããã€ã«ïŒ=掻ã€ã«ïŒãããã ããŸããðŠå³ã¯ãã¡ãããã³ãªã³ãªãã飿ãæé«ã§ããð åž°ãã®ã¿ã¯ã·ãŒã§é転æããã«ãªã¹ã¹ã¡ããŠããã ãããœããã¯ãªãŒã ðŠ åæµ·éæå€ã®çç²åºãã«ãã§çŸéŽãã§é£ã¹ãããŸãâïžç²ããäœã«æ²ã¿ãçãã§ããð ãããã« æ¹ããŠãRubyKaigi ã«ãŠåŒç€ŸããŒã¹ã«ãè¶ãããã ããçæ§ãã¯ãã ãŠæªæ¥å€§åŠã®çæ§ããããŠéå¶ã®çæ§ãããããšãããããŸããïŒïŒïŒ å
šåœã®Rubyistã®çãããšäº€æµãã§ããããšãåŒç€Ÿäžåå¬ããæããŸãïŒ ä»åŸãRubyã³ãã¥ããã£ãžå°ãã§ãè²¢ç®ã§ããããšèããŠããŸãã®ã§ãåŒãç¶ããããããé¡ãããããŸãã ããã§ã¯ãæ¥å¹Žã¯å®®åŽã§ãäŒãããŸãããïŒïŒïŒé 匵ã£ãŠç³ã蟌ããðªð¥ïŒ ã¡ãã¬ãŒã§ã¯ãRubyã倧奜ããªãšã³ãžãã¢ãåéããŠããŸãïŒïŒãã¡ãããã以å€ã®ãšã³ãžãã¢è·çš®ã倧æè¿ã»å€§åéäžã§ãïŒïŒ ãŸãã¯ã«ãžã¥ã¢ã«é¢è«ã§ãã£ãã°ããã«ã話ãã§ããã®ã§ãäŒå Žã§ãäŒãã§ããªãæ¹ã¯ãã²ãã¡ãã§ã話ãããŸãããïŒãåŸ
ã¡ããŠãããŸãïŒ æ ªåŒäŒç€Ÿã¡ãã¬ãŒ æ£ç€Ÿå¡ ãšã³ãžãã¢ ã®æ±äººäžèЧ æ ªåŒäŒç€Ÿã¡ãã¬ãŒ æ£ç€Ÿå¡ ãšã³ãžãã¢ ã®æ±äººäžèЧã§ãã| HRMOS hrmos.co
ã¯ããã« ããã«ã¡ã¯ãå»çãã©ãããã©ãŒã æ¬éšããžãã¹åºç€ã°ã«ãŒãã§ãšã³ãžãã¢ãããŠããçæ¬ã§ãã ããã°ãžã®ç»å Žã¯ä¹
ã
ãšãªããŸããã2019å¹Žã«æ°åã§å
¥ç€ŸããŠä»¥æ¥ãé·ãããããã¯ãéçºã®ãšã³ãžãã¢ãããŠããŸããããããªç§ã¯çŸåšãå»çãã©ãããã©ãŒã å
šäœã®MAïŒããŒã±ãã£ã³ã°ãªãŒãã¡ãŒã·ã§ã³ïŒãSFAïŒå¶æ¥æ¯æŽïŒãCRMïŒé¡§å®¢ç®¡çïŒãšãã£ãITããŒã«ããã³æ¥åãããŒã®èšèšã»æ¹åãéããŠãäºæ¥ããã©ãŒãã³ã¹ã®åäžãæ
ãéçºçµç¹ã®ãããŒãžã£ãŒãåããŠããŸãã ã¡ãã¬ãŒã§ã¯ãæ£è
ã»ç掻è
ãšãç
é¢ã»æåºèšºçæãå»ç§èšºçæãæ¯ç§èšºçæã調å€è¬å±ãšãã£ãåå»çæ©é¢åãã«äºæ¥ã»ãããã¯ããå±éããŠããŸãããä»åã¯ããããã®äºæ¥ãæ¯ããITããŒã«ã® Salesforce ã kintone ãžç§»è¡ãããããžã§ã¯ãã«ã€ããŠã話ãããŸãã èæ¯ SFAãæ±ããŠããèª²é¡ åŒç€Ÿã§ã¯é·å¹Žãå»çãã©ãããã©ãŒã ã«ãããè€æ°ã®äºæ¥éšéã§å
±éã®Salesforceãå©çšããŠããŸããããéçšãç¶ããäžã§ä»¥äžã®ãããªèª²é¡ãé¡åšåããŠããŸããã ææ°ã»æ£ããæ
å ±ã®ææ¡ãå°é£ ïŒæ£èŠåãããŠããªãããŒã¿ãéè€ç®¡çã«ããæ
å ±ã®åæ£ ããŒã¿åæã®å£ ïŒåæãèŠæ®ããèšèšã«ãªã£ãŠãããããããã¯ãåŽã®å©çšç¶æ³ãšã®çªåãªã©ãæè»ãªããŒã¿ã®å å·¥ã«å·¥æ°ãããã£ãŠãã éå¹çãªæ¥åãã㌠ïŒè€æ°ããŒã«ã®äœµçšãéè€ããé
ç®ã®ååšãªã©ãèæ¯ã«ãæåã§ã®è»¢èšãããã«ãã§ãã¯ãçºçããŠããç¶æ
ã·ã¹ãã 管çã®å±äººå ïŒç®çãäžæãªé
ç®ãä¹±ç«ããã¡ã³ããã³ã¹ã»ã¬ããŒãäœæãã§ãã人ãéãããŠããç¶æ
ãŸãã130åè¿ãã®ã©ã€ã»ã³ã¹ãä¿æããŠããããããããã®èª²é¡ãèžãŸãããšã³ã¹ãéå€ãªç¶æ³ã«ãé¥ã£ãŠããŸããã å
šãŠã®é¡§å®¢äœéšããããã¯ãåŽãçè§£ããèšèšè²¬ä»»ãæã€ ç§ãã¡ã¯ã å¶æ¥ã»ã«ã¹ã¿ããŒãµã¯ã»ã¹ãšãã£ã顧客掻åãããå¥çŽã»è«æ±ã«è³ããŸã§ããäžé£ã®ãããã¯ãäœéšããšããŠæã ããã®èšèšã»å®è£
ã«ãšã³ãžãã¢ãæ·±ãé¢ããããšã倧åã«ããŠããŸãã ãã®èãã«åºã¥ããåãªãããŒã«ã®ãªãã¬ã€ã¹ïŒãåŒã£è¶ãïŒã§ã¯ãªããããè¯ã顧客äœéšã«ã€ãªããåççã§æŽçãããäºæ¥ãªãã¬ãŒã·ã§ã³ãå®çŸããããã æ¥åã»ããŒã¿ã»ããŒã«ãäžäœã§ãšã³ãžãã¢ãèšèšãçŽã ããããæ¬ãããžã§ã¯ãã®éèŠãªãã€ã³ãã§ããã åãçµã¿ äœå¶æ§ç¯ãšã¢ãŒããã¯ãã£èšèš åè¿°ã®éããSalesforceã¯ãããŸã§è€æ°ã®äºæ¥éšéã§æŽ»çšããŠããŸããã1人ã§åäºæ¥ã®æ¥åãããŒãå¿
èŠããŒã¿ãææ¡ãåèšèšããã®ã¯å°é£ã§ãããäœããç§ãã¡ã倧åã«ããŠããèãæ¹ãèžãŸãããããã¯ããšã³ãžãã¢ãåäºæ¥ã«æ·±ãæœã蟌ãã§åèšèšãã¹ãã ãšèããŸãããããã§ãåäºæ¥é åãããããã¯ããšã³ãžãã¢ã1åãã€ã¢ãµã€ã³ããäœå¶ãšããŸãããç§ã¯PMãšããŠå
šäœèšèšãè»èŒªã®åçºæãèµ·ããªãããåéšéã®é£æºãã³ã³ãããŒã«ãã圹å²ãæ
ããåç°å¢ã®ããŒã¿èšèšã»æ§ç¯ã¯ãã®äºæ¥é åæ
åœã®ãšã³ãžãã¢ãäž»å°ãã圢ããšããŸããã kintoneã¯è²¬ååé¢ãã¡ã³ããããªãã£ãèæ
®ããäºæ¥é åããšã«ç°å¢ãåããã¢ãŒããã¯ãã£ãæ¡çšããŸããããŸããkintoneãžã®ç§»è¡ã«äŒŽããã³ã¹ããèŠªåæ§ãå å³ããŠMAããŒã«ã®ç§»è¡ãè¡ããŸããããæ¬èšäºã§ã¯è©³çްã岿ãããŠããã ããŸãã å»çãã©ãããã©ãŒã æ¬éšã®çµç¹äœå¶ ããŒã«ã®ç§»è¡ã€ã¡ãŒãž æ¥åçè§£ãšèŠä»¶å®çŸ© ãŸãã¯ãæ¥ã
ã®äºæ¥æŽ»åã®äžã§çºçããããŒã¿ããæ¥åäžå¿
èŠãšãªãããŒã¿ãããã³ãã®ãããŒã®çŸç¶ãšããã¹ãå§¿ãæããããäºæ¥éšãšã³ãã¥ãã±ãŒã·ã§ã³ãéããŸãããé·å¹Žå©çšããŠããããšãããããŒã¿é
ç®ãèšå€§ãšãªã£ãŠãããããããã®ããŒã¿ãã©ã掻çšããã®ãããéç¹çã«äŒè©±ããããããäžèŠã§ã¯ãªãããããæŽ»çšããããããã«ã¯ã©ããã¹ããããªã©ã®æŽçã«æéããããŸããã ããŒã¿èšèš ç¹ã«å·¥å€«ããã®ã¯ãDB芳ç¹ã§ã®ãæ£èŠåããšãŠãŒã¶ãŒèгç¹ã§ã®ãå
¥åã®ãããããã®ãã©ã³ã¹ããšã£ãããŒã¿èšèšã§ããkintoneã¯DBãšUIãäžäœåã§ããããããã®ãã©ã³ã¹èª¿æŽã«ãšãŠãèŠåŽããŸãããäžè¬çãªRDBMSã§ã¯ããŒã¿ã®å±¥æŽãæ®ãããã«å°çšã®ããŒãã«ãèšãã€ãã¥ãŒã¿ãã«ã¢ããªã³ã°ãªã©ãæ¡çšããå Žé¢ã§ããkintoneã ãšããŒãã«âã¢ããªãšãªããããããŒãã«ãåããããšã¯åçŽã«ãŠãŒã¶ãŒã®ç»é¢é·ç§»ãå
¥åç®æãå¢ããããšã«çŽçµããŠããŸããŸãããããã£ãå Žåã¯å®å
šãªæ£èŠåãããã®ã§ã¯ãªããæ®æ®µã®åè«ç®¡çã§äœ¿çšããã¢ããªãšãã®åè«ã¹ããŒã¿ã¹ã®å±¥æŽã管çããã¢ããªãåããããããã®ã¢ããªã«åé¡ã®ãã£ãŒã«ãïŒRDBMSã®ã«ã©ã ãkintoneã§ã¯ãã£ãŒã«ããšåŒã³ãŸãïŒãèšçœ®ããããšã蚱容ãã€ã€ããJavaScriptãçšããèªå転èšã®ä»çµã¿ãäœãããšã§ããŠãŒã¶ãŒã¯åè«ç®¡çã¢ããªã ãã«å
¥åããŠããã°è¯ãããã«ãããšãã£ã工倫ãããŸããã æ³¥èãæŠã£ããã€ã³ãïŒããŒã¿ç§»è¡ãšåæã·ã¹ãã ããããã¯ããšã³ãžãã¢ãšããŠç¹ã«èŠåŽãã2ã€ã®ãã€ã³ããã玹ä»ããŸãã 1. åªçæ§ãšåçŸæ§ã远æ±ããããŒã¿ç§»è¡ 100å以äžãå©çšããã·ã¹ãã ã«ãããŠãç¹ã«ããŒã¿ç§»è¡ã«ã¯æ
éãæããŸãããå
·äœçãªæ¹æ³ãšããŠã¯ãSalesforceã®ã¹ããŒããkintoneã®ã¹ããŒãã«å€æããããŒã¿ããããã³ã°ããçµæãCSVã«åºåãããšããäžé£ã®åŠçããCLIã³ãã³ãçã®æŽåã«ããã¹ã¯ãªããåããŸããã ããŒã¿ç§»è¡ã§ã¯ãäžåºŠkintoneã«æå
¥ããåŸãUATæéäžã«äºæ¥éšããã®ãã£ãŒãããã¯ãåããŠèšèšãèŠçŽããåæå
¥ãå¿
èŠã«ãªãã±ãŒã¹ããããŸããããŸãããªããŒãµã«ç®çã§ãæ¬çªç§»è¡åã«ãäœåºŠã§ãåå®è¡ã§ããä»çµã¿ãå¿
èŠã§ããããã®ãããåè¿°ã®ããã«äžé£ã®åŠçãã¹ã¯ãªããåãããåçŸæ§ãã確ä¿ããŸãããããã«ããåªçæ§ããéèŠãªãã€ã³ãã§ãããä»åã®ã±ãŒã¹ã§ã¯ãããããã®ã¢ããªã«ãŠããŒã¯ããŒãèšããŠåžžã«UPSERTåŠçãè¡ãããšã§ãå
ããŒã¿ãåãã§ããã°ãäœåºŠå®è¡ããŠãåãç¶æ
ãåçŸã§ããããã«ããŸããã kintoneãžã®ã€ã³ããŒãåŠçèªäœã¯ã¬ã³ãŒãæ°ã«æ¯äŸããŠäžå®ã®æéãããã£ãŠããŸããã®ã®ãäºåã«æé åããªããŒãµã«ãéããããšã§ãæ¬çªçšŒå忥ã®å€éäœæ¥ã§ç¡äºã«ç§»è¡ãå®äºãããããšãã§ããŸããããã ããïŒäžå®ã®æ³å®ç¯å²ã§ã¯ãã£ããã®ã®ïŒç§»è¡äœæ¥çŽåã«SalesforceåŽã§ããŒã¿ã®æŽæ°ãåé€ãè¡ãããããšã§ãkintoneåŽã§é¢é£ããŒã¿å士ã®çŽä»ããããŸãèšå®ã§ããªãã±ãŒã¹ãçºçããŸãããããã¯ãšã©ãŒãã°ãèŠãŠåå¥ã«å¯ŸåŠãããããªãã倧å€èŠåŽããéšåã§ããããŸããã 2. Salesforceãškintoneã®åæ¹ååæã·ã¹ãã Salesforceã¯é·å¹ŽæŽ»çšããŠããããšãããããããSFAãšããŠã®æ©èœã ãã§ã¯ãªããè«æ±ãå¥çŽç®¡çãšããŠã®åœ¹å²ãæ
ã£ãŠããŸãããä»åã®ãããžã§ã¯ãã§ã¯äºæ¥éšåŽãå©çšããSFAãšããŠã®æ©èœã¯kintoneãžç§»è¡ãã€ã€ããè«æ±ãå¥çŽç®¡çãšãã£ãããã¯ãªãã£ã¹é åã«é¢ããŠã¯å°æ¥çãªè²©å£²ç®¡çã·ã¹ãã ãžã®ç§»è¡ãèŠæ®ããŠã¹ã³ãŒãå€ãšããŠããŸããããã£ãŠããããŸã§ã¯äžã€ã®ã·ã¹ãã ã®äžã§é¡§å®¢ã»åè«ããå¥çŽã»è«æ±ãŸã§äžå
管çããŠãããã®ãåé¢ãããããã·ã¹ãã éã§ããŒã¿ã飿ºãããå¿
èŠããããŸããã 詳现ã¯çããŸãããSalesforceã«æ®ã£ãå¥çŽã»è«æ±é¢é£ããŒã¿ã®äžéšã¯ãå¶æ¥ãã«ã¹ã¿ããŒãµã¯ã»ã¹ãªã©ã®äºæ¥éšåŽãšå¥çŽã»è«æ±åŠçãæ
ãããã¯ãªãã£ã¹éšéã®åæ¹åã«ããæžã蟌ã¿ãæ¥åäžå¿
èŠã§ãã£ããããåã«kintoneããå¿
èŠãªããŒã¿ãäžæ¹åã§éãã ãã§ã¯èŠä»¶ãæºãããŸããã§ããããã®ãããSFAé åãšããã¯ãªãã£ã¹é åã®ãããšãªããåè«ããªã©ã®ããŒã¿ã«é¢ããŠã¯ãSalesforceãškintoneéã§äžéšã®ã¹ããŒãå®çŸ©ãæããäž¡ã·ã¹ãã ãäžå®ééã§åæãããä»çµã¿ãšããŸããã å
·äœçãªä»çµã¿ãšããŠã¯ãäž¡ã·ã¹ãã ã®ã¹ãããã·ã§ãããäžå®ééã§ååŸããååãšã®å·®åãæ€ç¥ããŠäºãã®ã·ã¹ãã ãžåæ ãåã圢ããšããŸããã ããã§å£ãšãªã£ãã®ãããæºãªã¢ã«ã¿ã€ã æ§ãã®èŠæ±ãšãããŒã¿ã®ç«¶åãã§ããäž¡æ¹ã®ã·ã¹ãã ã§æ¥åžžçã«ãã©ã³ã¶ã¯ã·ã§ã³ãçºçããããããåãã¬ã³ãŒãã®åãé
ç®ããããããã®ã·ã¹ãã ã§åæã«å¥ã®å€ãžæžãæãããããå¯èœæ§ããããŸããããã®ç«¶åç¶æ
ãå®å
šã«è§£æ±ºããããã®ããžãã¯ãæ§ç¯ããå¿
èŠããããéåžžã«èŠåŽããŸããã ãã®å¯Ÿå¿ã«ããã£ãŠã¯ãåœåæ³å®ããŠãã察象é
ç®ããæ¬åœã«æºãªã¢ã«ã¿ã€ã ã§åæãå¿
èŠãªã®ããé¢ä¿è
ãšåŸ¹åºçã«ç²Ÿæ»ããŸããããã®çµæãåæééã®èª¿æŽãåæå¯Ÿè±¡ã®å€§å¹
ãªçµã蟌ã¿ãã§ããçŸåšã¯å®å®ããŠçšŒåããä»çµã¿ãå®çŸã§ããŠããŸãã â» ããŒã¿ç§»è¡ãåæåŠçã®ãã£ãŒããªè©±ã¯çãã ããããªå
容ãšãªã£ãŠããŸãããããŸãå¥ã®æ©äŒã«ããã°åã§ããã°ãšæããŸãïŒ ææ 80%以äžã®ã©ã³ãã³ã°ã³ã¹ãåæž å¥çŽã»è«æ±ãªã©ãæ
ãçµç¹ã®å¿
èŠåãé€ãã90åã»ã©ã®ã¢ã«ãŠã³ããåé€ããããšãã§ããŸãããkintoneã®è²»çšãå å³ããŠããå
šäœã®ã©ã³ãã³ã°ã³ã¹ããšããŠ80%以äžåæžããããšãã§ããŸããã BigQueryéçŽã«ããããŒã¿åæã»å¯èŠåã®å®çŸ Salesforceã®ã¬ããŒãæ©èœã®å¶çŽããè§£æŸãããããæè»ãªããŒã¿æŽ»çšãã§ããããã«ãªããŸããã KPIããã·ã¥ããŒãã®æ§ç¯ ïŒLooker Studioãªã©ã®ã¢ã»ãããšé£æºããããŒã¿ã®åæã»å¯èŠåãå¯èœã« èªåŸçãªåææå ïŒå匷äŒã®éå¬ãããã¥ã¢ã«æŽåã®ãããããããäºæ¥éšã¡ã³ããŒãçæAIãæŽ»çšããªãããããèªåŸçãã€ã¹ããŒãã£ãªããŒã¿åæãå¯èœã« 暪æçåæ ïŒkintoneã®é¡§å®¢ã»åè«ããŒã¿ãå¥çŽããŒã¿ããããã¯ãããŒã¿ãªã©ãBigQueryã«éçŽããå€è§çãªåæãå®çŸ ãŸããæšªæçµç¹ã«ããããŒã¿æŠç¥ã°ã«ãŒãããæè¿ãèªç¶èšèªã§BigQueryçã®ããŒã¿ãåæã§ãã瀟å
ã·ã¹ãã ãããªãªãŒã¹ããŸãããä»åã®ãããžã§ã¯ãã«ããããŒã¿æŽåãšãã®ã·ã¹ãã ãçµã¿åããããããã¹ããŒãã£ã«ããŒã¿åæãè¡ããç°å¢ã¥ãããå éããŠããŸãã é¢é£èšäºïŒ ããŒã¿åæAIãšãŒãžã§ã³ãã®å®è·µ - Slack à Devin à Context Engineering ä»åŸã®å±æ æ¬ãããžã§ã¯ãã«ãã£ãŠå€ãã®ææãåŸãããŸããããç§ãã¡ã¯ãŸã ãæ¥åãããŒã¿ã®äžéšãããŒã«ã®ç§»è¡ãšå
±ã«åèšèšããåºç€ãæŽãããã«éããŸããã ä»åŸã¯ãã®åºç€ã掻ãããKPIãªã©ã®å®éçãªããŒã¿ãçŸå Žãã¢ãªã³ã°ãéããŠäºæ¥ã®èª²é¡ã»ããã«ããã¯ãç¹å®ããç¶ç¶çã«æ¹åãåããµã€ã¯ã«ãäœã£ãŠãããããšèããŠããŸãã ãŸããæ¥ã
顧客ãšåãåãäºæ¥éšã®ã¡ã³ããŒèªèº«ããããŒã¿æŽ»çšãæ¡åŒµæ§ãèŠæ®ããŠèªåŸçã«ããŒã«ãæ¹ä¿®ã§ããç¶æ
ããããçµç¹ã®ã¢ãžãªãã£ãæãé«ãä¿ã¡ãªããã¹ã±ãŒã«ã§ããçæ³ã®åœ¢ã ãšèããŠããŸãããã®å®çŸã«åããŠããšã³ãžãã¢ãªã³ã°ã®å°éæ§ãæã€ç§ãã¡ããžãã¹åºç€ã°ã«ãŒããã誰ããæ¹ä¿®ã»æ¹åããããä»çµã¿ã¥ãããçœåŒããŠãããããšèããŠããŸãã ãŸãšã ãšã³ãžãã¢ãäºæ¥ã®æ·±ãéšåã«å
¥ã蟌ã¿ãæ¥åã»ããŒã¿ã»ããŒã«ãäžäœã§åèšèšãããããžã§ã¯ãã«ã€ããŠã玹ä»ãããŠããã ããŸããã ã¡ãã¬ãŒã§ã¯ããå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ããããšããããã·ã§ã³ã®ããšããšã³ãžãã¢ãããžãã¹ã®æ ¹å¹¹ã«é¢ããããããã¯ããšäºæ¥ãå
±ã«æé·ãããæåããããŸããèªã課é¡ãçºèŠããèšèšããéçšãŸã§ããšã³ãžãã¢ãšããŠã®ãªãŒããŒã·ãããçºæ®ããªããäžæ°éè²«ã§æšé²ã§ããæ¹ãçµ¶è³åéããŠããŸãã ã¡ãã¬ãŒã§åãïœæ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã§ã®åãæ¹ã人äºå¶åºŠãæ±äººæ
å ±ãªã©ãæ¡çšã«é¢ããæ
å ±ãã玹ä»ããŸãã www.medley.jp å°ãã§ãèå³ãæã£ãŠããã ããŸãããããã²ã¡ãã¬ãŒã®æ¡çšããŒãžãã芧ãã ããïŒ
ã¯ããã« ããã«ã¡ã¯ã人æãã©ãããã©ãŒã ãžã§ãã¡ãã¬ãŒã¢ã«ãããŒéçºã°ã«ãŒãã®æ± ç°ã§ãããžã§ãã¡ãã¬ãŒã¢ã«ãããŒã¯ãä»è·ãéããçŠç¥ãåšå®
å»çãªã©ã®åæ¥çš®ã«ç¹åããããªã³ã©ã€ã³åç»ç ä¿®ãµãŒãã¹ããšã倿 ã»ã·ãã管çãµãŒãã¹ããWebã»ã¢ããªã®äž¡æ¹ã§æäŸããŠããŸããéçºã°ã«ãŒãã§ã¯ããããäž¡ãµãŒãã¹ã®éçºã»éçšãæ
åœããŠããŸãã ãããŸã§ããªã³ã©ã€ã³åç»ç ä¿®ãµãŒãã¹ã®Webããã³ããšã³ã㯠Next.js ã§æ§ç¯ãããŠããŸããããé·æçãªéçšãèŠæ®ã㊠Vite + TanStack Router ãžã®ç§»è¡ãè¡ããŸãããæ¬èšäºã§ã¯ãç§»è¡ã«è³ã£ãçç±ãšç§»è¡äœæ¥ã玹ä»ããŸãã ç§»è¡çç±ã«ã€ã㊠Next.jsããViteãžã®ç§»è¡ã決å®ããèæ¯ã¯ã以äžã®3ã€ã®çç±ãåææã«éãªã£ãããšã§ãã äŸåé¢ä¿ã«ããéçºã®å¶çŽ åœåããã¶ã€ã³ã·ã¹ãã ã®æ§ç¯ãèŠæ®ããTailwind CSSãPanda CSSãšãã£ãã¢ãã³ãªCSSã©ã€ãã©ãªã®å°å
¥ãæ€èšããŠããŸããã ããããåœæäœ¿çšããŠããNext.js v12ãå
éšã§ä¿æããPostCSSã®ããŒãžã§ã³ãå€ãããã«èšå®ãç«¶åããå°å
¥ã«ã¯è€éãªèšå®ãå¿
èŠã§ããããšã倿ããŸããããŸããv12èªäœããã§ã«ãµããŒãçµäºïŒEOLïŒãè¿ããŠãããã»ãã¥ãªãã£ãã¡ã³ããã³ã¹ã®é¢ã§ã䜿ãç¶ãããªã¹ã¯ãé«ãŸã£ãŠãããããããŒãžã§ã³ã¢ãããŸãã¯å¥æ§æãžã®ç§»è¡ãå¿
èŠãªç¶æ³ã«ãããŸããã ãããã€ããŒã«ãserverless-nextjsãã®ã¢ãŒã«ã€ã ã€ã³ãã©æ§ç¯ã«ã¯ serverless-nextjs ã䜿çšããŠããŸãããããããåã©ã€ãã©ãªã¯çŸåšã¢ãŒã«ã€ãïŒéçºåæ¢ïŒãããŠããŸããå°æ¥çãªãã°ä¿®æ£ãªã©ãå°é£ã«ãªããããé
ä¿¡åºç€æ§ç¯ã®ææ®µãå¥ã®éžæè¢ãžçœ®ãæããå¿
èŠãçããŠããŸããã ãããã¯ãç¹æ§ã«åãããæè¡ã¹ã¿ãã¯ã®èŠçŽã Next.jsæ¡çšæãšçŸåšã§ã¯ããã³ããšã³ãã®ãšã³ã·ã¹ãã ãç°ãªããçŸåšã¯å€æ§ãªéžæãå¯èœã«ãªã£ããšæããŸããããã§ãæ¹ããŠãããã¯ãç¹æ§ãªã©ãèžãŸããŠæ€èšããçµæã以äžã®èгç¹ããããã·ã³ãã«ãªæ§æãæé©ã§ãããšå€æããŸããã to BãµãŒãã¹ã§ããããŠãŒã¶ãŒäœéšãåªå
ããæ§è³ªäžãSEO芳ç¹ã§ã®æ°å€æé©å(Core Web Vitalsç)ã®å¿
èŠæ§ãæ¯èŒçäœã ããã¯ãšã³ãã«GraphQLãæ¡çšããŠãããSSRãæŽ»çšããããšãããšãã£ãã·ã¥ç®¡ççã®èšèšãå¿
èŠã§ãããå®è£
ã³ã¹ããããã æ€çŽ¢ãããŒãžããŒã·ã§ã³çã®ãŠãŒã¶ãŒæäœã«äŒŽãåçããŒã¿ãç»é¢ã®å€§åãå ããŠãããRSCã䜿çšããæ©æµãååã«äº«åã§ããªã 以äžã®çç±ãããNext.js ã®äœ¿çšãç¶ç¶ããããããä»ã®ãµãŒãã¹ç¹æ§ã«åãããæ§æã«ããã®ãé©ããŠãããšèããããŒãžã§ã³ã¢ããã§ã¯ãªã Vite + TanStack Router ãžã®ãªãã¬ã€ã¹ã決æããŸããã ç§»è¡äœæ¥ã«ã€ã㊠ããããã¯ãå
·äœçãªç§»è¡äœæ¥ã«ã€ããŠç޹ä»ããŸããå€å²ã«ãããäœæ¥ã®äžãããæ¬èšäºã§ã¯ç¹ã«å€§ããªå€æŽç¹ã§ãããã«ãŒãã£ã³ã°ããšãã€ã³ãã©ãã®2ç¹ãåãäžããŸãã TanStack Routerãžã®ç§»è¡ next/router ãš next/link ã䜿çšããŠããã«ãŒãã£ã³ã°ã¯ã TanStack Router ãžç§»è¡ããŸãããæ¡çšçç±ã¯ã次ã®3ç¹ã§ãã ãã¹ãã¯ãšãªãã©ã¡ãŒã¿ãåå®å
šã«æ±ããããã«é¢ããå®è£
ãã¹ãã³ã³ãã€ã«æã«æ€ç¥ããããã 倿 ã»ã·ãã管çãµãŒãã¹ãšæè¡ã¹ã¿ãã¯ãæããã°ã«ãŒãå
ã§ã®ç¥èŠå
±æãã¹ã ãŒãºã«ããããã Next.jsäœ¿çšæãšåãããã«ãã¡ã€ã«ããŒã¹ã«ãŒãã£ã³ã°ãç¶æããç§»è¡ã«äŒŽãèªç¥è² è·ãæå°éã«æãããã çµæãã¯ãšãªãã©ã¡ãŒã¿ãåã§ç®¡çãããããã«ãªã£ãããšã§ããããŸã§æåãã¹ããE2Eãã¹ãã§ããæ°ä»ããªãã£ããããªäžå
·åããã³ãŒããæžããŠããæ®µéã§ïŒåãšã©ãŒãšããŠïŒæ€ç¥ã§ããããã«ãªããŸããã å ããŠãã©ã®ç»é¢ã§ã©ã®ãã©ã¡ãŒã¿ã䜿ãããŠããããåãã远ãããããªããé·æçãªä¿å®æ§ã®åäžã«ãã€ãªãã£ãŠããŸãã CloudFront Continuous Deployment ã®æŽ»çš Viteã¢ããªã±ãŒã·ã§ã³ãé
ä¿¡ããããã«ãserverless-nextjs ã§æ§ç¯ãããCloudFront + S3 + Lambda@Edgeã®æ§æãããCloudFront + S3ã®æ§æã«ç§»è¡ããããšãè¡ããŸããã ã€ã³ãã©æ§æãç°¡çŽ åã§ããäžæ¹ã§ãå€§èŠæš¡ãªå·æ°ãšãªãããããªãªãŒã¹ã«ããã£ãŠã¯ä»¥äžã®èŠä»¶ãéèŠããŸããã äžãäžã®éã«ãå³åº§ã«æ§æ§æïŒNext.jsïŒãžããŒã«ããã¯ã§ããããš ããŠã³ã¿ã€ã ããŒãã«ããããš(æ¬çªç°å¢ã§ã®æ£åžžåäœãä¿èšŒããããš) ãŸãããããŸã§ serverless-nextjs ãæ§ç¯ããŠãããªãœãŒã¹ïŒCloudFrontã»Lambda@EdgeïŒãTerraformã§åå®çŸ©ããŸãããã©ã€ãã©ãªä»»ãã ã£ãã€ã³ãã©æ§æãå¯èŠåãããããšã«å ããæ§æ§æã«åãæ»ããäœå¶ãæŽããããšãã§ããŸããã äžæ¹ãããŠã³ã¿ã€ã ãªãã®åãæ¿ããå®çŸããããã«ãCloudFront Continuous Deployment ãæŽ»çšããŸããã åºå
ž : CloudFront ã®ç¶ç¶çãããã€ã䜿çšã㊠CDN èšå®ã®å€æŽãå®å
šã«ãã¹ããã - Amazon CloudFront ïŒAmazon Web Services, Inc.ïŒ å
·äœçã«ã¯ãæ¢åã® Next.js é
ä¿¡çšã®èšå®ãPrimary distribution(ç»ååç
§)ã«ãããæ°ããæ§ç¯ããViteã¢ããªã±ãŒã·ã§ã³é
ä¿¡çšã®èšå®ãStaging distributionãšããŠçšæããŸããã CloudFront Continuous Deploymentã§ã¯ããªã¯ãšã¹ãããããŒãŸãã¯ãã©ãã£ãã¯ã¬ãŒãã«åºã¥ããŠãªã¯ãšã¹ããæ¯ãåããããšãã§ããŸããä»åã¯ç¹å®ã®ããããŒãä»äžããå Žåã®ã¿ Staging distribution ãžãªã¯ãšã¹ããæµããããèšå®ããæ¬çªãã¡ã€ã³ãã€æ¬çªç°å¢ãšåãæ¡ä»¶äžã§Viteã¢ããªã±ãŒã·ã§ã³ã®æ€èšŒãè¡ããŸããã æ€èšŒã®çµæãåé¡ããªãããšã確èªããäžã§ãStaging distributionã®èšå®ã Primary distributionãžäžæžã(ææ Œ)ãããŸããããã®ããã»ã¹ã«ãããããŠã³ã¿ã€ã ãçºçãããããšãªããå®å
šã«æ°ç°å¢ãžã®åãæ¿ããå®äºã§ããŸããã ãããã« ä»åã¯ããžã§ãã¡ãã¬ãŒã¢ã«ãããŒãæäŸãããªã³ã©ã€ã³åç»ç ä¿®ãµãŒãã¹ã®Webããã³ããšã³ãã Next.js ãã Vite + TanStack Router ãžç§»è¡ããåãçµã¿ã玹ä»ããŸãããç§»è¡çç±ãšããŠæããŠããããããã¯ãç¹æ§ã«åã£ãæè¡ã¹ã¿ãã¯ã®èŠçŽãã®éæã«å ããä»2ç¹ã®èª²é¡ã以äžã®ããã«è§£æ±ºãããŸããã èª²é¡ ç§»è¡åŸ äŸåé¢ä¿ã«ããå¶çŽ Vite ãžã®ç§»è¡ã«ãããPostCSSèµ·å ã®ç«¶åãæ¶ããPanda CSS ãªã©ã®ã©ã€ãã©ãªã容æã«å°å
¥å¯èœã«ãªã£ãã ãããã€ããŒã«ã® ã¢ãŒã«ã€ã Terraform ã«ãã IaC 管çã«ç§»è¡ããã©ã€ãã©ãªã«äŸåããŠããã€ã³ãã©æ§æãå¯èŠåãããã¡ã³ããã³ã¹ã容æã«ãªã£ãã ãŸããäžèšã®å
容ã«å ãããã«ãé床ãç»é¢é·ç§»é床ã®åäžãšãã£ãæ¹åãèŠãããŸããã ãããã¯ããé·æçã«æäŸã§ãããããä»åŸãæ©èœéçºãšäžŠè¡ããŠæè¡åºç€ã®èŠçŽããæ¹åã«ç¶ç¶çã«åãçµãã§ãããŸãã Weâre hiring! ã¡ãã¬ãŒã§ã¯ããããã¯ããšã³ãžãã¢ãã¯ãããå»çãã«ã¹ã±ã¢ã®æªæ¥ããå
±ã«åµã£ãŠãããšã³ãžãã¢ã倧åéäžã§ãïŒå°ãã§ããèå³ããæã¡ããã ããŸããããã²ããå¿åãåŸ
ã¡ããŠãããŸãïŒ æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ãšã³ãžãã¢ ã®æ±äººäžèЧ æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ãšã³ãžãã¢ ã®æ±äººäžèЧã§ãã| HRMOS hrmos.co â»ã«ãžã¥ã¢ã«é¢è«ã倧æè¿ã§ãïŒãåžæã®éã¯ãããã®ä»ã®é
ç®ïŒåžæèšå
¥æ¬ïŒãã«ãŠãã®æšããèšèŒãã ããã
ã¯ããã« ããã«ã¡ã¯ïŒã¡ãã¬ãŒDevRelã®éç°ïŒ @Shige0096 ïŒã§ãã ä»å¹Žãã€ãã«ãRubyistãã¡ã®ç¥å
ž RubyKaigi 2026 ã®å£ç¯ããã£ãŠãŸãããŸããïŒ æšå¹Žã®æçµæ¥ã«ã次ã¯åœé€šïŒããšçºè¡šãããŠãããæ¥æ¬äžå€§å€æ¯ãšçŸå³ããæµ·é®®ã𿥿¬é
ãšããŒã«ãšãããã§ã¯ãªããRubyistã®çãããšåœé€šã§ãäŒãã§ããããšããå¿åŸ
ã¡ã«ããŠããŸããð ã¡ãã¬ãŒã¯ä»å¹ŽããRubyã³ãã¥ããã£ãžã®æè¬ãšçºå±ãé¡ããã¹ãã³ãµãŒãšããŠçŸå°åå ããŸãïŒ RubyKaigi 2025 å
¥ãå£ã§ã®äžæ ã¬ããŒããå
¬éããŠããã®ã§ããã²ã芧ããã ãããšå¬ããã§ãïŒ RubyKaigi 2025 åå ã¬ããŒã - Platinum Sponsor ãšããŠåè³ããŸããïŒ | MEDLEY Developer Portal ã¯ããã« ããã«ã¡ã¯ïŒ 人æãã©ãããã©ãŒã æ¬éšãããã¯ãéçºå®€ 第äžéçºã°ã«ãŒãæå±ã®å±±äžã§ãã ã¡ãã¬ãŒã«ã¯ä»å¹Ž2æã«å
¥ç€Ÿãããšã³ãžãã¢ã§ãæ¥æ¬æå€§çŽã®å»çä»è·æ±äººãµã€ã ãžã§ãã¡ãã¬ãŒ ã®éçºãæ
åœããŠããŸãã ã¡ãã¬ãŒã¯ 4 æ 1... developer.medley.jp Rubyã¹ãã³ãµãŒãšããŠåè³ããŸãïŒ æ¬å¹Žã¯Rubyã¹ãã³ãµãŒãšããŠãããŒã¹åºå±ãšã¹ãã³ãµãŒã»ãã·ã§ã³ãéããŠRubyKaigi ãçãäžããŸãã Sponsors RubyKaigi 2026, #rubykaigi rubykaigi.org ã¹ãã³ãµãŒã»ãã·ã§ã³:å»çãã©ãããã©ãŒã æ¬éš CTOã®å®æžãç»å£ å·è¡åœ¹å¡ å»çãã©ãããã©ãŒã æ¬éšCTOã®å®æžããã¹ãã³ãµãŒã»ãã·ã§ã³ã«ç»å£ããããŸãã åŒç€Ÿã®ä»ãšããããã«ã€ããŠãã¡ãã¬ãŒã«å
¥ç€Ÿããããªããããªé
åããã£ã·ããäŒãããŸãã®ã§ãã²ãèŽè¬ãã ããïŒ ããŒã¹ã³ã³ãã³ã:AIæä»£ã®Rubyã«ã€ããŠèªããŸãããïŒäºå®ïŒ ã¡ãã¬ãŒã®ããŒã¹ã§ã¯ãçãããšãããããã®Rubyãã«ã€ããŠèããã³ã³ãã³ããšã㊠ãAIãæŽ»çšããRubyéçºã«ãããæåäœéšã»ãå°ãããšããªã©ã調æ»ããŸãã ãã²çæ§ã®ãæèŠãæ³ãããèãããã ããïŒ ãŸããç°¡åãªã¢ã³ã±ãŒãã«ãåçããã ããæ¹ã«ã¯ã ã¡ãã¬ãŒãªãªãžãã«ã®ããã«ã㣠&åŒç€Ÿã®AI掻çšã«é¢ããéå®å
¬éè³æããã¬ãŒã³ãããŸãïŒ ã¯ãã ãŠæªæ¥å€§åŠã®åŠçã察象ã«ãåŠçæ¯æŽãã宿œããŸãïŒ å®ã¯ãã¡ãã¬ãŒãšéå¬å°ã®åœé€šã«ã¯æ·±ãç¹ããããããŸãã åŒç€Ÿã§ã¯æ¯å¹Žãéçºè·ã®æ°åæ¡çšãç©æ¥µçã«è¡ã£ãŠããŸãããå®ã¯å
¬ç«ã¯ãã ãŠæªæ¥å€§åŠã®OBã»OGãè€æ°ååšç±ãã第äžç·ã§æŽ»èºããŠããã®ã§ãâš ãããªãçžããããã¯ãã ãŠæªæ¥å€§åŠã®åŠçãããå¿æŽãã¹ãã以äžã®æ¯æŽã宿œããããšã«ããããŸããã ãã±ããæ¯æŽ: 5åã®åŠçããã察象ã«ãã±ãã代ããµããŒãã 亀æµäŒ: ã«ã³ãã¡ã¬ã³ã¹2æ¥ç®ã«ãåŒç€Ÿç€Ÿå¡ïŒOB/OGå«ãïŒãšã®æèŠªäŒã«ãæåŸ
ã â»æ¬äŒç»ã¯ã察象倧åŠã®åŠçãããžåŒç€ŸOBã»OGããçŽæ¥ãé£çµ¡ãããŠããã ã圢åŒããšã£ãŠãããŸãã ãããã« RubyKaigiã¯ãåãªãæè¡ã«ã³ãã¡ã¬ã³ã¹ã§ã¯ãªããç§ãã¡ãæ¥ã
æ©æµãåããŠããRubyãšããèšèªã®æªæ¥ã圢äœãããå Žæã§ãã åœé€šã®å°ã§ãå
šåœã®Rubyistã®çãããšè°è«ãã亀æµã§ããããšãã¡ãã¬ãŒããŒã äžå楜ãã¿ã«ããŠããŸããåœæ¥ããŒã¹ã§èŠããããããã²ãããã°èŠãŸããïŒããšå£°ããããŠããã ãããšå¬ããã§ãïŒ ããã§ã¯ãåœé€šã§ãäŒãããŸãããïŒ ãŸããã¡ãã¬ãŒã§ã¯ãRubyã倧奜ããªãšã³ãžãã¢ãåéããŠããŸãïŒïŒãã¡ãããã以å€ã®ãšã³ãžãã¢è·çš®ã倧æè¿ã»å€§åéäžã§ãïŒïŒ ãŸãã¯ã«ãžã¥ã¢ã«é¢è«ã§ãã£ãã°ããã«ã話ãã§ããã®ã§ãäŒå Žã§ãäŒãã§ããªãæ¹ã¯ãã²ãã¡ãã§ã話ãããŸãããïŒãåŸ
ã¡ããŠãããŸãïŒ æ ªåŒäŒç€Ÿã¡ãã¬ãŒ æ£ç€Ÿå¡ ãšã³ãžãã¢ ã®æ±äººäžèЧ æ ªåŒäŒç€Ÿã¡ãã¬ãŒ æ£ç€Ÿå¡ ãšã³ãžãã¢ ã®æ±äººäžèЧã§ãã| HRMOS hrmos.co
ã¯ããã« ããã«ã¡ã¯ïŒã¡ãã¬ãŒDevRelã®éç°ïŒ @Shige0096 ïŒã§ãã ä»å¹Žãã€ãã«ãRubyistãã¡ã®ç¥å
ž RubyKaigi 2026 ã®å£ç¯ããã£ãŠãŸãããŸããïŒ æšå¹Žã®æçµæ¥ã«ã次ã¯åœé€šïŒããšçºè¡šãããŠãããæ¥æ¬äžå€§å€æ¯ãšçŸå³ããæµ·é®®ã𿥿¬é
ãšããŒã«ãšãããã§ã¯ãªããRubyistã®çãããšåœé€šã§ãäŒãã§ããããšããå¿åŸ
ã¡ã«ããŠããŸããð ã¡ãã¬ãŒã¯ä»å¹ŽããRubyã³ãã¥ããã£ãžã®æè¬ãšçºå±ãé¡ããã¹ãã³ãµãŒãšããŠçŸå°åå ããŸãïŒ RubyKaigi 2025 å
¥ãå£ã§ã®äžæ ã¬ããŒããå
¬éããŠããã®ã§ããã²ã芧ããã ãããšå¬ããã§ãïŒ RubyKaigi 2025 åå ã¬ããŒã - Platinum Sponsor ãšããŠåè³ããŸããïŒ | MEDLEY Developer Portal ã¯ããã« ããã«ã¡ã¯ïŒ 人æãã©ãããã©ãŒã æ¬éšãããã¯ãéçºå®€ 第äžéçºã°ã«ãŒãæå±ã®å±±äžã§ãã ã¡ãã¬ãŒã«ã¯ä»å¹Ž2æã«å
¥ç€Ÿãããšã³ãžãã¢ã§ãæ¥æ¬æå€§çŽã®å»çä»è·æ±äººãµã€ã ãžã§ãã¡ãã¬ãŒ ã®éçºãæ
åœããŠããŸãã ã¡ãã¬ãŒã¯ 4 æ 1... developer.medley.jp Rubyã¹ãã³ãµãŒãšããŠåè³ããŸãïŒ æ¬å¹Žã¯Rubyã¹ãã³ãµãŒãšããŠãããŒã¹åºå±ãšã¹ãã³ãµãŒã»ãã·ã§ã³ãéããŠRubyKaigi ãçãäžããŸãã Sponsors RubyKaigi 2026, #rubykaigi rubykaigi.org ã¹ãã³ãµãŒã»ãã·ã§ã³:å»çãã©ãããã©ãŒã æ¬éš CTOã®å®æžãç»å£ å·è¡åœ¹å¡ å»çãã©ãããã©ãŒã æ¬éšCTOã®å®æžããã¹ãã³ãµãŒã»ãã·ã§ã³ã«ç»å£ããããŸãã åŒç€Ÿã®ä»ãšããããã«ã€ããŠãã¡ãã¬ãŒã«å
¥ç€Ÿããããªããããªé
åããã£ã·ããäŒãããŸãã®ã§ãã²ãèŽè¬ãã ããïŒ ããŒã¹ã³ã³ãã³ã:AIæä»£ã®Rubyã«ã€ããŠèªããŸãããïŒäºå®ïŒ ã¡ãã¬ãŒã®ããŒã¹ã§ã¯ãçãããšãããããã®Rubyãã«ã€ããŠèããã³ã³ãã³ããšã㊠ãAIãæŽ»çšããRubyéçºã«ãããæåäœéšã»ãå°ãããšããªã©ã調æ»ããŸãã ãã²çæ§ã®ãæèŠãæ³ãããèãããã ããïŒ ãŸããç°¡åãªã¢ã³ã±ãŒãã«ãåçããã ããæ¹ã«ã¯ã ã¡ãã¬ãŒãªãªãžãã«ã®ããã«ã㣠&åŒç€Ÿã®AI掻çšã«é¢ããéå®å
¬éè³æããã¬ãŒã³ãããŸãïŒ ã¯ãã ãŠæªæ¥å€§åŠã®åŠçã察象ã«ãåŠçæ¯æŽãã宿œããŸãïŒ å®ã¯ãã¡ãã¬ãŒãšéå¬å°ã®åœé€šã«ã¯æ·±ãç¹ããããããŸãã åŒç€Ÿã§ã¯æ¯å¹Žãéçºè·ã®æ°åæ¡çšãç©æ¥µçã«è¡ã£ãŠããŸãããå®ã¯å
¬ç«ã¯ãã ãŠæªæ¥å€§åŠã®OBã»OGãè€æ°ååšç±ãã第äžç·ã§æŽ»èºããŠããã®ã§ãâš ãããªãçžããããã¯ãã ãŠæªæ¥å€§åŠã®åŠçãããå¿æŽãã¹ãã以äžã®æ¯æŽã宿œããããšã«ããããŸããã ãã±ããæ¯æŽ: 5åã®åŠçããã察象ã«ãã±ãã代ããµããŒãã 亀æµäŒ: ã«ã³ãã¡ã¬ã³ã¹2æ¥ç®ã«ãåŒç€Ÿç€Ÿå¡ïŒOB/OGå«ãïŒãšã®æèŠªäŒã«ãæåŸ
ã â»æ¬äŒç»ã¯ã察象倧åŠã®åŠçãããžåŒç€ŸOBã»OGããçŽæ¥ãé£çµ¡ãããŠããã ã圢åŒããšã£ãŠãããŸãã ãããã« RubyKaigiã¯ãåãªãæè¡ã«ã³ãã¡ã¬ã³ã¹ã§ã¯ãªããç§ãã¡ãæ¥ã
æ©æµãåããŠããRubyãšããèšèªã®æªæ¥ã圢äœãããå Žæã§ãã åœé€šã®å°ã§ãå
šåœã®Rubyistã®çãããšè°è«ãã亀æµã§ããããšãã¡ãã¬ãŒããŒã äžå楜ãã¿ã«ããŠããŸããåœæ¥ããŒã¹ã§èŠããããããã²ãããã°èŠãŸããïŒããšå£°ããããŠããã ãããšå¬ããã§ãïŒ ããã§ã¯ãåœé€šã§ãäŒãããŸãããïŒ ãŸããã¡ãã¬ãŒã§ã¯ãRubyã倧奜ããªãšã³ãžãã¢ãåéããŠããŸãïŒïŒãã¡ãããã以å€ã®ãšã³ãžãã¢è·çš®ã倧æè¿ã»å€§åéäžã§ãïŒïŒ ãŸãã¯ã«ãžã¥ã¢ã«é¢è«ã§ãã£ãã°ããã«ã話ãã§ããã®ã§ãäŒå Žã§ãäŒãã§ããªãæ¹ã¯ãã²ãã¡ãã§ã話ãããŸãããïŒãåŸ
ã¡ããŠãããŸãïŒ æ ªåŒäŒç€Ÿã¡ãã¬ãŒ æ£ç€Ÿå¡ ãšã³ãžãã¢ ã®æ±äººäžèЧ æ ªåŒäŒç€Ÿã¡ãã¬ãŒ æ£ç€Ÿå¡ ãšã³ãžãã¢ ã®æ±äººäžèЧã§ãã| HRMOS hrmos.co