ããã«ã¡ã¯ãå»çãã©ãããã©ãŒã æ¬éšã§ Product Manager ãããŠããäœè€ã§ãã2024 幎 5 æã«ã¡ãã¬ãŒã«ãžã§ã€ã³ããå»çæ©é¢åããããã¯ãéçºã«å¥èµ°ããŠããŸãã瀟å
ã§ã¯ âpapaâãå®¶ã§ã¯âããããâãšåŒã°ã坿ããããŠããŸãã 衚é¡ã®ãšãããã¡ãã¬ãŒã¯ 2024/12/5-6 ã® 2 æ¥éã«ããã£ãŠéå¬ãããã pmconf 2024 ãã«ãŽãŒã«ãã¹ãã³ãµãŒãšããŠåè³ãããŠããã ããŸãããpmconf 㯠2016 幎ããéå¬ãããŠãããProduct Manager åãã®ã«ã³ãã¡ã¬ã³ã¹ãšããŠã¯åœå
æå€§ïŒ2024 幎 6 ææç¹ïŒã®èŠæš¡ãèªããŸãããããã¯ããããžã¡ã³ãã«æºãã人ãã¡ãå
±ã«åŠã³ã»åç£ç¢ç£šããå ŽãšããŠæ°ã
ã®çºèŠã»ææŠã»èŠæ©ãå
±æãããä»å¹Žã倧å€åºæ¿ç㪠2 æ¥éãšãªããŸããã ä»å㯠Day 1 (ãªã³ã©ã€ã³é
ä¿¡)ã®èå°è£ïŒ Day 2 (äŒå ŽçŸå°)ã®æ§åããåå ããã¡ã³ããŒã®ææ³ãšããããŠçããã«ãäŒãããŸãïŒ Day 1ïŒãªã³ã©ã€ã³é
ä¿¡ïŒ 1 æ¥ç®ã¯ YouTube Live ã§ã®ãªã³ã©ã€ã³éå¬ãä»å¹Žã®ããŒã âQUEST.â ã«æ²¿ã£ãŠãæ¥ã
ã®æ¢ç©¶ããçãŸããæ¿å¯ãªçµéšãç¥èŠã 5 ãã©ãã¯ã» 40 ã»ãã·ã§ã³ã«æž¡ã£ãŠå±éãããŸããã ã¡ãã¬ãŒããã¯ç§ãç»å£ããå
¥ç€ŸçŽåŸã«ã¶ã€ãã£ãå£ãšããããä¹ãè¶ããéçšã§çºèŠãããæ°ä»» PdM ã«æ±ããããè¡åæ§åŒãã«ã€ããŠçæ§ã«ã·ã§ã¢ããâŠã€ããã ã£ãã®ã§ããâŠãªããšåœæ¥å
šã声ãåºãªããšããæ³å®å€ã®äºæ
ã«âŠãæ¥éœ CLINICS ã® Product Manager ç°æã«ãã¬ãŒã³ããé¡ãããå±éãšãªããŸããã (çªç¶ã®ä»£æç»å£ãæçŸ€ã®å®å®æã§é²ããç°æãšãæçž®ãããªé¡ããã€ã€æ¬çªäžã«æå
ã§å°æ¬ã update ããŠããç§) ãèŠèŽãã ãã£ãçæ§ãæ¬åœã«ããããšãããããŸãïŒãããŠçªç¶ã®å€æŽã«ãé¢ãããèšæ©å¿å€ã«å¯Ÿå¿ããŠãã ãã£ãéå¶ã¡ã³ããŒã®çæ§ã«ãããã®å ŽãåããŠåŸ¡ç€Œç³ãäžããŸãã ãªã Day 1 ã¯åè¿°ã®ãšãã 5 ãã©ãã¯æ§æãªã®ã§ãã©ãããéžã¶ãšãã®ä»ã¯éžã¹ãªãããšãã Product Manager ãããæææ±ºå®ãæ±ããããã®ã§ãããåŸæ¥ YouTube ã«ã¢ãŒã«ã€ãåç»ãã¢ãããããã®ã§å®å¿ããŠéžãã ã»ãã·ã§ã³ã«éäžããããšãã§ããŸããä»å¹Žã®ã¢ãŒã«ã€ãããã§ã«ã¢ãããããŠããŸãã®ã§ããã²ãèŠèŽãã ããã ãããã¯ããããŒãžã£ãŒã«ã³ãã¡ã¬ã³ã¹ / pmconf ã¡ãªã¿ã«ã¡ãã¬ãŒãæäŸããŠããæ£è
åãç·åå»çã¢ããªã CLINICS(ã¯ãªãã¯ã¹) ããå©çšãããšãäŸãã°äŒè°ã®åéã«ãªã³ã©ã€ã³èšºçã»ãªã³ã©ã€ã³æè¬æå°ãåããããã®ã¯ãã¡ããã®ããšããã®åŠæ¹è¬ãè¬å±ãã Uber Eats ã峿¥é
éããŠããããšããå€å¿ãªçããŸã«æé©ãªãµãŒãã¹ãã¹ã¿ãŒãããŸããã ãããã§ç§ãéããã«åŠæ¹è¬ãæçšããããšãã§ããéçåããåã«å£°ãåãæ»ããŸããã宣äŒã®ããã«èº«äœã匵ã£ãããšã«ããŠãããŸãã å¿ãããªã¹ã¹ã¡ã§ãã ã¡ãã¬ãŒãæ£è
åãç·åå»çã¢ããªãCLINICSãã§åŠæ¹è¬ã®åœæ¥é
éãéå§ ãUber Eats ãšã®é£æºã§ããªã³ã©ã€ã³èšºçã»æè¬æå°åŸã«å
šåœã® Pharms å°å
¥è¬å±ãéãã峿é
éãå¯èœã«ã | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ Day 2 ïŒãã«ãµãŒã«çŸœç°ç©ºæž¯ïŒ 2 æ¥ç®ã¯ãªã³ãµã€ãéå¬ã äŒå Žã¯ç©ºæž¯ã¿ãŒããã«çŽçµã®ãã«ãµãŒã«çŸœç°ç©ºæž¯ã§ããã å®å¡ 300 åãããã«è¶
ããç³èŸŒã¿ãããæ©æã«ãã£ã³ã»ã«åŸ
ã¡ã«ãªã£ãŠããŸããããããã ãã«åå ãããŠããçããã®ç±éã¯æ³å以äžã§ããã ã¡ãã¬ãŒããã¯äººæãã©ãããã©ãŒã ã»å»çãã©ãããã©ãŒã ããããã® PdM ã«æ¡çšã»åºå ±ããŒã ãå ãããã¡ã€ã³äŒå Žã®å±ç€ºããŒã¹ãäžå¿ã«å€ãã®çæ§ãšäº€æµãããŠããã ããŸããã äŒå Žã§ã¯ããã«ãã£ã¹ã«ãã·ã§ã³ã«å§ãŸããã¯ãŒã¯ã·ã§ãã圢åŒã® Open Space Technology (OST) ãããŒã¹ãå·¡ãã¹ã¿ã³ãã©ãªãŒãªã©å€æ°ã®ã€ãã³ããå±éãããè³ããšããã§ãšãã«ã®ãã·ã¥ãªããåããèŠãããšãã§ããŸããã ã¯ãŒã¯ã·ã§ããæé以å€ã¡ãã¬ãŒããŒã¹ãçµå§çæ³ã§ãäºæ¥ããããã¯ãã«ã€ããŠæ§ã
ãªè§åºŠãã質åãããã ããŸããïŒã¡ã³ããŒäžåãè³ã«ããããæ±ããã 1 æ¥ã§ããïŒã å»ç UX ã®ããããªããšããªããªãïŒã iOSDC 2024 ã DroidKaigi 2024 åæ§ãã¡ãã¬ãŒããŒã¹ã§ã¯å±éããŠãããããã¯ã矀ã®ç޹ä»ã«å ããã¢ã³ã±ãŒãããã«ãçšããŠåå è
ã®æ¹ã
ã«å»çäœéšã«é¢ãããæ©ã¿ã䌺ããŸããã pmconf 2024 ã§ã®çµæã¯ãã¡ãïŒ åŸ
ã¡æéãé·ãïŒåèšºç¥šãæ¯åæžããããåãããšãèãããã®ãé¢åïŒç
颿¢ãã«æéããããã»ãªã³ã©ã€ã³ã§äºçŽãããïŒ âŠãšããé
ç®ã«ç¥šãéãŸãçµæãšãªããŸããã ãããã®èª²é¡ã¯ç§ãã¡ã¡ãã¬ãŒãæ£è
åãã«æäŸããŠããç·åå»çã¢ããªãCLINICSãã§è§£æ±ºã»è§£æ¶ãç®æããŠãããã®ã§ããã§ã«æäŸæžã¿ã®ãªã³ã©ã€ã³äºçŽã»äºåå蚺ã»ãã£ãã·ã¥ã¬ã¹æ±ºæžçã®ã話ããããŠããã ããšã ãããªã«æ©èœãããã§ãã ãã ãã¡ããã¡ã䟿å©ïŒ ããšããåå¿ãããã ãããšãå€ãã£ãã§ãã å¬ããåé¢ã䟡å€ãå±ãããããã®ã¢ã¯ã·ã§ã³ããã£ãšç©ã¿éããŠãããªããŠã¯âŠãšçæããæéã§ããããŸããã çµããã« ã¡ãã¬ãŒã¯ããããããå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ããããã«ãæ§ã
ãªãããã¯ãã»ãµãŒãã¹ãæ§æ³ããéçºããæäŸããŠãããŸãã æåŸã«æ¹ããŠãpmconf 2024 ã®éå¶ã®çæ§ãç»å£ãããã¹ããŒã«ãŒã®çæ§ãåå è
ã®çæ§ããç²ãæ§ã§ããïŒãããŠãåºæ¿ç㪠2 æ¥éãããããšãããããŸããïŒ ã¡ãã¬ãŒã§ã¯äžç·ã«åã仲éãåéããŠããŸã ãã®èšäºãããŒã¹ãªã©ã§ã¡ãã¬ãŒã«èå³ãæã£ãŠãã ãã£ãçããŸããã²ãé£çµ¡ããåŸ
ã¡ããŠãããŸããã«ãžã¥ã¢ã«é¢è«ãªã©ã®ã¢ã¬ã³ãžãå¯èœã§ãã®ã§ããæ°è»œã«ãåãåãããã ããïŒ åéã®äžèЧ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã®æ¡çšæ
å ±ã¯ãã¡ãããã確èªãã ããã www.medley.jp
ããã«ã¡ã¯ãå»çãã©ãããã©ãŒã æ¬éšã§ Product Manager ãããŠããäœè€ã§ãã2024 幎 5 æã«ã¡ãã¬ãŒã«ãžã§ã€ã³ããå»çæ©é¢åããããã¯ãéçºã«å¥èµ°ããŠããŸãã瀟å
ã§ã¯ âpapaâãå®¶ã§ã¯âããããâãšåŒã°ã坿ããããŠããŸãã 衚é¡ã®ãšãããã¡ãã¬ãŒã¯ 2024/12/5-6 ã® 2 æ¥éã«ããã£ãŠéå¬ãããã pmconf 2024 ãã«ãŽãŒã«ãã¹ãã³ãµãŒãšããŠåè³ãããŠããã ããŸãããpmconf 㯠2016 幎ããéå¬ãããŠãããProduct Manager åãã®ã«ã³ãã¡ã¬ã³ã¹ãšããŠã¯åœå
æå€§ïŒ2024 幎 6 ææç¹ïŒã®èŠæš¡ãèªããŸãããããã¯ããããžã¡ã³ãã«æºãã人ãã¡ãå
±ã«åŠã³ã»åç£ç¢ç£šããå ŽãšããŠæ°ã
ã®çºèŠã»ææŠã»èŠæ©ãå
±æãããä»å¹Žã倧å€åºæ¿ç㪠2 æ¥éãšãªããŸããã ä»å㯠Day 1 (ãªã³ã©ã€ã³é
ä¿¡)ã®èå°è£ïŒ Day 2 (äŒå ŽçŸå°)ã®æ§åããåå ããã¡ã³ããŒã®ææ³ãšããããŠçããã«ãäŒãããŸãïŒ Day 1ïŒãªã³ã©ã€ã³é
ä¿¡ïŒ 1 æ¥ç®ã¯ YouTube Live ã§ã®ãªã³ã©ã€ã³éå¬ãä»å¹Žã®ããŒã âQUEST.â ã«æ²¿ã£ãŠãæ¥ã
ã®æ¢ç©¶ããçãŸããæ¿å¯ãªçµéšãç¥èŠã 5 ãã©ãã¯ã» 40 ã»ãã·ã§ã³ã«æž¡ã£ãŠå±éãããŸããã ã¡ãã¬ãŒããã¯ç§ãç»å£ããå
¥ç€ŸçŽåŸã«ã¶ã€ãã£ãå£ãšããããä¹ãè¶ããéçšã§çºèŠãããæ°ä»» PdM ã«æ±ããããè¡åæ§åŒãã«ã€ããŠçæ§ã«ã·ã§ã¢ããâŠã€ããã ã£ãã®ã§ããâŠãªããšåœæ¥å
šã声ãåºãªããšããæ³å®å€ã®äºæ
ã«âŠãæ¥éœ CLINICS ã® Product Manager ç°æã«ãã¬ãŒã³ããé¡ãããå±éãšãªããŸããã (çªç¶ã®ä»£æç»å£ãæçŸ€ã®å®å®æã§é²ããç°æãšãæçž®ãããªé¡ããã€ã€æ¬çªäžã«æå
ã§å°æ¬ã update ããŠããç§) ãèŠèŽãã ãã£ãçæ§ãæ¬åœã«ããããšãããããŸãïŒãããŠçªç¶ã®å€æŽã«ãé¢ãããèšæ©å¿å€ã«å¯Ÿå¿ããŠãã ãã£ãéå¶ã¡ã³ããŒã®çæ§ã«ãããã®å ŽãåããŠåŸ¡ç€Œç³ãäžããŸãã ãªã Day 1 ã¯åè¿°ã®ãšãã 5 ãã©ãã¯æ§æãªã®ã§ãã©ãããéžã¶ãšãã®ä»ã¯éžã¹ãªãããšãã Product Manager ãããæææ±ºå®ãæ±ããããã®ã§ãããåŸæ¥ YouTube ã«ã¢ãŒã«ã€ãåç»ãã¢ãããããã®ã§å®å¿ããŠéžãã ã»ãã·ã§ã³ã«éäžããããšãã§ããŸããä»å¹Žã®ã¢ãŒã«ã€ãããã§ã«ã¢ãããããŠããŸãã®ã§ããã²ãèŠèŽãã ããã ãããã¯ããããŒãžã£ãŒã«ã³ãã¡ã¬ã³ã¹ / pmconf ã¡ãªã¿ã«ã¡ãã¬ãŒãæäŸããŠããæ£è
åãç·åå»çã¢ããªã CLINICS(ã¯ãªãã¯ã¹) ããå©çšãããšãäŸãã°äŒè°ã®åéã«ãªã³ã©ã€ã³èšºçã»ãªã³ã©ã€ã³æè¬æå°ãåããããã®ã¯ãã¡ããã®ããšããã®åŠæ¹è¬ãè¬å±ãã Uber Eats ã峿¥é
éããŠããããšããå€å¿ãªçããŸã«æé©ãªãµãŒãã¹ãã¹ã¿ãŒãããŸããã ãããã§ç§ãéããã«åŠæ¹è¬ãæçšããããšãã§ããéçåããåã«å£°ãåãæ»ããŸããã宣äŒã®ããã«èº«äœã匵ã£ãããšã«ããŠãããŸãã å¿ãããªã¹ã¹ã¡ã§ãã ã¡ãã¬ãŒãæ£è
åãç·åå»çã¢ããªãCLINICSãã§åŠæ¹è¬ã®åœæ¥é
éãéå§ ãUber Eats ãšã®é£æºã§ããªã³ã©ã€ã³èšºçã»æè¬æå°åŸã«å
šåœã® Pharms å°å
¥è¬å±ãéãã峿é
éãå¯èœã«ã | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ Day 2 ïŒãã«ãµãŒã«çŸœç°ç©ºæž¯ïŒ 2 æ¥ç®ã¯ãªã³ãµã€ãéå¬ã äŒå Žã¯ç©ºæž¯ã¿ãŒããã«çŽçµã®ãã«ãµãŒã«çŸœç°ç©ºæž¯ã§ããã å®å¡ 300 åãããã«è¶
ããç³èŸŒã¿ãããæ©æã«ãã£ã³ã»ã«åŸ
ã¡ã«ãªã£ãŠããŸããããããã ãã«åå ãããŠããçããã®ç±éã¯æ³å以äžã§ããã ã¡ãã¬ãŒããã¯äººæãã©ãããã©ãŒã ã»å»çãã©ãããã©ãŒã ããããã® PdM ã«æ¡çšã»åºå ±ããŒã ãå ãããã¡ã€ã³äŒå Žã®å±ç€ºããŒã¹ãäžå¿ã«å€ãã®çæ§ãšäº€æµãããŠããã ããŸããã äŒå Žã§ã¯ããã«ãã£ã¹ã«ãã·ã§ã³ã«å§ãŸããã¯ãŒã¯ã·ã§ãã圢åŒã® Open Space Technology (OST) ãããŒã¹ãå·¡ãã¹ã¿ã³ãã©ãªãŒãªã©å€æ°ã®ã€ãã³ããå±éãããè³ããšããã§ãšãã«ã®ãã·ã¥ãªããåããèŠãããšãã§ããŸããã ã¯ãŒã¯ã·ã§ããæé以å€ã¡ãã¬ãŒããŒã¹ãçµå§çæ³ã§ãäºæ¥ããããã¯ãã«ã€ããŠæ§ã
ãªè§åºŠãã質åãããã ããŸããïŒã¡ã³ããŒäžåãè³ã«ããããæ±ããã 1 æ¥ã§ããïŒã å»ç UX ã®ããããªããšããªããªãïŒã iOSDC 2024 ã DroidKaigi 2024 åæ§ãã¡ãã¬ãŒããŒã¹ã§ã¯å±éããŠãããããã¯ã矀ã®ç޹ä»ã«å ããã¢ã³ã±ãŒãããã«ãçšããŠåå è
ã®æ¹ã
ã«å»çäœéšã«é¢ãããæ©ã¿ã䌺ããŸããã pmconf 2024 ã§ã®çµæã¯ãã¡ãïŒ åŸ
ã¡æéãé·ãïŒåèšºç¥šãæ¯åæžããããåãããšãèãããã®ãé¢åïŒç
颿¢ãã«æéããããã»ãªã³ã©ã€ã³ã§äºçŽãããïŒ âŠãšããé
ç®ã«ç¥šãéãŸãçµæãšãªããŸããã ãããã®èª²é¡ã¯ç§ãã¡ã¡ãã¬ãŒãæ£è
åãã«æäŸããŠããç·åå»çã¢ããªãCLINICSãã§è§£æ±ºã»è§£æ¶ãç®æããŠãããã®ã§ããã§ã«æäŸæžã¿ã®ãªã³ã©ã€ã³äºçŽã»äºåå蚺ã»ãã£ãã·ã¥ã¬ã¹æ±ºæžçã®ã話ããããŠããã ããšã ãããªã«æ©èœãããã§ãã ãã ãã¡ããã¡ã䟿å©ïŒ ããšããåå¿ãããã ãããšãå€ãã£ãã§ãã å¬ããåé¢ã䟡å€ãå±ãããããã®ã¢ã¯ã·ã§ã³ããã£ãšç©ã¿éããŠãããªããŠã¯âŠãšçæããæéã§ããããŸããã çµããã« ã¡ãã¬ãŒã¯ããããããå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ããããã«ãæ§ã
ãªãããã¯ãã»ãµãŒãã¹ãæ§æ³ããéçºããæäŸããŠãããŸãã æåŸã«æ¹ããŠãpmconf 2024 ã®éå¶ã®çæ§ãç»å£ãããã¹ããŒã«ãŒã®çæ§ãåå è
ã®çæ§ããç²ãæ§ã§ããïŒãããŠãåºæ¿ç㪠2 æ¥éãããããšãããããŸããïŒ ã¡ãã¬ãŒã§ã¯äžç·ã«åã仲éãåéããŠããŸã ãã®èšäºãããŒã¹ãªã©ã§ã¡ãã¬ãŒã«èå³ãæã£ãŠãã ãã£ãçããŸããã²ãé£çµ¡ããåŸ
ã¡ããŠãããŸããã«ãžã¥ã¢ã«é¢è«ãªã©ã®ã¢ã¬ã³ãžãå¯èœã§ãã®ã§ããæ°è»œã«ãåãåãããã ããïŒ åéã®äžèЧ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã®æ¡çšæ
å ±ã¯ãã¡ãããã確èªãã ããã www.medley.jp
ãã¡ãã®èšäºã¯ MedleyïŒã¡ãã¬ãŒïŒ Advent Calendar 2024 ã®12æ¥ç®ã®èšäºã§ãã ã¯ããã« ã¯ãããŸããŠãå»çãã©ãããã©ãŒã äºæ¥éšããããã¯ãéçºå®€ãDentiséçºã°ã«ãŒãã§ã°ã«ãŒããããžã£ãŒãããŠããç§ïŒX: @Kirika_K2 ïŒãšç³ããŸãã ã¡ãã¬ãŒã«ã¯2019幎ã«å
¥ç€Ÿãã以æ¥ãæ¯ç§å»é¢åãã®ã¯ã©ãŠããµãŒãã¹ Dentis ã®ç«ã¡äžãããããã¯ãéçºã«æºãã£ãŠããŸãã Dentisã¯å»çæ©é¢ã®äºçŽã»åä»ã»å蚺ã»ã«ã«ãã®èšé²ã»äŒèšæ¥åã»ä¿éºè«æ±æ¥åãŸã§ãããŒã¿ã«ã§ãµããŒãããã¯ã©ãŠãã·ã¹ãã ã§ãäž»ã«Ruby on RailsãšReactã§äœãããŠããŸãã æ¥ã
æ¯ç§å»çãã¡ã€ã³ã§ã客æ§ã®å£°ã«åãåããªãããå»çDXãæšé²ããŠããŸãã çå®ã«æé·ããŠãããããã¯ãã§ãã®ã§ããããèå³ãããŸããããã«ãžã¥ã¢ã«é¢è«çåãä»ããŠãããŸãã®ã§ãã声ãããã ãããïŒå®£äŒçµïŒ æ®æ®µã¯ãããã¯ãéçºã«åŸäºããŠããŸããããã©ã€ããŒãã§ã¯å°åRubyã³ãã¥ããã£ã®è¡šåé.rbãäž»å¬ããŠãããŸããŠãã¡ãã¬ãŒã§ãå°åRubyã³ãã¥ããã£æ¯æŽãšãã圢ã§ã衚åé.rbã®ã¹ãã³ãµãŒäŒæ¥ãšããŠãååããŠããã£ãŠããŸãã ä»åã®Advent Calendarã§ã¯ãäžå°åRubyã³ãã¥ããã£ãªãŒã¬ãã€ã¶ãŒã®ç«å ŽããèŠãã¡ãã¬ãŒã®å°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠæžãããšæããŸãã 衚åé.rbãšç§ã®é¢ãã 衚åé.rbã¯2015幎é ããå§ãŸã£ãã衚åéåšèŸºã®ãšã³ãžãã¢ãéãŸã£ãŠRubyã®åšèŸºæè¡ã«é¢ããæ
å ±äº€æãããå°åRubyã³ãã¥ããã£ã§ãã æ¯æç¬¬ïŒæšææ¥ã«éå¬ããŠãããæ¯æ1人10åçšåºŠã®ããŒã¯ã»ãã·ã§ã³ã6ãïŒæ¬ãšäº€æµäŒãè¡ã£ãŠããŸãã äžéšäŸå€ããããé嬿¥ãç¥æ¥çãšéãªãå Žåã¯ã1é±éããããŠç¬¬2æšææ¥ã«éå¬ããŠããŸãã ã¡ããã©ä»æã®ç¬¬1æšææ¥ã¯å³¶æ ¹çæŸæ±åžã§ãRubyWorld Conference 2025ãéå¬ãããŠããã衚åé.rbã«æ®æ®µæ¥ãŠããã£ãŠããå€ãã®æ¹ãæŸæ±ã«éåããŠããã®ã§ã第2æšææ¥ã®éå¬ã«ãªããŸããïŒã€ãŸã仿¥ã§ãïŒïŒ æ¯æç¬¬2é±ã¯ãåŸã»ã©ã話ããå
æ¬æš.rbã宿éå¬ãããŠãããååéå¬ãšãã圢ã§ã®éå¬ããŠããŸãã ã©ã¡ããæ¥œããã³ãã¥ããã£ã§ãã®ã§ãæ¯ééã³ã«æ¥ãŠãã ããã 衚åé.rb https://omotesandorb.connpass.com/ å
æ¬æš.rb https://roppongirb.connpass.com/ ç§ã¯ã2018幎é ããéå¶ã«é¢ããå§ãããã®åŸã¡ãã¬ãŒã«å
¥ç€Ÿããè·å Žãå
æ¬æšã«å€ãã£ãåŸãç¶ããŠããŸããã ã³ããçŠã«ãããªã³ã©ã€ã³éå¬ç§»è¡ããããŠãªãã©ã€ã³éå¬ã®åŸ©æŽ» 2020幎ã«ã³ããçŠã«ãªãããªãã©ã€ã³ã§ã®éå¬ãã§ããªããªãå幎ã»ã©éå¬ãèŠéã£ãŠããããšããããŸãããããªã³ã©ã€ã³éå¬ã«ç§»è¡ããŠéå¬ããŠããŸããã ã¡ããã©ã³ããçŠã§æ··ä¹±ããŠããé ãã³ãã¥ããã£ã掻åäŒæ¢ã«ãããããªã³ã©ã€ã³éå¬ã«ç§»è¡ãããæ©ã¿ãŸããããäžåºŠäžæ¢ã«ããŠããŸããšåéãããã£ããã倱ã£ãŠããŸãå¯èœæ§ããã£ãããããããŸã§éãã®é »åºŠã§éå¬ããããšã«æ±ºããŸããã ãŸããªã³ã©ã€ã³ã«ç§»è¡ããã«ããã£ãŠãããããäŒãªã©ããããŸã§ãšç°ãªã圢åŒã§ã®éå¬ãèããŸããããããã€ãã®ã³ãã¥ããã£ããªã³ã©ã€ã³ã«ç§»è¡ããŠããäžãããŒã¯ã»ãã·ã§ã³ãããã³ãã¥ããã£ã¯è²ŽéããšããæèŠãããã ãããããŸã§éãã®åœ¢åŒã§é²ããŠããããšã«ããŸããã ãªã³ã©ã€ã³éå¬ã®æã¯äººã®éãŸããè¯ããªãæãããã5åãããã§éå¬ããããšããããŸããããæ¯å誰ããçºè¡šãã¿ãæã¡èŸŒãã§ããããŸãçºè¡šãå°ãªãã£ãæ¥ã¯ãå°äººæ°ã§äœã£ãæéããã£ã¹ã«ãã·ã§ã³ã«å
ãŠãããšãã§ããã®ã§ãããã¯ããã§é¢çœã¿ããããŸããã ãŸãæ®æ®µé æ¹ã§è¡šåé.rbã«åå ã§ããªããããªæ¹ã«ãåå ããŠããã ããŠããã®ã§ãä»ã衚åé.rbãç¶ããŠããã®ã¯ãåœæå°äººæ°ã§ãéåããªãããã«ã³ãã¥ããã£ãæ¯ããŠãã ãã£ãæ¹ã
ã®ãé°ã§ãããšãŠããããããããšã§ããã 埡åç¥ã®ãšãããã³ããçŠã¯é·ãç¶ãããšã«ãªãããªã³ã©ã€ã³ã§ã®éå¬ã¯2020幎11æãã2023幎6æãŸã§è¡ãããŸããã RubyKaigiããªãã©ã€ã³éå¬ã«æ»ãã2023å¹Žã®æŸæ¬ã§ã®éå¬ããæ±äº¬ã«æ»ã£ãåŸã衚åé.rbããªãã©ã€ã³ã«æ»ãããšãèãå§ããŸããã ãã®éã«å¿
èŠã«ãªãã®ãéå¬ããäŒå Žã§ããåœæã¯ãŸã ãªãã©ã€ã³ã§äŒå ŽãæäŸããŠããã ããå Žæã¯å€ããªãããŸãæåã«çžè«ããã®ã¯èªåã®å€åå
ã§ããã¡ãã¬ãŒã§ããã ã¡ãã¬ãŒã§ã¯éå»ã«Rubyã³ãã¥ããã£ã®ããã«äŒå ŽæäŸãããããšã¯ãããŸããã§ããããç§ãå°åRubyã³ãã¥ããã£ã®äž»å¬ãç¶ç¶ããŠããããšããããæŽ»åãåŸæŒãããŠããã ããå¿«ãäŒå ŽæäŸãšæèŠªäŒã®äºç®ãã€ããŠããããŸããã 衚åé.rb #87 ã§ã¯åŒç€ŸãäŒå ŽæäŸãããŠããã ããŠãããŸã! #omotesandorb #ruby https://t.co/PDmvLeqLPN #omotesandorb â ã¡ãã¬ãŒ ãã£ãããããŒå
¬åŒ (@medley_dev) June 16, 2023 ãããããããšã«ããã®åã®è¡šåé.rbã«åå ããŠãã ãã£ãæ¹ã®äžããããèªåã®äŒç€Ÿã§ãäŒå ŽæäŸãããããšããç³ãåºãåããçŸåšã®è¡šåé.rbã¯10瀟ãããã®äŒæ¥ããäŒå Žã¹ãã³ãµãŒããããŠããã ããæ¯åéå¬äŒå Žãå€ããªãããç¶ç¶ããŠããŸãã ãããŠãä»å¹Ž2024幎8æã«è¡šåé.rbã¯ãã§ãã100åç®ã®éå¬ãè¿ããŸããã æ¬åœã«æ§ã
ãªäººã«æ¯ããããŠéå¬ã§ãã100åéå¬ã ãªããšæããŸãã 衚åérb 100åããïŒïŒððððð #omotesandorb #roppongirb pic.twitter.com/1qe2aJWMcZ â ãã£ããŒðºãã¯ãªã³ã¯EM (@kuronekopunk) August 1, 2024 å
æ¬æš.rbã®åŸ©æŽ»ãšã¡ãã¬ãŒãšã®é¢ãã ã¡ããã©ä»å¹Žã®ã¯ãããããã®é ã«ã衚åé.rbã«åå ãããŠããryoskãã(X: @ryosk7 )ããå
æ¬æš.rbãåå§åãããããšãã話ããããäŒå Žãæ¢ããŠãããšãã話ããããŸããã å
æ¬æš.rbã¯å
æ¬æšåšèŸºã®äŒæ¥ã§åããšã³ãžãã¢ãéãŸãRubyã³ãã¥ããã£ã§ãã³ããåãŸã§ã¯æã
éå¬ãããŠããããã§ããããã¡ããã³ããã§äŒæ¢ããŠããã³ãã¥ããã£ã§ããã ã¡ãã¬ãŒã¯å
æ¬æšã®äŒæ¥ãšããããšãããã衚åé.rbåæ§ã«å
æ¬æš.rbãæ¯æŽããŠããããããšããããšã§äŒç€Ÿã«çžè«ãããšããããã¡ããäŒå ŽæäŸãšæèŠªäŒäºç®ãã€ããŠããããããšã«ãªããŸããã ãã®æã¡ãã¬ãŒã¯RubyKaigi 2024ã®Rubyã¹ãã³ãµãŒãšããŠåè³ããŠãããæçµæ¥ã®åºèª¿è¬æŒåã®ã¹ãã³ãµãŒã»ãã·ã§ã³æ ãããã£ãã¿ã€ãã³ã°ã ã£ããããã©ãããªããç倧ã«å®£äŒããŠãããããšããããšã§ãåŒç€ŸVPoEã®å±±åŽã«ãå°å.rbæ¯æŽã®ä»¶ã«ã€ããŠç޹ä»ããŠããããŸããã ãã ããŸçºè¡šããããŸãããã Roppongi.rb ã埩掻ããŸãïŒïŒïŒð å
æ¬æšåšèŸºã®äŒæ¥ããã®ãåãåããŠãªãã©ã€ã³éå¬ãããŸãã 6æ13æ¥ã¯ã¡ãã¬ãŒããã®ãªãã£ã¹ããåãããŸãã ããããconnpassã®æ¹ãå±éããŸãïŒ ãããããé¡ãããŸãð #rubykaigi https://t.co/zo2t6KGPrj â ryosk7ðŠ (@ryosk7) May 17, 2024 RubyKaigi 2024 ã« Ruby Sponsor ãšããŠåè³ããŸããïŒ - MEDLEY Developers Portal ãã以æ¥ãå
æ¬æš.rbã¯ã¡ãã¬ãŒãå«ã4ç€Ÿã§æ1åã®å®æéå¬ããŠããŸãã ã¡ãã¬ãŒããã®ãªãã£ã¹ã«çããŸããïŒ ä»æ¥ã¯ãã¡ãã§Roppongi.rbãè¡ããŸãã #roppongirb pic.twitter.com/UioFP3FEyY â ryosk7ðŠ (@ryosk7) June 13, 2024 å°åRubyã³ãã¥ããã£æ¯æŽã«äŒŽããããžãã£ããªå¹æ ãã®ãããªæŽ»åãç¶ããŠããŠãäŒç€Ÿã«ã©ã®ãããªå€åããã£ããã«ã€ããŠè§ŠããããšæããŸãã ãŸã1ã€ç®ã¯ãæ®æ®µã®ä»äºã§äŒããªã瀟å
ã®äººãã¡ãšç€Ÿå€ã®ã€ãã³ãã§é¡ãåãããããã«ãªã£ããããšã§ãã 2022幎RubyKaigiã®æ§åããã®å¹Žã¯ã³ããäŒæ¢ããã®ãªããŒããšããããšããããããŒã¹åºå±ããªãã£ãã®ã§ãèªåããåå ããŠãªãã£ã 2023幎RubyKaigiã®æ§åãäŒå Žã®æ§åãèŠãŠããŠæ¬²ãããšèšãããè¥æãšã³ãžãã¢ãšãå®ã¯ãã®æåçãæ®ã£ãŠããã£ã人ãããã®åŸæ°åãšããŠã¡ãã¬ãŒã«å
¥ããšãããã©ã¯ã«ãèµ·ããŸãã 2024幎RubyKaigiã®æ§åãã¹ãã³ãµãŒããŒã¹ã«ãŠ ç€Ÿå
ã§Rubyã®ã€ãã³ããåç¥ããããã«ãªã£ãŠãããåå ããŠããã人ãå¢ããŸããã å
æ¥ã®Kaigi on Railsã§ããæ¥åãšã¯é¢ä¿ãªãæ¥ããšèšã人éã§éãŸãäžå¹ããããå€åãæããéšåã§ããããŸããã ããäžã€ã¯ããã¯ã瀟å€ãžã®èªç¥ã§ãä»å¹Žã®RubyKaigi 2024ã§ã¯Rubyã¹ãã³ãµãŒã§ããŒã¹ãåºããŠããã®ã§ãããã衚åé.rbã§äŒç€Ÿã«è¡ã£ãããšããããŸãããšæããŠãã ããäººãæ°åããã£ããã£ãããä»å¹Žå
¥ç€Ÿãããæ¹ãã衚åé.rbã«åå ããããšããããŸãããšæããŠãã ãã£ãããå°ãªãããããžãã£ããªåŽé¢ããããªãããšæããããšããããŸããããããã£ã声ã宿çã«èããã®ã¯ã¹ãã³ãµãŒãããŠããåŽãšããŠã¯ãšãŠãå¬ããã§ãã å°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ãã ããŠããããŸã§ã¯ã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠã話ããŠããŸããã ããããã¯ç§ã®ææã«ã€ããŠæžããŸããããããå
ã¯ç§ããªãŒã¬ãã€ã¶ãŒãšããŠæ®æ®µã³ãã¥ããã£æŽ»åã«ã€ããŠèããŠããããšã§ãã®ã§ãç¹æ®µäŒç€ŸããäœãèšãããŠãããšããããšã§ã¯ãããŸããã誀解ãªããããé¡ãããŸãïŒç¬ äŒç€ŸããèŠããšãå°å.rbã®ã¹ãã³ãµãŒããããŸããïŒããå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããšãå°å.rbãéå¬ããŸããïŒããšãã話ã§çµããã®ã§ãããå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããã€ã€ãäŒç€ŸãšããŠå°å.rbã®æ¯æŽãããããšããç«å Žã§ã¿ããšãå°ãéã£ãèŠãæ¹ã«ãªããŸãã äŒæ¥ããããã£ãã¹ãã³ãµãŒããè¡ãéã«ã¯ãäžå®ã®è²»çšå¯Ÿå¹æãèããå¿
èŠãããããã§ãã ç§ãã¹ãã³ãµãŒãããåŽã®ç«å Žããããããã£ãäºæ
ãæãã«ããã°ããç¥å床åäžã®ããã«ç©æ¥µçã«è¡ãã¹ãããæ¡çšé¢ã«ãå°ãªãããããžãã£ãã«åããŠããããšäž»åŒµããããšã¯ã§ããŸãããå®éãããã£ãåŽé¢ã¯ãããšæããŸãããããããããã©ã®çšåºŠãã©ã¹ã«åããŠããã®ããæ£ããèšæž¬ããæ¹æ³ããªããããåºæ¬çã«ã¯ã³ãã¥ããã£ã¯ãã©ã³ãã£ã¢ã«è¿ãåœ¢ã§æ¯æŽããŠãããããšã«ãªããŸãã ãããã£ããã®ã¯ãé·ãç¶ããšã¯éããŸããããæ®æ®µãæ¯æŽããã ããŠããäŒç€Ÿã®çªå£æ
åœã®æ¹ããæ±ºæžè²¬ä»»è
ãå€ããã ãã§ç¶æ³ã¯å€ãããŸãã ããã«ã€ããŠã¯ããªãŒã¬ãã€ã¶ãŒãšããŠã¯ä»æ¹ãªããã®ãšèããŠãããã³ãã¥ããã£ãæç¶å¯èœãªãã®ã«ããããã«ãæå€§éåªåãããå¿
èŠããããšèããŠããŸãã 以å衚åé.rb 100åã®ãšãã«ãã衚åé.rb 100åã«å¯ããŠããšããã¿ã€ãã«ã§ããã³ãã¥ããã£ãç¶ç¶ããŠããããã«ã¯ã©ãããã°ãããããšããã話ããããŠããã ããŸããã ãã®äžã§ãã³ãã¥ããã£ãç¶ç¶ããããã®3èŠçŽ ãäž»å¬è
ã®ããæ°ã»ã¹ãã³ãµãŒãäŒæ¥ã»åå è
ãã®3ã€ãæããã³ãã¥ããã£ãé·ãç¶ãããã«ã©ãããã¹ããããšããã話ããããŠããã ããŸããã ã衚åé.rb 100åã«å¯ããŠã ã¡ãã¬ãŒãçŸåšã¯å°åRubyã³ãã¥ããã£ãç¡åã§å¿æŽããŠããç«å Žã§ã¯ãããŸããããããæªæ¥æ°žå«ç¶ããã¯åãããŸãããããå¯èœãªéã鷿鿝æŽã§ããããã«ãäžå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒãšããŠããããŠäŒç€Ÿã®äžã®äººãšããŠãåªåããããšæã£ãŠããŸãã ãŸãšã å°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠæžãããŠããã ããŸããã ã¡ãã¬ãŒã§ã¯ã衚åé.rbãšå
æ¬æš.rbã®å°åRubyã³ãã¥ããã£ã®æ¯æŽãããŠããã宿çã«ã¡ãã¬ãŒã§ãéå¬ããŠãããŸãã ããããèå³ãããŸãããæ¯ééã³ã«æ¥ãŠãã ããã 衚åé.rb https://omotesandorb.connpass.com/ å
æ¬æš.rb https://roppongirb.connpass.com/
ãã¡ãã®èšäºã¯ MedleyïŒã¡ãã¬ãŒïŒ Advent Calendar 2024 ã®12æ¥ç®ã®èšäºã§ãã ã¯ããã« ã¯ãããŸããŠãå»çãã©ãããã©ãŒã äºæ¥éšããããã¯ãéçºå®€ãDentiséçºã°ã«ãŒãã§ã°ã«ãŒããããžã£ãŒãããŠããç§ïŒX: @Kirika_K2 ïŒãšç³ããŸãã ã¡ãã¬ãŒã«ã¯2019幎ã«å
¥ç€Ÿãã以æ¥ãæ¯ç§å»é¢åãã®ã¯ã©ãŠããµãŒãã¹ Dentis ã®ç«ã¡äžãããããã¯ãéçºã«æºãã£ãŠããŸãã Dentisã¯å»çæ©é¢ã®äºçŽã»åä»ã»å蚺ã»ã«ã«ãã®èšé²ã»äŒèšæ¥åã»ä¿éºè«æ±æ¥åãŸã§ãããŒã¿ã«ã§ãµããŒãããã¯ã©ãŠãã·ã¹ãã ã§ãäž»ã«Ruby on RailsãšReactã§äœãããŠããŸãã æ¥ã
æ¯ç§å»çãã¡ã€ã³ã§ã客æ§ã®å£°ã«åãåããªãããå»çDXãæšé²ããŠããŸãã çå®ã«æé·ããŠãããããã¯ãã§ãã®ã§ããããèå³ãããŸããããã«ãžã¥ã¢ã«é¢è«çåãä»ããŠãããŸãã®ã§ãã声ãããã ãããïŒå®£äŒçµïŒ æ®æ®µã¯ãããã¯ãéçºã«åŸäºããŠããŸããããã©ã€ããŒãã§ã¯å°åRubyã³ãã¥ããã£ã®è¡šåé.rbãäž»å¬ããŠãããŸããŠãã¡ãã¬ãŒã§ãå°åRubyã³ãã¥ããã£æ¯æŽãšãã圢ã§ã衚åé.rbã®ã¹ãã³ãµãŒäŒæ¥ãšããŠãååããŠããã£ãŠããŸãã ä»åã®Advent Calendarã§ã¯ãäžå°åRubyã³ãã¥ããã£ãªãŒã¬ãã€ã¶ãŒã®ç«å ŽããèŠãã¡ãã¬ãŒã®å°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠæžãããšæããŸãã 衚åé.rbãšç§ã®é¢ãã 衚åé.rbã¯2015幎é ããå§ãŸã£ãã衚åéåšèŸºã®ãšã³ãžãã¢ãéãŸã£ãŠRubyã®åšèŸºæè¡ã«é¢ããæ
å ±äº€æãããå°åRubyã³ãã¥ããã£ã§ãã æ¯æç¬¬ïŒæšææ¥ã«éå¬ããŠãããæ¯æ1人10åçšåºŠã®ããŒã¯ã»ãã·ã§ã³ã6ãïŒæ¬ãšäº€æµäŒãè¡ã£ãŠããŸãã äžéšäŸå€ããããé嬿¥ãç¥æ¥çãšéãªãå Žåã¯ã1é±éããããŠç¬¬2æšææ¥ã«éå¬ããŠããŸãã ã¡ããã©ä»æã®ç¬¬1æšææ¥ã¯å³¶æ ¹çæŸæ±åžã§ãRubyWorld Conference 2025ãéå¬ãããŠããã衚åé.rbã«æ®æ®µæ¥ãŠããã£ãŠããå€ãã®æ¹ãæŸæ±ã«éåããŠããã®ã§ã第2æšææ¥ã®éå¬ã«ãªããŸããïŒã€ãŸã仿¥ã§ãïŒïŒ æ¯æç¬¬2é±ã¯ãåŸã»ã©ã話ããå
æ¬æš.rbã宿éå¬ãããŠãããååéå¬ãšãã圢ã§ã®éå¬ããŠããŸãã ã©ã¡ããæ¥œããã³ãã¥ããã£ã§ãã®ã§ãæ¯ééã³ã«æ¥ãŠãã ããã 衚åé.rb https://omotesandorb.connpass.com/ å
æ¬æš.rb https://roppongirb.connpass.com/ ç§ã¯ã2018幎é ããéå¶ã«é¢ããå§ãããã®åŸã¡ãã¬ãŒã«å
¥ç€Ÿããè·å Žãå
æ¬æšã«å€ãã£ãåŸãç¶ããŠããŸããã ã³ããçŠã«ãããªã³ã©ã€ã³éå¬ç§»è¡ããããŠãªãã©ã€ã³éå¬ã®åŸ©æŽ» 2020幎ã«ã³ããçŠã«ãªãããªãã©ã€ã³ã§ã®éå¬ãã§ããªããªãå幎ã»ã©éå¬ãèŠéã£ãŠããããšããããŸãããããªã³ã©ã€ã³éå¬ã«ç§»è¡ããŠéå¬ããŠããŸããã ã¡ããã©ã³ããçŠã§æ··ä¹±ããŠããé ãã³ãã¥ããã£ã掻åäŒæ¢ã«ãããããªã³ã©ã€ã³éå¬ã«ç§»è¡ãããæ©ã¿ãŸããããäžåºŠäžæ¢ã«ããŠããŸããšåéãããã£ããã倱ã£ãŠããŸãå¯èœæ§ããã£ãããããããŸã§éãã®é »åºŠã§éå¬ããããšã«æ±ºããŸããã ãŸããªã³ã©ã€ã³ã«ç§»è¡ããã«ããã£ãŠãããããäŒãªã©ããããŸã§ãšç°ãªã圢åŒã§ã®éå¬ãèããŸããããããã€ãã®ã³ãã¥ããã£ããªã³ã©ã€ã³ã«ç§»è¡ããŠããäžãããŒã¯ã»ãã·ã§ã³ãããã³ãã¥ããã£ã¯è²ŽéããšããæèŠãããã ãããããŸã§éãã®åœ¢åŒã§é²ããŠããããšã«ããŸããã ãªã³ã©ã€ã³éå¬ã®æã¯äººã®éãŸããè¯ããªãæãããã5åãããã§éå¬ããããšããããŸããããæ¯å誰ããçºè¡šãã¿ãæã¡èŸŒãã§ããããŸãçºè¡šãå°ãªãã£ãæ¥ã¯ãå°äººæ°ã§äœã£ãæéããã£ã¹ã«ãã·ã§ã³ã«å
ãŠãããšãã§ããã®ã§ãããã¯ããã§é¢çœã¿ããããŸããã ãŸãæ®æ®µé æ¹ã§è¡šåé.rbã«åå ã§ããªããããªæ¹ã«ãåå ããŠããã ããŠããã®ã§ãä»ã衚åé.rbãç¶ããŠããã®ã¯ãåœæå°äººæ°ã§ãéåããªãããã«ã³ãã¥ããã£ãæ¯ããŠãã ãã£ãæ¹ã
ã®ãé°ã§ãããšãŠããããããããšã§ããã 埡åç¥ã®ãšãããã³ããçŠã¯é·ãç¶ãããšã«ãªãããªã³ã©ã€ã³ã§ã®éå¬ã¯2020幎11æãã2023幎6æãŸã§è¡ãããŸããã RubyKaigiããªãã©ã€ã³éå¬ã«æ»ãã2023å¹Žã®æŸæ¬ã§ã®éå¬ããæ±äº¬ã«æ»ã£ãåŸã衚åé.rbããªãã©ã€ã³ã«æ»ãããšãèãå§ããŸããã ãã®éã«å¿
èŠã«ãªãã®ãéå¬ããäŒå Žã§ããåœæã¯ãŸã ãªãã©ã€ã³ã§äŒå ŽãæäŸããŠããã ããå Žæã¯å€ããªãããŸãæåã«çžè«ããã®ã¯èªåã®å€åå
ã§ããã¡ãã¬ãŒã§ããã ã¡ãã¬ãŒã§ã¯éå»ã«Rubyã³ãã¥ããã£ã®ããã«äŒå ŽæäŸãããããšã¯ãããŸããã§ããããç§ãå°åRubyã³ãã¥ããã£ã®äž»å¬ãç¶ç¶ããŠããããšããããæŽ»åãåŸæŒãããŠããã ããå¿«ãäŒå ŽæäŸãšæèŠªäŒã®äºç®ãã€ããŠããããŸããã 衚åé.rb #87 ã§ã¯åŒç€ŸãäŒå ŽæäŸãããŠããã ããŠãããŸã! #omotesandorb #ruby https://t.co/PDmvLeqLPN #omotesandorb â ã¡ãã¬ãŒ ãã£ãããããŒå
¬åŒ (@medley_dev) June 16, 2023 ãããããããšã«ããã®åã®è¡šåé.rbã«åå ããŠãã ãã£ãæ¹ã®äžããããèªåã®äŒç€Ÿã§ãäŒå ŽæäŸãããããšããç³ãåºãåããçŸåšã®è¡šåé.rbã¯10瀟ãããã®äŒæ¥ããäŒå Žã¹ãã³ãµãŒããããŠããã ããæ¯åéå¬äŒå Žãå€ããªãããç¶ç¶ããŠããŸãã ãããŠãä»å¹Ž2024幎8æã«è¡šåé.rbã¯ãã§ãã100åç®ã®éå¬ãè¿ããŸããã æ¬åœã«æ§ã
ãªäººã«æ¯ããããŠéå¬ã§ãã100åéå¬ã ãªããšæããŸãã 衚åérb 100åããïŒïŒððððð #omotesandorb #roppongirb pic.twitter.com/1qe2aJWMcZ â ãã£ããŒðºãã¯ãªã³ã¯EM (@kuronekopunk) August 1, 2024 å
æ¬æš.rbã®åŸ©æŽ»ãšã¡ãã¬ãŒãšã®é¢ãã ã¡ããã©ä»å¹Žã®ã¯ãããããã®é ã«ã衚åé.rbã«åå ãããŠããryoskãã(X: @ryosk7 )ããå
æ¬æš.rbãåå§åãããããšãã話ããããäŒå Žãæ¢ããŠãããšãã話ããããŸããã å
æ¬æš.rbã¯å
æ¬æšåšèŸºã®äŒæ¥ã§åããšã³ãžãã¢ãéãŸãRubyã³ãã¥ããã£ã§ãã³ããåãŸã§ã¯æã
éå¬ãããŠããããã§ããããã¡ããã³ããã§äŒæ¢ããŠããã³ãã¥ããã£ã§ããã ã¡ãã¬ãŒã¯å
æ¬æšã®äŒæ¥ãšããããšãããã衚åé.rbåæ§ã«å
æ¬æš.rbãæ¯æŽããŠããããããšããããšã§äŒç€Ÿã«çžè«ãããšããããã¡ããäŒå ŽæäŸãšæèŠªäŒäºç®ãã€ããŠããããããšã«ãªããŸããã ãã®æã¡ãã¬ãŒã¯RubyKaigi 2024ã®Rubyã¹ãã³ãµãŒãšããŠåè³ããŠãããæçµæ¥ã®åºèª¿è¬æŒåã®ã¹ãã³ãµãŒã»ãã·ã§ã³æ ãããã£ãã¿ã€ãã³ã°ã ã£ããããã©ãããªããç倧ã«å®£äŒããŠãããããšããããšã§ãåŒç€ŸVPoEã®å±±åŽã«ãå°å.rbæ¯æŽã®ä»¶ã«ã€ããŠç޹ä»ããŠããããŸããã ãã ããŸçºè¡šããããŸãããã Roppongi.rb ã埩掻ããŸãïŒïŒïŒð å
æ¬æšåšèŸºã®äŒæ¥ããã®ãåãåããŠãªãã©ã€ã³éå¬ãããŸãã 6æ13æ¥ã¯ã¡ãã¬ãŒããã®ãªãã£ã¹ããåãããŸãã ããããconnpassã®æ¹ãå±éããŸãïŒ ãããããé¡ãããŸãð #rubykaigi https://t.co/zo2t6KGPrj â ryosk7ðŠ (@ryosk7) May 17, 2024 RubyKaigi 2024 ã« Ruby Sponsor ãšããŠåè³ããŸããïŒ - MEDLEY Developers Portal ãã以æ¥ãå
æ¬æš.rbã¯ã¡ãã¬ãŒãå«ã4ç€Ÿã§æ1åã®å®æéå¬ããŠããŸãã ã¡ãã¬ãŒããã®ãªãã£ã¹ã«çããŸããïŒ ä»æ¥ã¯ãã¡ãã§Roppongi.rbãè¡ããŸãã #roppongirb pic.twitter.com/UioFP3FEyY â ryosk7ðŠ (@ryosk7) June 13, 2024 å°åRubyã³ãã¥ããã£æ¯æŽã«äŒŽããããžãã£ããªå¹æ ãã®ãããªæŽ»åãç¶ããŠããŠãäŒç€Ÿã«ã©ã®ãããªå€åããã£ããã«ã€ããŠè§ŠããããšæããŸãã ãŸã1ã€ç®ã¯ãæ®æ®µã®ä»äºã§äŒããªã瀟å
ã®äººãã¡ãšç€Ÿå€ã®ã€ãã³ãã§é¡ãåãããããã«ãªã£ããããšã§ãã 2022幎RubyKaigiã®æ§åããã®å¹Žã¯ã³ããäŒæ¢ããã®ãªããŒããšããããšããããããŒã¹åºå±ããªãã£ãã®ã§ãèªåããåå ããŠãªãã£ã 2023幎RubyKaigiã®æ§åãäŒå Žã®æ§åãèŠãŠããŠæ¬²ãããšèšãããè¥æãšã³ãžãã¢ãšãå®ã¯ãã®æåçãæ®ã£ãŠããã£ã人ãããã®åŸæ°åãšããŠã¡ãã¬ãŒã«å
¥ããšãããã©ã¯ã«ãèµ·ããŸãã 2024幎RubyKaigiã®æ§åãã¹ãã³ãµãŒããŒã¹ã«ãŠ ç€Ÿå
ã§Rubyã®ã€ãã³ããåç¥ããããã«ãªã£ãŠãããåå ããŠããã人ãå¢ããŸããã å
æ¥ã®Kaigi on Railsã§ããæ¥åãšã¯é¢ä¿ãªãæ¥ããšèšã人éã§éãŸãäžå¹ããããå€åãæããéšåã§ããããŸããã ããäžã€ã¯ããã¯ã瀟å€ãžã®èªç¥ã§ãä»å¹Žã®RubyKaigi 2024ã§ã¯Rubyã¹ãã³ãµãŒã§ããŒã¹ãåºããŠããã®ã§ãããã衚åé.rbã§äŒç€Ÿã«è¡ã£ãããšããããŸãããšæããŠãã ããäººãæ°åããã£ããã£ãããä»å¹Žå
¥ç€Ÿãããæ¹ãã衚åé.rbã«åå ããããšããããŸãããšæããŠãã ãã£ãããå°ãªãããããžãã£ããªåŽé¢ããããªãããšæããããšããããŸããããããã£ã声ã宿çã«èããã®ã¯ã¹ãã³ãµãŒãããŠããåŽãšããŠã¯ãšãŠãå¬ããã§ãã å°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ãã ããŠããããŸã§ã¯ã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠã話ããŠããŸããã ããããã¯ç§ã®ææã«ã€ããŠæžããŸããããããå
ã¯ç§ããªãŒã¬ãã€ã¶ãŒãšããŠæ®æ®µã³ãã¥ããã£æŽ»åã«ã€ããŠèããŠããããšã§ãã®ã§ãç¹æ®µäŒç€ŸããäœãèšãããŠãããšããããšã§ã¯ãããŸããã誀解ãªããããé¡ãããŸãïŒç¬ äŒç€ŸããèŠããšãå°å.rbã®ã¹ãã³ãµãŒããããŸããïŒããå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããšãå°å.rbãéå¬ããŸããïŒããšãã話ã§çµããã®ã§ãããå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããã€ã€ãäŒç€ŸãšããŠå°å.rbã®æ¯æŽãããããšããç«å Žã§ã¿ããšãå°ãéã£ãèŠãæ¹ã«ãªããŸãã äŒæ¥ããããã£ãã¹ãã³ãµãŒããè¡ãéã«ã¯ãäžå®ã®è²»çšå¯Ÿå¹æãèããå¿
èŠãããããã§ãã ç§ãã¹ãã³ãµãŒãããåŽã®ç«å Žããããããã£ãäºæ
ãæãã«ããã°ããç¥å床åäžã®ããã«ç©æ¥µçã«è¡ãã¹ãããæ¡çšé¢ã«ãå°ãªãããããžãã£ãã«åããŠããããšäž»åŒµããããšã¯ã§ããŸãããå®éãããã£ãåŽé¢ã¯ãããšæããŸãããããããããã©ã®çšåºŠãã©ã¹ã«åããŠããã®ããæ£ããèšæž¬ããæ¹æ³ããªããããåºæ¬çã«ã¯ã³ãã¥ããã£ã¯ãã©ã³ãã£ã¢ã«è¿ãåœ¢ã§æ¯æŽããŠãããããšã«ãªããŸãã ãããã£ããã®ã¯ãé·ãç¶ããšã¯éããŸããããæ®æ®µãæ¯æŽããã ããŠããäŒç€Ÿã®çªå£æ
åœã®æ¹ããæ±ºæžè²¬ä»»è
ãå€ããã ãã§ç¶æ³ã¯å€ãããŸãã ããã«ã€ããŠã¯ããªãŒã¬ãã€ã¶ãŒãšããŠã¯ä»æ¹ãªããã®ãšèããŠãããã³ãã¥ããã£ãæç¶å¯èœãªãã®ã«ããããã«ãæå€§éåªåãããå¿
èŠããããšèããŠããŸãã 以å衚åé.rb 100åã®ãšãã«ãã衚åé.rb 100åã«å¯ããŠããšããã¿ã€ãã«ã§ããã³ãã¥ããã£ãç¶ç¶ããŠããããã«ã¯ã©ãããã°ãããããšããã話ããããŠããã ããŸããã ãã®äžã§ãã³ãã¥ããã£ãç¶ç¶ããããã®3èŠçŽ ãäž»å¬è
ã®ããæ°ã»ã¹ãã³ãµãŒãäŒæ¥ã»åå è
ãã®3ã€ãæããã³ãã¥ããã£ãé·ãç¶ãããã«ã©ãããã¹ããããšããã話ããããŠããã ããŸããã ã衚åé.rb 100åã«å¯ããŠã ã¡ãã¬ãŒãçŸåšã¯å°åRubyã³ãã¥ããã£ãç¡åã§å¿æŽããŠããç«å Žã§ã¯ãããŸããããããæªæ¥æ°žå«ç¶ããã¯åãããŸãããããå¯èœãªéã鷿鿝æŽã§ããããã«ãäžå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒãšããŠããããŠäŒç€Ÿã®äžã®äººãšããŠãåªåããããšæã£ãŠããŸãã ãŸãšã å°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠæžãããŠããã ããŸããã ã¡ãã¬ãŒã§ã¯ã衚åé.rbãšå
æ¬æš.rbã®å°åRubyã³ãã¥ããã£ã®æ¯æŽãããŠããã宿çã«ã¡ãã¬ãŒã§ãéå¬ããŠãããŸãã ããããèå³ãããŸãããæ¯ééã³ã«æ¥ãŠãã ããã 衚åé.rb https://omotesandorb.connpass.com/ å
æ¬æš.rb https://roppongirb.connpass.com/
ãã¡ãã®èšäºã¯ MedleyïŒã¡ãã¬ãŒïŒ Advent Calendar 2024 ã®12æ¥ç®ã®èšäºã§ãã ã¯ããã« ã¯ãããŸããŠãå»çãã©ãããã©ãŒã äºæ¥éšããããã¯ãéçºå®€ãDentiséçºã°ã«ãŒãã§ã°ã«ãŒããããžã£ãŒãããŠããç§ïŒX: @Kirika_K2 ïŒãšç³ããŸãã ã¡ãã¬ãŒã«ã¯2019幎ã«å
¥ç€Ÿãã以æ¥ãæ¯ç§å»é¢åãã®ã¯ã©ãŠããµãŒãã¹ Dentis ã®ç«ã¡äžãããããã¯ãéçºã«æºãã£ãŠããŸãã Dentisã¯å»çæ©é¢ã®äºçŽã»åä»ã»å蚺ã»ã«ã«ãã®èšé²ã»äŒèšæ¥åã»ä¿éºè«æ±æ¥åãŸã§ãããŒã¿ã«ã§ãµããŒãããã¯ã©ãŠãã·ã¹ãã ã§ãäž»ã«Ruby on RailsãšReactã§äœãããŠããŸãã æ¥ã
æ¯ç§å»çãã¡ã€ã³ã§ã客æ§ã®å£°ã«åãåããªãããå»çDXãæšé²ããŠããŸãã çå®ã«æé·ããŠãããããã¯ãã§ãã®ã§ããããèå³ãããŸããããã«ãžã¥ã¢ã«é¢è«çåãä»ããŠãããŸãã®ã§ãã声ãããã ãããïŒå®£äŒçµïŒ æ®æ®µã¯ãããã¯ãéçºã«åŸäºããŠããŸããããã©ã€ããŒãã§ã¯å°åRubyã³ãã¥ããã£ã®è¡šåé.rbãäž»å¬ããŠãããŸããŠãã¡ãã¬ãŒã§ãå°åRubyã³ãã¥ããã£æ¯æŽãšãã圢ã§ã衚åé.rbã®ã¹ãã³ãµãŒäŒæ¥ãšããŠãååããŠããã£ãŠããŸãã ä»åã®Advent Calendarã§ã¯ãäžå°åRubyã³ãã¥ããã£ãªãŒã¬ãã€ã¶ãŒã®ç«å ŽããèŠãã¡ãã¬ãŒã®å°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠæžãããšæããŸãã 衚åé.rbãšç§ã®é¢ãã 衚åé.rbã¯2015幎é ããå§ãŸã£ãã衚åéåšèŸºã®ãšã³ãžãã¢ãéãŸã£ãŠRubyã®åšèŸºæè¡ã«é¢ããæ
å ±äº€æãããå°åRubyã³ãã¥ããã£ã§ãã æ¯æç¬¬ïŒæšææ¥ã«éå¬ããŠãããæ¯æ1人10åçšåºŠã®ããŒã¯ã»ãã·ã§ã³ã6ãïŒæ¬ãšäº€æµäŒãè¡ã£ãŠããŸãã äžéšäŸå€ããããé嬿¥ãç¥æ¥çãšéãªãå Žåã¯ã1é±éããããŠç¬¬2æšææ¥ã«éå¬ããŠããŸãã ã¡ããã©ä»æã®ç¬¬1æšææ¥ã¯å³¶æ ¹çæŸæ±åžã§ãRubyWorld Conference 2025ãéå¬ãããŠããã衚åé.rbã«æ®æ®µæ¥ãŠããã£ãŠããå€ãã®æ¹ãæŸæ±ã«éåããŠããã®ã§ã第2æšææ¥ã®éå¬ã«ãªããŸããïŒã€ãŸã仿¥ã§ãïŒïŒ æ¯æç¬¬2é±ã¯ãåŸã»ã©ã話ããå
æ¬æš.rbã宿éå¬ãããŠãããååéå¬ãšãã圢ã§ã®éå¬ããŠããŸãã ã©ã¡ããæ¥œããã³ãã¥ããã£ã§ãã®ã§ãæ¯ééã³ã«æ¥ãŠãã ããã 衚åé.rb https://omotesandorb.connpass.com/ å
æ¬æš.rb https://roppongirb.connpass.com/ ç§ã¯ã2018幎é ããéå¶ã«é¢ããå§ãããã®åŸã¡ãã¬ãŒã«å
¥ç€Ÿããè·å Žãå
æ¬æšã«å€ãã£ãåŸãç¶ããŠããŸããã ã³ããçŠã«ãããªã³ã©ã€ã³éå¬ç§»è¡ããããŠãªãã©ã€ã³éå¬ã®åŸ©æŽ» 2020幎ã«ã³ããçŠã«ãªãããªãã©ã€ã³ã§ã®éå¬ãã§ããªããªãå幎ã»ã©éå¬ãèŠéã£ãŠããããšããããŸãããããªã³ã©ã€ã³éå¬ã«ç§»è¡ããŠéå¬ããŠããŸããã ã¡ããã©ã³ããçŠã§æ··ä¹±ããŠããé ãã³ãã¥ããã£ã掻åäŒæ¢ã«ãããããªã³ã©ã€ã³éå¬ã«ç§»è¡ãããæ©ã¿ãŸããããäžåºŠäžæ¢ã«ããŠããŸããšåéãããã£ããã倱ã£ãŠããŸãå¯èœæ§ããã£ãããããããŸã§éãã®é »åºŠã§éå¬ããããšã«æ±ºããŸããã ãŸããªã³ã©ã€ã³ã«ç§»è¡ããã«ããã£ãŠãããããäŒãªã©ããããŸã§ãšç°ãªã圢åŒã§ã®éå¬ãèããŸããããããã€ãã®ã³ãã¥ããã£ããªã³ã©ã€ã³ã«ç§»è¡ããŠããäžãããŒã¯ã»ãã·ã§ã³ãããã³ãã¥ããã£ã¯è²ŽéããšããæèŠãããã ãããããŸã§éãã®åœ¢åŒã§é²ããŠããããšã«ããŸããã ãªã³ã©ã€ã³éå¬ã®æã¯äººã®éãŸããè¯ããªãæãããã5åãããã§éå¬ããããšããããŸããããæ¯å誰ããçºè¡šãã¿ãæã¡èŸŒãã§ããããŸãçºè¡šãå°ãªãã£ãæ¥ã¯ãå°äººæ°ã§äœã£ãæéããã£ã¹ã«ãã·ã§ã³ã«å
ãŠãããšãã§ããã®ã§ãããã¯ããã§é¢çœã¿ããããŸããã ãŸãæ®æ®µé æ¹ã§è¡šåé.rbã«åå ã§ããªããããªæ¹ã«ãåå ããŠããã ããŠããã®ã§ãä»ã衚åé.rbãç¶ããŠããã®ã¯ãåœæå°äººæ°ã§ãéåããªãããã«ã³ãã¥ããã£ãæ¯ããŠãã ãã£ãæ¹ã
ã®ãé°ã§ãããšãŠããããããããšã§ããã 埡åç¥ã®ãšãããã³ããçŠã¯é·ãç¶ãããšã«ãªãããªã³ã©ã€ã³ã§ã®éå¬ã¯2020幎11æãã2023幎6æãŸã§è¡ãããŸããã RubyKaigiããªãã©ã€ã³éå¬ã«æ»ãã2023å¹Žã®æŸæ¬ã§ã®éå¬ããæ±äº¬ã«æ»ã£ãåŸã衚åé.rbããªãã©ã€ã³ã«æ»ãããšãèãå§ããŸããã ãã®éã«å¿
èŠã«ãªãã®ãéå¬ããäŒå Žã§ããåœæã¯ãŸã ãªãã©ã€ã³ã§äŒå ŽãæäŸããŠããã ããå Žæã¯å€ããªãããŸãæåã«çžè«ããã®ã¯èªåã®å€åå
ã§ããã¡ãã¬ãŒã§ããã ã¡ãã¬ãŒã§ã¯éå»ã«Rubyã³ãã¥ããã£ã®ããã«äŒå ŽæäŸãããããšã¯ãããŸããã§ããããç§ãå°åRubyã³ãã¥ããã£ã®äž»å¬ãç¶ç¶ããŠããããšããããæŽ»åãåŸæŒãããŠããã ããå¿«ãäŒå ŽæäŸãšæèŠªäŒã®äºç®ãã€ããŠããããŸããã 衚åé.rb #87 ã§ã¯åŒç€ŸãäŒå ŽæäŸãããŠããã ããŠãããŸã! #omotesandorb #ruby https://t.co/PDmvLeqLPN #omotesandorb â ã¡ãã¬ãŒ ãã£ãããããŒå
¬åŒ (@medley_dev) June 16, 2023 ãããããããšã«ããã®åã®è¡šåé.rbã«åå ããŠãã ãã£ãæ¹ã®äžããããèªåã®äŒç€Ÿã§ãäŒå ŽæäŸãããããšããç³ãåºãåããçŸåšã®è¡šåé.rbã¯10瀟ãããã®äŒæ¥ããäŒå Žã¹ãã³ãµãŒããããŠããã ããæ¯åéå¬äŒå Žãå€ããªãããç¶ç¶ããŠããŸãã ãããŠãä»å¹Ž2024幎8æã«è¡šåé.rbã¯ãã§ãã100åç®ã®éå¬ãè¿ããŸããã æ¬åœã«æ§ã
ãªäººã«æ¯ããããŠéå¬ã§ãã100åéå¬ã ãªããšæããŸãã 衚åérb 100åããïŒïŒððððð #omotesandorb #roppongirb pic.twitter.com/1qe2aJWMcZ â ãã£ããŒðºãã¯ãªã³ã¯EM (@kuronekopunk) August 1, 2024 å
æ¬æš.rbã®åŸ©æŽ»ãšã¡ãã¬ãŒãšã®é¢ãã ã¡ããã©ä»å¹Žã®ã¯ãããããã®é ã«ã衚åé.rbã«åå ãããŠããryoskãã(X: @ryosk7 )ããå
æ¬æš.rbãåå§åãããããšãã話ããããäŒå Žãæ¢ããŠãããšãã話ããããŸããã å
æ¬æš.rbã¯å
æ¬æšåšèŸºã®äŒæ¥ã§åããšã³ãžãã¢ãéãŸãRubyã³ãã¥ããã£ã§ãã³ããåãŸã§ã¯æã
éå¬ãããŠããããã§ããããã¡ããã³ããã§äŒæ¢ããŠããã³ãã¥ããã£ã§ããã ã¡ãã¬ãŒã¯å
æ¬æšã®äŒæ¥ãšããããšãããã衚åé.rbåæ§ã«å
æ¬æš.rbãæ¯æŽããŠããããããšããããšã§äŒç€Ÿã«çžè«ãããšããããã¡ããäŒå ŽæäŸãšæèŠªäŒäºç®ãã€ããŠããããããšã«ãªããŸããã ãã®æã¡ãã¬ãŒã¯RubyKaigi 2024ã®Rubyã¹ãã³ãµãŒãšããŠåè³ããŠãããæçµæ¥ã®åºèª¿è¬æŒåã®ã¹ãã³ãµãŒã»ãã·ã§ã³æ ãããã£ãã¿ã€ãã³ã°ã ã£ããããã©ãããªããç倧ã«å®£äŒããŠãããããšããããšã§ãåŒç€ŸVPoEã®å±±åŽã«ãå°å.rbæ¯æŽã®ä»¶ã«ã€ããŠç޹ä»ããŠããããŸããã ãã ããŸçºè¡šããããŸãããã Roppongi.rb ã埩掻ããŸãïŒïŒïŒð å
æ¬æšåšèŸºã®äŒæ¥ããã®ãåãåããŠãªãã©ã€ã³éå¬ãããŸãã 6æ13æ¥ã¯ã¡ãã¬ãŒããã®ãªãã£ã¹ããåãããŸãã ããããconnpassã®æ¹ãå±éããŸãïŒ ãããããé¡ãããŸãð #rubykaigi https://t.co/zo2t6KGPrj â ryosk7ðŠ (@ryosk7) May 17, 2024 RubyKaigi 2024 ã« Ruby Sponsor ãšããŠåè³ããŸããïŒ - MEDLEY Developers Portal ãã以æ¥ãå
æ¬æš.rbã¯ã¡ãã¬ãŒãå«ã4ç€Ÿã§æ1åã®å®æéå¬ããŠããŸãã ã¡ãã¬ãŒããã®ãªãã£ã¹ã«çããŸããïŒ ä»æ¥ã¯ãã¡ãã§Roppongi.rbãè¡ããŸãã #roppongirb pic.twitter.com/UioFP3FEyY â ryosk7ðŠ (@ryosk7) June 13, 2024 å°åRubyã³ãã¥ããã£æ¯æŽã«äŒŽããããžãã£ããªå¹æ ãã®ãããªæŽ»åãç¶ããŠããŠãäŒç€Ÿã«ã©ã®ãããªå€åããã£ããã«ã€ããŠè§ŠããããšæããŸãã ãŸã1ã€ç®ã¯ãæ®æ®µã®ä»äºã§äŒããªã瀟å
ã®äººãã¡ãšç€Ÿå€ã®ã€ãã³ãã§é¡ãåãããããã«ãªã£ããããšã§ãã 2022幎RubyKaigiã®æ§åããã®å¹Žã¯ã³ããäŒæ¢ããã®ãªããŒããšããããšããããããŒã¹åºå±ããªãã£ãã®ã§ãèªåããåå ããŠãªãã£ã 2023幎RubyKaigiã®æ§åãäŒå Žã®æ§åãèŠãŠããŠæ¬²ãããšèšãããè¥æãšã³ãžãã¢ãšãå®ã¯ãã®æåçãæ®ã£ãŠããã£ã人ãããã®åŸæ°åãšããŠã¡ãã¬ãŒã«å
¥ããšãããã©ã¯ã«ãèµ·ããŸãã 2024幎RubyKaigiã®æ§åãã¹ãã³ãµãŒããŒã¹ã«ãŠ ç€Ÿå
ã§Rubyã®ã€ãã³ããåç¥ããããã«ãªã£ãŠãããåå ããŠããã人ãå¢ããŸããã å
æ¥ã®Kaigi on Railsã§ããæ¥åãšã¯é¢ä¿ãªãæ¥ããšèšã人éã§éãŸãäžå¹ããããå€åãæããéšåã§ããããŸããã ããäžã€ã¯ããã¯ã瀟å€ãžã®èªç¥ã§ãä»å¹Žã®RubyKaigi 2024ã§ã¯Rubyã¹ãã³ãµãŒã§ããŒã¹ãåºããŠããã®ã§ãããã衚åé.rbã§äŒç€Ÿã«è¡ã£ãããšããããŸãããšæããŠãã ããäººãæ°åããã£ããã£ãããä»å¹Žå
¥ç€Ÿãããæ¹ãã衚åé.rbã«åå ããããšããããŸãããšæããŠãã ãã£ãããå°ãªãããããžãã£ããªåŽé¢ããããªãããšæããããšããããŸããããããã£ã声ã宿çã«èããã®ã¯ã¹ãã³ãµãŒãããŠããåŽãšããŠã¯ãšãŠãå¬ããã§ãã å°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ãã ããŠããããŸã§ã¯ã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠã話ããŠããŸããã ããããã¯ç§ã®ææã«ã€ããŠæžããŸããããããå
ã¯ç§ããªãŒã¬ãã€ã¶ãŒãšããŠæ®æ®µã³ãã¥ããã£æŽ»åã«ã€ããŠèããŠããããšã§ãã®ã§ãç¹æ®µäŒç€ŸããäœãèšãããŠãããšããããšã§ã¯ãããŸããã誀解ãªããããé¡ãããŸãïŒç¬ äŒç€ŸããèŠããšãå°å.rbã®ã¹ãã³ãµãŒããããŸããïŒããå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããšãå°å.rbãéå¬ããŸããïŒããšãã話ã§çµããã®ã§ãããå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããã€ã€ãäŒç€ŸãšããŠå°å.rbã®æ¯æŽãããããšããç«å Žã§ã¿ããšãå°ãéã£ãèŠãæ¹ã«ãªããŸãã äŒæ¥ããããã£ãã¹ãã³ãµãŒããè¡ãéã«ã¯ãäžå®ã®è²»çšå¯Ÿå¹æãèããå¿
èŠãããããã§ãã ç§ãã¹ãã³ãµãŒãããåŽã®ç«å Žããããããã£ãäºæ
ãæãã«ããã°ããç¥å床åäžã®ããã«ç©æ¥µçã«è¡ãã¹ãããæ¡çšé¢ã«ãå°ãªãããããžãã£ãã«åããŠããããšäž»åŒµããããšã¯ã§ããŸãããå®éãããã£ãåŽé¢ã¯ãããšæããŸãããããããããã©ã®çšåºŠãã©ã¹ã«åããŠããã®ããæ£ããèšæž¬ããæ¹æ³ããªããããåºæ¬çã«ã¯ã³ãã¥ããã£ã¯ãã©ã³ãã£ã¢ã«è¿ãåœ¢ã§æ¯æŽããŠãããããšã«ãªããŸãã ãããã£ããã®ã¯ãé·ãç¶ããšã¯éããŸããããæ®æ®µãæ¯æŽããã ããŠããäŒç€Ÿã®çªå£æ
åœã®æ¹ããæ±ºæžè²¬ä»»è
ãå€ããã ãã§ç¶æ³ã¯å€ãããŸãã ããã«ã€ããŠã¯ããªãŒã¬ãã€ã¶ãŒãšããŠã¯ä»æ¹ãªããã®ãšèããŠãããã³ãã¥ããã£ãæç¶å¯èœãªãã®ã«ããããã«ãæå€§éåªåãããå¿
èŠããããšèããŠããŸãã 以å衚åé.rb 100åã®ãšãã«ãã衚åé.rb 100åã«å¯ããŠããšããã¿ã€ãã«ã§ããã³ãã¥ããã£ãç¶ç¶ããŠããããã«ã¯ã©ãããã°ãããããšããã話ããããŠããã ããŸããã ãã®äžã§ãã³ãã¥ããã£ãç¶ç¶ããããã®3èŠçŽ ãäž»å¬è
ã®ããæ°ã»ã¹ãã³ãµãŒãäŒæ¥ã»åå è
ãã®3ã€ãæããã³ãã¥ããã£ãé·ãç¶ãããã«ã©ãããã¹ããããšããã話ããããŠããã ããŸããã ã衚åé.rb 100åã«å¯ããŠã ã¡ãã¬ãŒãçŸåšã¯å°åRubyã³ãã¥ããã£ãç¡åã§å¿æŽããŠããç«å Žã§ã¯ãããŸããããããæªæ¥æ°žå«ç¶ããã¯åãããŸãããããå¯èœãªéã鷿鿝æŽã§ããããã«ãäžå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒãšããŠããããŠäŒç€Ÿã®äžã®äººãšããŠãåªåããããšæã£ãŠããŸãã ãŸãšã å°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠæžãããŠããã ããŸããã ã¡ãã¬ãŒã§ã¯ã衚åé.rbãšå
æ¬æš.rbã®å°åRubyã³ãã¥ããã£ã®æ¯æŽãããŠããã宿çã«ã¡ãã¬ãŒã§ãéå¬ããŠãããŸãã ããããèå³ãããŸãããæ¯ééã³ã«æ¥ãŠãã ããã 衚åé.rb https://omotesandorb.connpass.com/ å
æ¬æš.rb https://roppongirb.connpass.com/
ãã¡ãã®èšäºã¯ MedleyïŒã¡ãã¬ãŒïŒ Advent Calendar 2024 ã®12æ¥ç®ã®èšäºã§ãã ã¯ããã« ã¯ãããŸããŠãå»çãã©ãããã©ãŒã äºæ¥éšããããã¯ãéçºå®€ãDentiséçºã°ã«ãŒãã§ã°ã«ãŒããããžã£ãŒãããŠããç§ïŒX: @Kirika_K2 ïŒãšç³ããŸãã ã¡ãã¬ãŒã«ã¯2019幎ã«å
¥ç€Ÿãã以æ¥ãæ¯ç§å»é¢åãã®ã¯ã©ãŠããµãŒãã¹ Dentis ã®ç«ã¡äžãããããã¯ãéçºã«æºãã£ãŠããŸãã Dentisã¯å»çæ©é¢ã®äºçŽã»åä»ã»å蚺ã»ã«ã«ãã®èšé²ã»äŒèšæ¥åã»ä¿éºè«æ±æ¥åãŸã§ãããŒã¿ã«ã§ãµããŒãããã¯ã©ãŠãã·ã¹ãã ã§ãäž»ã«Ruby on RailsãšReactã§äœãããŠããŸãã æ¥ã
æ¯ç§å»çãã¡ã€ã³ã§ã客æ§ã®å£°ã«åãåããªãããå»çDXãæšé²ããŠããŸãã çå®ã«æé·ããŠãããããã¯ãã§ãã®ã§ããããèå³ãããŸããããã«ãžã¥ã¢ã«é¢è«çåãä»ããŠãããŸãã®ã§ãã声ãããã ãããïŒå®£äŒçµïŒ æ®æ®µã¯ãããã¯ãéçºã«åŸäºããŠããŸããããã©ã€ããŒãã§ã¯å°åRubyã³ãã¥ããã£ã®è¡šåé.rbãäž»å¬ããŠãããŸããŠãã¡ãã¬ãŒã§ãå°åRubyã³ãã¥ããã£æ¯æŽãšãã圢ã§ã衚åé.rbã®ã¹ãã³ãµãŒäŒæ¥ãšããŠãååããŠããã£ãŠããŸãã ä»åã®Advent Calendarã§ã¯ãäžå°åRubyã³ãã¥ããã£ãªãŒã¬ãã€ã¶ãŒã®ç«å ŽããèŠãã¡ãã¬ãŒã®å°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠæžãããšæããŸãã 衚åé.rbãšç§ã®é¢ãã 衚åé.rbã¯2015幎é ããå§ãŸã£ãã衚åéåšèŸºã®ãšã³ãžãã¢ãéãŸã£ãŠRubyã®åšèŸºæè¡ã«é¢ããæ
å ±äº€æãããå°åRubyã³ãã¥ããã£ã§ãã æ¯æç¬¬ïŒæšææ¥ã«éå¬ããŠãããæ¯æ1人10åçšåºŠã®ããŒã¯ã»ãã·ã§ã³ã6ãïŒæ¬ãšäº€æµäŒãè¡ã£ãŠããŸãã äžéšäŸå€ããããé嬿¥ãç¥æ¥çãšéãªãå Žåã¯ã1é±éããããŠç¬¬2æšææ¥ã«éå¬ããŠããŸãã ã¡ããã©ä»æã®ç¬¬1æšææ¥ã¯å³¶æ ¹çæŸæ±åžã§ãRubyWorld Conference 2025ãéå¬ãããŠããã衚åé.rbã«æ®æ®µæ¥ãŠããã£ãŠããå€ãã®æ¹ãæŸæ±ã«éåããŠããã®ã§ã第2æšææ¥ã®éå¬ã«ãªããŸããïŒã€ãŸã仿¥ã§ãïŒïŒ æ¯æç¬¬2é±ã¯ãåŸã»ã©ã話ããå
æ¬æš.rbã宿éå¬ãããŠãããååéå¬ãšãã圢ã§ã®éå¬ããŠããŸãã ã©ã¡ããæ¥œããã³ãã¥ããã£ã§ãã®ã§ãæ¯ééã³ã«æ¥ãŠãã ããã 衚åé.rb https://omotesandorb.connpass.com/ å
æ¬æš.rb https://roppongirb.connpass.com/ ç§ã¯ã2018幎é ããéå¶ã«é¢ããå§ãããã®åŸã¡ãã¬ãŒã«å
¥ç€Ÿããè·å Žãå
æ¬æšã«å€ãã£ãåŸãç¶ããŠããŸããã ã³ããçŠã«ãããªã³ã©ã€ã³éå¬ç§»è¡ããããŠãªãã©ã€ã³éå¬ã®åŸ©æŽ» 2020幎ã«ã³ããçŠã«ãªãããªãã©ã€ã³ã§ã®éå¬ãã§ããªããªãå幎ã»ã©éå¬ãèŠéã£ãŠããããšããããŸãããããªã³ã©ã€ã³éå¬ã«ç§»è¡ããŠéå¬ããŠããŸããã ã¡ããã©ã³ããçŠã§æ··ä¹±ããŠããé ãã³ãã¥ããã£ã掻åäŒæ¢ã«ãããããªã³ã©ã€ã³éå¬ã«ç§»è¡ãããæ©ã¿ãŸããããäžåºŠäžæ¢ã«ããŠããŸããšåéãããã£ããã倱ã£ãŠããŸãå¯èœæ§ããã£ãããããããŸã§éãã®é »åºŠã§éå¬ããããšã«æ±ºããŸããã ãŸããªã³ã©ã€ã³ã«ç§»è¡ããã«ããã£ãŠãããããäŒãªã©ããããŸã§ãšç°ãªã圢åŒã§ã®éå¬ãèããŸããããããã€ãã®ã³ãã¥ããã£ããªã³ã©ã€ã³ã«ç§»è¡ããŠããäžãããŒã¯ã»ãã·ã§ã³ãããã³ãã¥ããã£ã¯è²ŽéããšããæèŠãããã ãããããŸã§éãã®åœ¢åŒã§é²ããŠããããšã«ããŸããã ãªã³ã©ã€ã³éå¬ã®æã¯äººã®éãŸããè¯ããªãæãããã5åãããã§éå¬ããããšããããŸããããæ¯å誰ããçºè¡šãã¿ãæã¡èŸŒãã§ããããŸãçºè¡šãå°ãªãã£ãæ¥ã¯ãå°äººæ°ã§äœã£ãæéããã£ã¹ã«ãã·ã§ã³ã«å
ãŠãããšãã§ããã®ã§ãããã¯ããã§é¢çœã¿ããããŸããã ãŸãæ®æ®µé æ¹ã§è¡šåé.rbã«åå ã§ããªããããªæ¹ã«ãåå ããŠããã ããŠããã®ã§ãä»ã衚åé.rbãç¶ããŠããã®ã¯ãåœæå°äººæ°ã§ãéåããªãããã«ã³ãã¥ããã£ãæ¯ããŠãã ãã£ãæ¹ã
ã®ãé°ã§ãããšãŠããããããããšã§ããã 埡åç¥ã®ãšãããã³ããçŠã¯é·ãç¶ãããšã«ãªãããªã³ã©ã€ã³ã§ã®éå¬ã¯2020幎11æãã2023幎6æãŸã§è¡ãããŸããã RubyKaigiããªãã©ã€ã³éå¬ã«æ»ãã2023å¹Žã®æŸæ¬ã§ã®éå¬ããæ±äº¬ã«æ»ã£ãåŸã衚åé.rbããªãã©ã€ã³ã«æ»ãããšãèãå§ããŸããã ãã®éã«å¿
èŠã«ãªãã®ãéå¬ããäŒå Žã§ããåœæã¯ãŸã ãªãã©ã€ã³ã§äŒå ŽãæäŸããŠããã ããå Žæã¯å€ããªãããŸãæåã«çžè«ããã®ã¯èªåã®å€åå
ã§ããã¡ãã¬ãŒã§ããã ã¡ãã¬ãŒã§ã¯éå»ã«Rubyã³ãã¥ããã£ã®ããã«äŒå ŽæäŸãããããšã¯ãããŸããã§ããããç§ãå°åRubyã³ãã¥ããã£ã®äž»å¬ãç¶ç¶ããŠããããšããããæŽ»åãåŸæŒãããŠããã ããå¿«ãäŒå ŽæäŸãšæèŠªäŒã®äºç®ãã€ããŠããããŸããã 衚åé.rb #87 ã§ã¯åŒç€ŸãäŒå ŽæäŸãããŠããã ããŠãããŸã! #omotesandorb #ruby https://t.co/PDmvLeqLPN #omotesandorb â ã¡ãã¬ãŒ ãã£ãããããŒå
¬åŒ (@medley_dev) June 16, 2023 ãããããããšã«ããã®åã®è¡šåé.rbã«åå ããŠãã ãã£ãæ¹ã®äžããããèªåã®äŒç€Ÿã§ãäŒå ŽæäŸãããããšããç³ãåºãåããçŸåšã®è¡šåé.rbã¯10瀟ãããã®äŒæ¥ããäŒå Žã¹ãã³ãµãŒããããŠããã ããæ¯åéå¬äŒå Žãå€ããªãããç¶ç¶ããŠããŸãã ãããŠãä»å¹Ž2024幎8æã«è¡šåé.rbã¯ãã§ãã100åç®ã®éå¬ãè¿ããŸããã æ¬åœã«æ§ã
ãªäººã«æ¯ããããŠéå¬ã§ãã100åéå¬ã ãªããšæããŸãã 衚åérb 100åããïŒïŒððððð #omotesandorb #roppongirb pic.twitter.com/1qe2aJWMcZ â ãã£ããŒðºãã¯ãªã³ã¯EM (@kuronekopunk) August 1, 2024 å
æ¬æš.rbã®åŸ©æŽ»ãšã¡ãã¬ãŒãšã®é¢ãã ã¡ããã©ä»å¹Žã®ã¯ãããããã®é ã«ã衚åé.rbã«åå ãããŠããryoskãã(X: @ryosk7 )ããå
æ¬æš.rbãåå§åãããããšãã話ããããäŒå Žãæ¢ããŠãããšãã話ããããŸããã å
æ¬æš.rbã¯å
æ¬æšåšèŸºã®äŒæ¥ã§åããšã³ãžãã¢ãéãŸãRubyã³ãã¥ããã£ã§ãã³ããåãŸã§ã¯æã
éå¬ãããŠããããã§ããããã¡ããã³ããã§äŒæ¢ããŠããã³ãã¥ããã£ã§ããã ã¡ãã¬ãŒã¯å
æ¬æšã®äŒæ¥ãšããããšãããã衚åé.rbåæ§ã«å
æ¬æš.rbãæ¯æŽããŠããããããšããããšã§äŒç€Ÿã«çžè«ãããšããããã¡ããäŒå ŽæäŸãšæèŠªäŒäºç®ãã€ããŠããããããšã«ãªããŸããã ãã®æã¡ãã¬ãŒã¯RubyKaigi 2024ã®Rubyã¹ãã³ãµãŒãšããŠåè³ããŠãããæçµæ¥ã®åºèª¿è¬æŒåã®ã¹ãã³ãµãŒã»ãã·ã§ã³æ ãããã£ãã¿ã€ãã³ã°ã ã£ããããã©ãããªããç倧ã«å®£äŒããŠãããããšããããšã§ãåŒç€ŸVPoEã®å±±åŽã«ãå°å.rbæ¯æŽã®ä»¶ã«ã€ããŠç޹ä»ããŠããããŸããã ãã ããŸçºè¡šããããŸãããã Roppongi.rb ã埩掻ããŸãïŒïŒïŒð å
æ¬æšåšèŸºã®äŒæ¥ããã®ãåãåããŠãªãã©ã€ã³éå¬ãããŸãã 6æ13æ¥ã¯ã¡ãã¬ãŒããã®ãªãã£ã¹ããåãããŸãã ããããconnpassã®æ¹ãå±éããŸãïŒ ãããããé¡ãããŸãð #rubykaigi https://t.co/zo2t6KGPrj â ryosk7ðŠ (@ryosk7) May 17, 2024 RubyKaigi 2024 ã« Ruby Sponsor ãšããŠåè³ããŸããïŒ - MEDLEY Developers Portal ãã以æ¥ãå
æ¬æš.rbã¯ã¡ãã¬ãŒãå«ã4ç€Ÿã§æ1åã®å®æéå¬ããŠããŸãã ã¡ãã¬ãŒããã®ãªãã£ã¹ã«çããŸããïŒ ä»æ¥ã¯ãã¡ãã§Roppongi.rbãè¡ããŸãã #roppongirb pic.twitter.com/UioFP3FEyY â ryosk7ðŠ (@ryosk7) June 13, 2024 å°åRubyã³ãã¥ããã£æ¯æŽã«äŒŽããããžãã£ããªå¹æ ãã®ãããªæŽ»åãç¶ããŠããŠãäŒç€Ÿã«ã©ã®ãããªå€åããã£ããã«ã€ããŠè§ŠããããšæããŸãã ãŸã1ã€ç®ã¯ãæ®æ®µã®ä»äºã§äŒããªã瀟å
ã®äººãã¡ãšç€Ÿå€ã®ã€ãã³ãã§é¡ãåãããããã«ãªã£ããããšã§ãã 2022幎RubyKaigiã®æ§åããã®å¹Žã¯ã³ããäŒæ¢ããã®ãªããŒããšããããšããããããŒã¹åºå±ããªãã£ãã®ã§ãèªåããåå ããŠãªãã£ã 2023幎RubyKaigiã®æ§åãäŒå Žã®æ§åãèŠãŠããŠæ¬²ãããšèšãããè¥æãšã³ãžãã¢ãšãå®ã¯ãã®æåçãæ®ã£ãŠããã£ã人ãããã®åŸæ°åãšããŠã¡ãã¬ãŒã«å
¥ããšãããã©ã¯ã«ãèµ·ããŸãã 2024幎RubyKaigiã®æ§åãã¹ãã³ãµãŒããŒã¹ã«ãŠ ç€Ÿå
ã§Rubyã®ã€ãã³ããåç¥ããããã«ãªã£ãŠãããåå ããŠããã人ãå¢ããŸããã å
æ¥ã®Kaigi on Railsã§ããæ¥åãšã¯é¢ä¿ãªãæ¥ããšèšã人éã§éãŸãäžå¹ããããå€åãæããéšåã§ããããŸããã ããäžã€ã¯ããã¯ã瀟å€ãžã®èªç¥ã§ãä»å¹Žã®RubyKaigi 2024ã§ã¯Rubyã¹ãã³ãµãŒã§ããŒã¹ãåºããŠããã®ã§ãããã衚åé.rbã§äŒç€Ÿã«è¡ã£ãããšããããŸãããšæããŠãã ããäººãæ°åããã£ããã£ãããä»å¹Žå
¥ç€Ÿãããæ¹ãã衚åé.rbã«åå ããããšããããŸãããšæããŠãã ãã£ãããå°ãªãããããžãã£ããªåŽé¢ããããªãããšæããããšããããŸããããããã£ã声ã宿çã«èããã®ã¯ã¹ãã³ãµãŒãããŠããåŽãšããŠã¯ãšãŠãå¬ããã§ãã å°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ãã ããŠããããŸã§ã¯ã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠã話ããŠããŸããã ããããã¯ç§ã®ææã«ã€ããŠæžããŸããããããå
ã¯ç§ããªãŒã¬ãã€ã¶ãŒãšããŠæ®æ®µã³ãã¥ããã£æŽ»åã«ã€ããŠèããŠããããšã§ãã®ã§ãç¹æ®µäŒç€ŸããäœãèšãããŠãããšããããšã§ã¯ãããŸããã誀解ãªããããé¡ãããŸãïŒç¬ äŒç€ŸããèŠããšãå°å.rbã®ã¹ãã³ãµãŒããããŸããïŒããå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããšãå°å.rbãéå¬ããŸããïŒããšãã話ã§çµããã®ã§ãããå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããã€ã€ãäŒç€ŸãšããŠå°å.rbã®æ¯æŽãããããšããç«å Žã§ã¿ããšãå°ãéã£ãèŠãæ¹ã«ãªããŸãã äŒæ¥ããããã£ãã¹ãã³ãµãŒããè¡ãéã«ã¯ãäžå®ã®è²»çšå¯Ÿå¹æãèããå¿
èŠãããããã§ãã ç§ãã¹ãã³ãµãŒãããåŽã®ç«å Žããããããã£ãäºæ
ãæãã«ããã°ããç¥å床åäžã®ããã«ç©æ¥µçã«è¡ãã¹ãããæ¡çšé¢ã«ãå°ãªãããããžãã£ãã«åããŠããããšäž»åŒµããããšã¯ã§ããŸãããå®éãããã£ãåŽé¢ã¯ãããšæããŸãããããããããã©ã®çšåºŠãã©ã¹ã«åããŠããã®ããæ£ããèšæž¬ããæ¹æ³ããªããããåºæ¬çã«ã¯ã³ãã¥ããã£ã¯ãã©ã³ãã£ã¢ã«è¿ãåœ¢ã§æ¯æŽããŠãããããšã«ãªããŸãã ãããã£ããã®ã¯ãé·ãç¶ããšã¯éããŸããããæ®æ®µãæ¯æŽããã ããŠããäŒç€Ÿã®çªå£æ
åœã®æ¹ããæ±ºæžè²¬ä»»è
ãå€ããã ãã§ç¶æ³ã¯å€ãããŸãã ããã«ã€ããŠã¯ããªãŒã¬ãã€ã¶ãŒãšããŠã¯ä»æ¹ãªããã®ãšèããŠãããã³ãã¥ããã£ãæç¶å¯èœãªãã®ã«ããããã«ãæå€§éåªåãããå¿
èŠããããšèããŠããŸãã 以å衚åé.rb 100åã®ãšãã«ãã衚åé.rb 100åã«å¯ããŠããšããã¿ã€ãã«ã§ããã³ãã¥ããã£ãç¶ç¶ããŠããããã«ã¯ã©ãããã°ãããããšããã話ããããŠããã ããŸããã ãã®äžã§ãã³ãã¥ããã£ãç¶ç¶ããããã®3èŠçŽ ãäž»å¬è
ã®ããæ°ã»ã¹ãã³ãµãŒãäŒæ¥ã»åå è
ãã®3ã€ãæããã³ãã¥ããã£ãé·ãç¶ãããã«ã©ãããã¹ããããšããã話ããããŠããã ããŸããã ã衚åé.rb 100åã«å¯ããŠã ã¡ãã¬ãŒãçŸåšã¯å°åRubyã³ãã¥ããã£ãç¡åã§å¿æŽããŠããç«å Žã§ã¯ãããŸããããããæªæ¥æ°žå«ç¶ããã¯åãããŸãããããå¯èœãªéã鷿鿝æŽã§ããããã«ãäžå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒãšããŠããããŠäŒç€Ÿã®äžã®äººãšããŠãåªåããããšæã£ãŠããŸãã ãŸãšã å°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠæžãããŠããã ããŸããã ã¡ãã¬ãŒã§ã¯ã衚åé.rbãšå
æ¬æš.rbã®å°åRubyã³ãã¥ããã£ã®æ¯æŽãããŠããã宿çã«ã¡ãã¬ãŒã§ãéå¬ããŠãããŸãã ããããèå³ãããŸãããæ¯ééã³ã«æ¥ãŠãã ããã 衚åé.rb https://omotesandorb.connpass.com/ å
æ¬æš.rb https://roppongirb.connpass.com/
ãã¡ãã®èšäºã¯ MedleyïŒã¡ãã¬ãŒïŒ Advent Calendar 2024 ã®12æ¥ç®ã®èšäºã§ãã ã¯ããã« ã¯ãããŸããŠãå»çãã©ãããã©ãŒã äºæ¥éšããããã¯ãéçºå®€ãDentiséçºã°ã«ãŒãã§ã°ã«ãŒããããžã£ãŒãããŠããç§ïŒX: @Kirika_K2 ïŒãšç³ããŸãã ã¡ãã¬ãŒã«ã¯2019幎ã«å
¥ç€Ÿãã以æ¥ãæ¯ç§å»é¢åãã®ã¯ã©ãŠããµãŒãã¹ Dentis ã®ç«ã¡äžãããããã¯ãéçºã«æºãã£ãŠããŸãã Dentisã¯å»çæ©é¢ã®äºçŽã»åä»ã»å蚺ã»ã«ã«ãã®èšé²ã»äŒèšæ¥åã»ä¿éºè«æ±æ¥åãŸã§ãããŒã¿ã«ã§ãµããŒãããã¯ã©ãŠãã·ã¹ãã ã§ãäž»ã«Ruby on RailsãšReactã§äœãããŠããŸãã æ¥ã
æ¯ç§å»çãã¡ã€ã³ã§ã客æ§ã®å£°ã«åãåããªãããå»çDXãæšé²ããŠããŸãã çå®ã«æé·ããŠãããããã¯ãã§ãã®ã§ããããèå³ãããŸããããã«ãžã¥ã¢ã«é¢è«çåãä»ããŠãããŸãã®ã§ãã声ãããã ãããïŒå®£äŒçµïŒ æ®æ®µã¯ãããã¯ãéçºã«åŸäºããŠããŸããããã©ã€ããŒãã§ã¯å°åRubyã³ãã¥ããã£ã®è¡šåé.rbãäž»å¬ããŠãããŸããŠãã¡ãã¬ãŒã§ãå°åRubyã³ãã¥ããã£æ¯æŽãšãã圢ã§ã衚åé.rbã®ã¹ãã³ãµãŒäŒæ¥ãšããŠãååããŠããã£ãŠããŸãã ä»åã®Advent Calendarã§ã¯ãäžå°åRubyã³ãã¥ããã£ãªãŒã¬ãã€ã¶ãŒã®ç«å ŽããèŠãã¡ãã¬ãŒã®å°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠæžãããšæããŸãã 衚åé.rbãšç§ã®é¢ãã 衚åé.rbã¯2015幎é ããå§ãŸã£ãã衚åéåšèŸºã®ãšã³ãžãã¢ãéãŸã£ãŠRubyã®åšèŸºæè¡ã«é¢ããæ
å ±äº€æãããå°åRubyã³ãã¥ããã£ã§ãã æ¯æç¬¬ïŒæšææ¥ã«éå¬ããŠãããæ¯æ1人10åçšåºŠã®ããŒã¯ã»ãã·ã§ã³ã6ãïŒæ¬ãšäº€æµäŒãè¡ã£ãŠããŸãã äžéšäŸå€ããããé嬿¥ãç¥æ¥çãšéãªãå Žåã¯ã1é±éããããŠç¬¬2æšææ¥ã«éå¬ããŠããŸãã ã¡ããã©ä»æã®ç¬¬1æšææ¥ã¯å³¶æ ¹çæŸæ±åžã§ãRubyWorld Conference 2025ãéå¬ãããŠããã衚åé.rbã«æ®æ®µæ¥ãŠããã£ãŠããå€ãã®æ¹ãæŸæ±ã«éåããŠããã®ã§ã第2æšææ¥ã®éå¬ã«ãªããŸããïŒã€ãŸã仿¥ã§ãïŒïŒ æ¯æç¬¬2é±ã¯ãåŸã»ã©ã話ããå
æ¬æš.rbã宿éå¬ãããŠãããååéå¬ãšãã圢ã§ã®éå¬ããŠããŸãã ã©ã¡ããæ¥œããã³ãã¥ããã£ã§ãã®ã§ãæ¯ééã³ã«æ¥ãŠãã ããã 衚åé.rb https://omotesandorb.connpass.com/ å
æ¬æš.rb https://roppongirb.connpass.com/ ç§ã¯ã2018幎é ããéå¶ã«é¢ããå§ãããã®åŸã¡ãã¬ãŒã«å
¥ç€Ÿããè·å Žãå
æ¬æšã«å€ãã£ãåŸãç¶ããŠããŸããã ã³ããçŠã«ãããªã³ã©ã€ã³éå¬ç§»è¡ããããŠãªãã©ã€ã³éå¬ã®åŸ©æŽ» 2020幎ã«ã³ããçŠã«ãªãããªãã©ã€ã³ã§ã®éå¬ãã§ããªããªãå幎ã»ã©éå¬ãèŠéã£ãŠããããšããããŸãããããªã³ã©ã€ã³éå¬ã«ç§»è¡ããŠéå¬ããŠããŸããã ã¡ããã©ã³ããçŠã§æ··ä¹±ããŠããé ãã³ãã¥ããã£ã掻åäŒæ¢ã«ãããããªã³ã©ã€ã³éå¬ã«ç§»è¡ãããæ©ã¿ãŸããããäžåºŠäžæ¢ã«ããŠããŸããšåéãããã£ããã倱ã£ãŠããŸãå¯èœæ§ããã£ãããããããŸã§éãã®é »åºŠã§éå¬ããããšã«æ±ºããŸããã ãŸããªã³ã©ã€ã³ã«ç§»è¡ããã«ããã£ãŠãããããäŒãªã©ããããŸã§ãšç°ãªã圢åŒã§ã®éå¬ãèããŸããããããã€ãã®ã³ãã¥ããã£ããªã³ã©ã€ã³ã«ç§»è¡ããŠããäžãããŒã¯ã»ãã·ã§ã³ãããã³ãã¥ããã£ã¯è²ŽéããšããæèŠãããã ãããããŸã§éãã®åœ¢åŒã§é²ããŠããããšã«ããŸããã ãªã³ã©ã€ã³éå¬ã®æã¯äººã®éãŸããè¯ããªãæãããã5åãããã§éå¬ããããšããããŸããããæ¯å誰ããçºè¡šãã¿ãæã¡èŸŒãã§ããããŸãçºè¡šãå°ãªãã£ãæ¥ã¯ãå°äººæ°ã§äœã£ãæéããã£ã¹ã«ãã·ã§ã³ã«å
ãŠãããšãã§ããã®ã§ãããã¯ããã§é¢çœã¿ããããŸããã ãŸãæ®æ®µé æ¹ã§è¡šåé.rbã«åå ã§ããªããããªæ¹ã«ãåå ããŠããã ããŠããã®ã§ãä»ã衚åé.rbãç¶ããŠããã®ã¯ãåœæå°äººæ°ã§ãéåããªãããã«ã³ãã¥ããã£ãæ¯ããŠãã ãã£ãæ¹ã
ã®ãé°ã§ãããšãŠããããããããšã§ããã 埡åç¥ã®ãšãããã³ããçŠã¯é·ãç¶ãããšã«ãªãããªã³ã©ã€ã³ã§ã®éå¬ã¯2020幎11æãã2023幎6æãŸã§è¡ãããŸããã RubyKaigiããªãã©ã€ã³éå¬ã«æ»ãã2023å¹Žã®æŸæ¬ã§ã®éå¬ããæ±äº¬ã«æ»ã£ãåŸã衚åé.rbããªãã©ã€ã³ã«æ»ãããšãèãå§ããŸããã ãã®éã«å¿
èŠã«ãªãã®ãéå¬ããäŒå Žã§ããåœæã¯ãŸã ãªãã©ã€ã³ã§äŒå ŽãæäŸããŠããã ããå Žæã¯å€ããªãããŸãæåã«çžè«ããã®ã¯èªåã®å€åå
ã§ããã¡ãã¬ãŒã§ããã ã¡ãã¬ãŒã§ã¯éå»ã«Rubyã³ãã¥ããã£ã®ããã«äŒå ŽæäŸãããããšã¯ãããŸããã§ããããç§ãå°åRubyã³ãã¥ããã£ã®äž»å¬ãç¶ç¶ããŠããããšããããæŽ»åãåŸæŒãããŠããã ããå¿«ãäŒå ŽæäŸãšæèŠªäŒã®äºç®ãã€ããŠããããŸããã 衚åé.rb #87 ã§ã¯åŒç€ŸãäŒå ŽæäŸãããŠããã ããŠãããŸã! #omotesandorb #ruby https://t.co/PDmvLeqLPN #omotesandorb â ã¡ãã¬ãŒ ãã£ãããããŒå
¬åŒ (@medley_dev) June 16, 2023 ãããããããšã«ããã®åã®è¡šåé.rbã«åå ããŠãã ãã£ãæ¹ã®äžããããèªåã®äŒç€Ÿã§ãäŒå ŽæäŸãããããšããç³ãåºãåããçŸåšã®è¡šåé.rbã¯10瀟ãããã®äŒæ¥ããäŒå Žã¹ãã³ãµãŒããããŠããã ããæ¯åéå¬äŒå Žãå€ããªãããç¶ç¶ããŠããŸãã ãããŠãä»å¹Ž2024幎8æã«è¡šåé.rbã¯ãã§ãã100åç®ã®éå¬ãè¿ããŸããã æ¬åœã«æ§ã
ãªäººã«æ¯ããããŠéå¬ã§ãã100åéå¬ã ãªããšæããŸãã 衚åérb 100åããïŒïŒððððð #omotesandorb #roppongirb pic.twitter.com/1qe2aJWMcZ â ãã£ããŒðºãã¯ãªã³ã¯EM (@kuronekopunk) August 1, 2024 å
æ¬æš.rbã®åŸ©æŽ»ãšã¡ãã¬ãŒãšã®é¢ãã ã¡ããã©ä»å¹Žã®ã¯ãããããã®é ã«ã衚åé.rbã«åå ãããŠããryoskãã(X: @ryosk7 )ããå
æ¬æš.rbãåå§åãããããšãã話ããããäŒå Žãæ¢ããŠãããšãã話ããããŸããã å
æ¬æš.rbã¯å
æ¬æšåšèŸºã®äŒæ¥ã§åããšã³ãžãã¢ãéãŸãRubyã³ãã¥ããã£ã§ãã³ããåãŸã§ã¯æã
éå¬ãããŠããããã§ããããã¡ããã³ããã§äŒæ¢ããŠããã³ãã¥ããã£ã§ããã ã¡ãã¬ãŒã¯å
æ¬æšã®äŒæ¥ãšããããšãããã衚åé.rbåæ§ã«å
æ¬æš.rbãæ¯æŽããŠããããããšããããšã§äŒç€Ÿã«çžè«ãããšããããã¡ããäŒå ŽæäŸãšæèŠªäŒäºç®ãã€ããŠããããããšã«ãªããŸããã ãã®æã¡ãã¬ãŒã¯RubyKaigi 2024ã®Rubyã¹ãã³ãµãŒãšããŠåè³ããŠãããæçµæ¥ã®åºèª¿è¬æŒåã®ã¹ãã³ãµãŒã»ãã·ã§ã³æ ãããã£ãã¿ã€ãã³ã°ã ã£ããããã©ãããªããç倧ã«å®£äŒããŠãããããšããããšã§ãåŒç€ŸVPoEã®å±±åŽã«ãå°å.rbæ¯æŽã®ä»¶ã«ã€ããŠç޹ä»ããŠããããŸããã ãã ããŸçºè¡šããããŸãããã Roppongi.rb ã埩掻ããŸãïŒïŒïŒð å
æ¬æšåšèŸºã®äŒæ¥ããã®ãåãåããŠãªãã©ã€ã³éå¬ãããŸãã 6æ13æ¥ã¯ã¡ãã¬ãŒããã®ãªãã£ã¹ããåãããŸãã ããããconnpassã®æ¹ãå±éããŸãïŒ ãããããé¡ãããŸãð #rubykaigi https://t.co/zo2t6KGPrj â ryosk7ðŠ (@ryosk7) May 17, 2024 RubyKaigi 2024 ã« Ruby Sponsor ãšããŠåè³ããŸããïŒ - MEDLEY Developers Portal ãã以æ¥ãå
æ¬æš.rbã¯ã¡ãã¬ãŒãå«ã4ç€Ÿã§æ1åã®å®æéå¬ããŠããŸãã ã¡ãã¬ãŒããã®ãªãã£ã¹ã«çããŸããïŒ ä»æ¥ã¯ãã¡ãã§Roppongi.rbãè¡ããŸãã #roppongirb pic.twitter.com/UioFP3FEyY â ryosk7ðŠ (@ryosk7) June 13, 2024 å°åRubyã³ãã¥ããã£æ¯æŽã«äŒŽããããžãã£ããªå¹æ ãã®ãããªæŽ»åãç¶ããŠããŠãäŒç€Ÿã«ã©ã®ãããªå€åããã£ããã«ã€ããŠè§ŠããããšæããŸãã ãŸã1ã€ç®ã¯ãæ®æ®µã®ä»äºã§äŒããªã瀟å
ã®äººãã¡ãšç€Ÿå€ã®ã€ãã³ãã§é¡ãåãããããã«ãªã£ããããšã§ãã 2022幎RubyKaigiã®æ§åããã®å¹Žã¯ã³ããäŒæ¢ããã®ãªããŒããšããããšããããããŒã¹åºå±ããªãã£ãã®ã§ãèªåããåå ããŠãªãã£ã 2023幎RubyKaigiã®æ§åãäŒå Žã®æ§åãèŠãŠããŠæ¬²ãããšèšãããè¥æãšã³ãžãã¢ãšãå®ã¯ãã®æåçãæ®ã£ãŠããã£ã人ãããã®åŸæ°åãšããŠã¡ãã¬ãŒã«å
¥ããšãããã©ã¯ã«ãèµ·ããŸãã 2024幎RubyKaigiã®æ§åãã¹ãã³ãµãŒããŒã¹ã«ãŠ ç€Ÿå
ã§Rubyã®ã€ãã³ããåç¥ããããã«ãªã£ãŠãããåå ããŠããã人ãå¢ããŸããã å
æ¥ã®Kaigi on Railsã§ããæ¥åãšã¯é¢ä¿ãªãæ¥ããšèšã人éã§éãŸãäžå¹ããããå€åãæããéšåã§ããããŸããã ããäžã€ã¯ããã¯ã瀟å€ãžã®èªç¥ã§ãä»å¹Žã®RubyKaigi 2024ã§ã¯Rubyã¹ãã³ãµãŒã§ããŒã¹ãåºããŠããã®ã§ãããã衚åé.rbã§äŒç€Ÿã«è¡ã£ãããšããããŸãããšæããŠãã ããäººãæ°åããã£ããã£ãããä»å¹Žå
¥ç€Ÿãããæ¹ãã衚åé.rbã«åå ããããšããããŸãããšæããŠãã ãã£ãããå°ãªãããããžãã£ããªåŽé¢ããããªãããšæããããšããããŸããããããã£ã声ã宿çã«èããã®ã¯ã¹ãã³ãµãŒãããŠããåŽãšããŠã¯ãšãŠãå¬ããã§ãã å°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ãã ããŠããããŸã§ã¯ã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠã話ããŠããŸããã ããããã¯ç§ã®ææã«ã€ããŠæžããŸããããããå
ã¯ç§ããªãŒã¬ãã€ã¶ãŒãšããŠæ®æ®µã³ãã¥ããã£æŽ»åã«ã€ããŠèããŠããããšã§ãã®ã§ãç¹æ®µäŒç€ŸããäœãèšãããŠãããšããããšã§ã¯ãããŸããã誀解ãªããããé¡ãããŸãïŒç¬ äŒç€ŸããèŠããšãå°å.rbã®ã¹ãã³ãµãŒããããŸããïŒããå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããšãå°å.rbãéå¬ããŸããïŒããšãã話ã§çµããã®ã§ãããå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããã€ã€ãäŒç€ŸãšããŠå°å.rbã®æ¯æŽãããããšããç«å Žã§ã¿ããšãå°ãéã£ãèŠãæ¹ã«ãªããŸãã äŒæ¥ããããã£ãã¹ãã³ãµãŒããè¡ãéã«ã¯ãäžå®ã®è²»çšå¯Ÿå¹æãèããå¿
èŠãããããã§ãã ç§ãã¹ãã³ãµãŒãããåŽã®ç«å Žããããããã£ãäºæ
ãæãã«ããã°ããç¥å床åäžã®ããã«ç©æ¥µçã«è¡ãã¹ãããæ¡çšé¢ã«ãå°ãªãããããžãã£ãã«åããŠããããšäž»åŒµããããšã¯ã§ããŸãããå®éãããã£ãåŽé¢ã¯ãããšæããŸãããããããããã©ã®çšåºŠãã©ã¹ã«åããŠããã®ããæ£ããèšæž¬ããæ¹æ³ããªããããåºæ¬çã«ã¯ã³ãã¥ããã£ã¯ãã©ã³ãã£ã¢ã«è¿ãåœ¢ã§æ¯æŽããŠãããããšã«ãªããŸãã ãããã£ããã®ã¯ãé·ãç¶ããšã¯éããŸããããæ®æ®µãæ¯æŽããã ããŠããäŒç€Ÿã®çªå£æ
åœã®æ¹ããæ±ºæžè²¬ä»»è
ãå€ããã ãã§ç¶æ³ã¯å€ãããŸãã ããã«ã€ããŠã¯ããªãŒã¬ãã€ã¶ãŒãšããŠã¯ä»æ¹ãªããã®ãšèããŠãããã³ãã¥ããã£ãæç¶å¯èœãªãã®ã«ããããã«ãæå€§éåªåãããå¿
èŠããããšèããŠããŸãã 以å衚åé.rb 100åã®ãšãã«ãã衚åé.rb 100åã«å¯ããŠããšããã¿ã€ãã«ã§ããã³ãã¥ããã£ãç¶ç¶ããŠããããã«ã¯ã©ãããã°ãããããšããã話ããããŠããã ããŸããã ãã®äžã§ãã³ãã¥ããã£ãç¶ç¶ããããã®3èŠçŽ ãäž»å¬è
ã®ããæ°ã»ã¹ãã³ãµãŒãäŒæ¥ã»åå è
ãã®3ã€ãæããã³ãã¥ããã£ãé·ãç¶ãããã«ã©ãããã¹ããããšããã話ããããŠããã ããŸããã ã衚åé.rb 100åã«å¯ããŠã ã¡ãã¬ãŒãçŸåšã¯å°åRubyã³ãã¥ããã£ãç¡åã§å¿æŽããŠããç«å Žã§ã¯ãããŸããããããæªæ¥æ°žå«ç¶ããã¯åãããŸãããããå¯èœãªéã鷿鿝æŽã§ããããã«ãäžå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒãšããŠããããŠäŒç€Ÿã®äžã®äººãšããŠãåªåããããšæã£ãŠããŸãã ãŸãšã å°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠæžãããŠããã ããŸããã ã¡ãã¬ãŒã§ã¯ã衚åé.rbãšå
æ¬æš.rbã®å°åRubyã³ãã¥ããã£ã®æ¯æŽãããŠããã宿çã«ã¡ãã¬ãŒã§ãéå¬ããŠãããŸãã ããããèå³ãããŸãããæ¯ééã³ã«æ¥ãŠãã ããã 衚åé.rb https://omotesandorb.connpass.com/ å
æ¬æš.rb https://roppongirb.connpass.com/
ãã¡ãã®èšäºã¯ MedleyïŒã¡ãã¬ãŒïŒ Advent Calendar 2024 ã®12æ¥ç®ã®èšäºã§ãã ã¯ããã« ã¯ãããŸããŠãå»çãã©ãããã©ãŒã äºæ¥éšããããã¯ãéçºå®€ãDentiséçºã°ã«ãŒãã§ã°ã«ãŒããããžã£ãŒãããŠããç§ïŒX: @Kirika_K2 ïŒãšç³ããŸãã ã¡ãã¬ãŒã«ã¯2019幎ã«å
¥ç€Ÿãã以æ¥ãæ¯ç§å»é¢åãã®ã¯ã©ãŠããµãŒãã¹ Dentis ã®ç«ã¡äžãããããã¯ãéçºã«æºãã£ãŠããŸãã Dentisã¯å»çæ©é¢ã®äºçŽã»åä»ã»å蚺ã»ã«ã«ãã®èšé²ã»äŒèšæ¥åã»ä¿éºè«æ±æ¥åãŸã§ãããŒã¿ã«ã§ãµããŒãããã¯ã©ãŠãã·ã¹ãã ã§ãäž»ã«Ruby on RailsãšReactã§äœãããŠããŸãã æ¥ã
æ¯ç§å»çãã¡ã€ã³ã§ã客æ§ã®å£°ã«åãåããªãããå»çDXãæšé²ããŠããŸãã çå®ã«æé·ããŠãããããã¯ãã§ãã®ã§ããããèå³ãããŸããããã«ãžã¥ã¢ã«é¢è«çåãä»ããŠãããŸãã®ã§ãã声ãããã ãããïŒå®£äŒçµïŒ æ®æ®µã¯ãããã¯ãéçºã«åŸäºããŠããŸããããã©ã€ããŒãã§ã¯å°åRubyã³ãã¥ããã£ã®è¡šåé.rbãäž»å¬ããŠãããŸããŠãã¡ãã¬ãŒã§ãå°åRubyã³ãã¥ããã£æ¯æŽãšãã圢ã§ã衚åé.rbã®ã¹ãã³ãµãŒäŒæ¥ãšããŠãååããŠããã£ãŠããŸãã ä»åã®Advent Calendarã§ã¯ãäžå°åRubyã³ãã¥ããã£ãªãŒã¬ãã€ã¶ãŒã®ç«å ŽããèŠãã¡ãã¬ãŒã®å°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠæžãããšæããŸãã 衚åé.rbãšç§ã®é¢ãã 衚åé.rbã¯2015幎é ããå§ãŸã£ãã衚åéåšèŸºã®ãšã³ãžãã¢ãéãŸã£ãŠRubyã®åšèŸºæè¡ã«é¢ããæ
å ±äº€æãããå°åRubyã³ãã¥ããã£ã§ãã æ¯æç¬¬ïŒæšææ¥ã«éå¬ããŠãããæ¯æ1人10åçšåºŠã®ããŒã¯ã»ãã·ã§ã³ã6ãïŒæ¬ãšäº€æµäŒãè¡ã£ãŠããŸãã äžéšäŸå€ããããé嬿¥ãç¥æ¥çãšéãªãå Žåã¯ã1é±éããããŠç¬¬2æšææ¥ã«éå¬ããŠããŸãã ã¡ããã©ä»æã®ç¬¬1æšææ¥ã¯å³¶æ ¹çæŸæ±åžã§ãRubyWorld Conference 2025ãéå¬ãããŠããã衚åé.rbã«æ®æ®µæ¥ãŠããã£ãŠããå€ãã®æ¹ãæŸæ±ã«éåããŠããã®ã§ã第2æšææ¥ã®éå¬ã«ãªããŸããïŒã€ãŸã仿¥ã§ãïŒïŒ æ¯æç¬¬2é±ã¯ãåŸã»ã©ã話ããå
æ¬æš.rbã宿éå¬ãããŠãããååéå¬ãšãã圢ã§ã®éå¬ããŠããŸãã ã©ã¡ããæ¥œããã³ãã¥ããã£ã§ãã®ã§ãæ¯ééã³ã«æ¥ãŠãã ããã 衚åé.rb https://omotesandorb.connpass.com/ å
æ¬æš.rb https://roppongirb.connpass.com/ ç§ã¯ã2018幎é ããéå¶ã«é¢ããå§ãããã®åŸã¡ãã¬ãŒã«å
¥ç€Ÿããè·å Žãå
æ¬æšã«å€ãã£ãåŸãç¶ããŠããŸããã ã³ããçŠã«ãããªã³ã©ã€ã³éå¬ç§»è¡ããããŠãªãã©ã€ã³éå¬ã®åŸ©æŽ» 2020幎ã«ã³ããçŠã«ãªãããªãã©ã€ã³ã§ã®éå¬ãã§ããªããªãå幎ã»ã©éå¬ãèŠéã£ãŠããããšããããŸãããããªã³ã©ã€ã³éå¬ã«ç§»è¡ããŠéå¬ããŠããŸããã ã¡ããã©ã³ããçŠã§æ··ä¹±ããŠããé ãã³ãã¥ããã£ã掻åäŒæ¢ã«ãããããªã³ã©ã€ã³éå¬ã«ç§»è¡ãããæ©ã¿ãŸããããäžåºŠäžæ¢ã«ããŠããŸããšåéãããã£ããã倱ã£ãŠããŸãå¯èœæ§ããã£ãããããããŸã§éãã®é »åºŠã§éå¬ããããšã«æ±ºããŸããã ãŸããªã³ã©ã€ã³ã«ç§»è¡ããã«ããã£ãŠãããããäŒãªã©ããããŸã§ãšç°ãªã圢åŒã§ã®éå¬ãèããŸããããããã€ãã®ã³ãã¥ããã£ããªã³ã©ã€ã³ã«ç§»è¡ããŠããäžãããŒã¯ã»ãã·ã§ã³ãããã³ãã¥ããã£ã¯è²ŽéããšããæèŠãããã ãããããŸã§éãã®åœ¢åŒã§é²ããŠããããšã«ããŸããã ãªã³ã©ã€ã³éå¬ã®æã¯äººã®éãŸããè¯ããªãæãããã5åãããã§éå¬ããããšããããŸããããæ¯å誰ããçºè¡šãã¿ãæã¡èŸŒãã§ããããŸãçºè¡šãå°ãªãã£ãæ¥ã¯ãå°äººæ°ã§äœã£ãæéããã£ã¹ã«ãã·ã§ã³ã«å
ãŠãããšãã§ããã®ã§ãããã¯ããã§é¢çœã¿ããããŸããã ãŸãæ®æ®µé æ¹ã§è¡šåé.rbã«åå ã§ããªããããªæ¹ã«ãåå ããŠããã ããŠããã®ã§ãä»ã衚åé.rbãç¶ããŠããã®ã¯ãåœæå°äººæ°ã§ãéåããªãããã«ã³ãã¥ããã£ãæ¯ããŠãã ãã£ãæ¹ã
ã®ãé°ã§ãããšãŠããããããããšã§ããã 埡åç¥ã®ãšãããã³ããçŠã¯é·ãç¶ãããšã«ãªãããªã³ã©ã€ã³ã§ã®éå¬ã¯2020幎11æãã2023幎6æãŸã§è¡ãããŸããã RubyKaigiããªãã©ã€ã³éå¬ã«æ»ãã2023å¹Žã®æŸæ¬ã§ã®éå¬ããæ±äº¬ã«æ»ã£ãåŸã衚åé.rbããªãã©ã€ã³ã«æ»ãããšãèãå§ããŸããã ãã®éã«å¿
èŠã«ãªãã®ãéå¬ããäŒå Žã§ããåœæã¯ãŸã ãªãã©ã€ã³ã§äŒå ŽãæäŸããŠããã ããå Žæã¯å€ããªãããŸãæåã«çžè«ããã®ã¯èªåã®å€åå
ã§ããã¡ãã¬ãŒã§ããã ã¡ãã¬ãŒã§ã¯éå»ã«Rubyã³ãã¥ããã£ã®ããã«äŒå ŽæäŸãããããšã¯ãããŸããã§ããããç§ãå°åRubyã³ãã¥ããã£ã®äž»å¬ãç¶ç¶ããŠããããšããããæŽ»åãåŸæŒãããŠããã ããå¿«ãäŒå ŽæäŸãšæèŠªäŒã®äºç®ãã€ããŠããããŸããã 衚åé.rb #87 ã§ã¯åŒç€ŸãäŒå ŽæäŸãããŠããã ããŠãããŸã! #omotesandorb #ruby https://t.co/PDmvLeqLPN #omotesandorb â ã¡ãã¬ãŒ ãã£ãããããŒå
¬åŒ (@medley_dev) June 16, 2023 ãããããããšã«ããã®åã®è¡šåé.rbã«åå ããŠãã ãã£ãæ¹ã®äžããããèªåã®äŒç€Ÿã§ãäŒå ŽæäŸãããããšããç³ãåºãåããçŸåšã®è¡šåé.rbã¯10瀟ãããã®äŒæ¥ããäŒå Žã¹ãã³ãµãŒããããŠããã ããæ¯åéå¬äŒå Žãå€ããªãããç¶ç¶ããŠããŸãã ãããŠãä»å¹Ž2024幎8æã«è¡šåé.rbã¯ãã§ãã100åç®ã®éå¬ãè¿ããŸããã æ¬åœã«æ§ã
ãªäººã«æ¯ããããŠéå¬ã§ãã100åéå¬ã ãªããšæããŸãã 衚åérb 100åããïŒïŒððððð #omotesandorb #roppongirb pic.twitter.com/1qe2aJWMcZ â ãã£ããŒðºãã¯ãªã³ã¯EM (@kuronekopunk) August 1, 2024 å
æ¬æš.rbã®åŸ©æŽ»ãšã¡ãã¬ãŒãšã®é¢ãã ã¡ããã©ä»å¹Žã®ã¯ãããããã®é ã«ã衚åé.rbã«åå ãããŠããryoskãã(X: @ryosk7 )ããå
æ¬æš.rbãåå§åãããããšãã話ããããäŒå Žãæ¢ããŠãããšãã話ããããŸããã å
æ¬æš.rbã¯å
æ¬æšåšèŸºã®äŒæ¥ã§åããšã³ãžãã¢ãéãŸãRubyã³ãã¥ããã£ã§ãã³ããåãŸã§ã¯æã
éå¬ãããŠããããã§ããããã¡ããã³ããã§äŒæ¢ããŠããã³ãã¥ããã£ã§ããã ã¡ãã¬ãŒã¯å
æ¬æšã®äŒæ¥ãšããããšãããã衚åé.rbåæ§ã«å
æ¬æš.rbãæ¯æŽããŠããããããšããããšã§äŒç€Ÿã«çžè«ãããšããããã¡ããäŒå ŽæäŸãšæèŠªäŒäºç®ãã€ããŠããããããšã«ãªããŸããã ãã®æã¡ãã¬ãŒã¯RubyKaigi 2024ã®Rubyã¹ãã³ãµãŒãšããŠåè³ããŠãããæçµæ¥ã®åºèª¿è¬æŒåã®ã¹ãã³ãµãŒã»ãã·ã§ã³æ ãããã£ãã¿ã€ãã³ã°ã ã£ããããã©ãããªããç倧ã«å®£äŒããŠãããããšããããšã§ãåŒç€ŸVPoEã®å±±åŽã«ãå°å.rbæ¯æŽã®ä»¶ã«ã€ããŠç޹ä»ããŠããããŸããã ãã ããŸçºè¡šããããŸãããã Roppongi.rb ã埩掻ããŸãïŒïŒïŒð å
æ¬æšåšèŸºã®äŒæ¥ããã®ãåãåããŠãªãã©ã€ã³éå¬ãããŸãã 6æ13æ¥ã¯ã¡ãã¬ãŒããã®ãªãã£ã¹ããåãããŸãã ããããconnpassã®æ¹ãå±éããŸãïŒ ãããããé¡ãããŸãð #rubykaigi https://t.co/zo2t6KGPrj â ryosk7ðŠ (@ryosk7) May 17, 2024 RubyKaigi 2024 ã« Ruby Sponsor ãšããŠåè³ããŸããïŒ - MEDLEY Developers Portal ãã以æ¥ãå
æ¬æš.rbã¯ã¡ãã¬ãŒãå«ã4ç€Ÿã§æ1åã®å®æéå¬ããŠããŸãã ã¡ãã¬ãŒããã®ãªãã£ã¹ã«çããŸããïŒ ä»æ¥ã¯ãã¡ãã§Roppongi.rbãè¡ããŸãã #roppongirb pic.twitter.com/UioFP3FEyY â ryosk7ðŠ (@ryosk7) June 13, 2024 å°åRubyã³ãã¥ããã£æ¯æŽã«äŒŽããããžãã£ããªå¹æ ãã®ãããªæŽ»åãç¶ããŠããŠãäŒç€Ÿã«ã©ã®ãããªå€åããã£ããã«ã€ããŠè§ŠããããšæããŸãã ãŸã1ã€ç®ã¯ãæ®æ®µã®ä»äºã§äŒããªã瀟å
ã®äººãã¡ãšç€Ÿå€ã®ã€ãã³ãã§é¡ãåãããããã«ãªã£ããããšã§ãã 2022幎RubyKaigiã®æ§åããã®å¹Žã¯ã³ããäŒæ¢ããã®ãªããŒããšããããšããããããŒã¹åºå±ããªãã£ãã®ã§ãèªåããåå ããŠãªãã£ã 2023幎RubyKaigiã®æ§åãäŒå Žã®æ§åãèŠãŠããŠæ¬²ãããšèšãããè¥æãšã³ãžãã¢ãšãå®ã¯ãã®æåçãæ®ã£ãŠããã£ã人ãããã®åŸæ°åãšããŠã¡ãã¬ãŒã«å
¥ããšãããã©ã¯ã«ãèµ·ããŸãã 2024幎RubyKaigiã®æ§åãã¹ãã³ãµãŒããŒã¹ã«ãŠ ç€Ÿå
ã§Rubyã®ã€ãã³ããåç¥ããããã«ãªã£ãŠãããåå ããŠããã人ãå¢ããŸããã å
æ¥ã®Kaigi on Railsã§ããæ¥åãšã¯é¢ä¿ãªãæ¥ããšèšã人éã§éãŸãäžå¹ããããå€åãæããéšåã§ããããŸããã ããäžã€ã¯ããã¯ã瀟å€ãžã®èªç¥ã§ãä»å¹Žã®RubyKaigi 2024ã§ã¯Rubyã¹ãã³ãµãŒã§ããŒã¹ãåºããŠããã®ã§ãããã衚åé.rbã§äŒç€Ÿã«è¡ã£ãããšããããŸãããšæããŠãã ããäººãæ°åããã£ããã£ãããä»å¹Žå
¥ç€Ÿãããæ¹ãã衚åé.rbã«åå ããããšããããŸãããšæããŠãã ãã£ãããå°ãªãããããžãã£ããªåŽé¢ããããªãããšæããããšããããŸããããããã£ã声ã宿çã«èããã®ã¯ã¹ãã³ãµãŒãããŠããåŽãšããŠã¯ãšãŠãå¬ããã§ãã å°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ãã ããŠããããŸã§ã¯ã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠã話ããŠããŸããã ããããã¯ç§ã®ææã«ã€ããŠæžããŸããããããå
ã¯ç§ããªãŒã¬ãã€ã¶ãŒãšããŠæ®æ®µã³ãã¥ããã£æŽ»åã«ã€ããŠèããŠããããšã§ãã®ã§ãç¹æ®µäŒç€ŸããäœãèšãããŠãããšããããšã§ã¯ãããŸããã誀解ãªããããé¡ãããŸãïŒç¬ äŒç€ŸããèŠããšãå°å.rbã®ã¹ãã³ãµãŒããããŸããïŒããå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããšãå°å.rbãéå¬ããŸããïŒããšãã話ã§çµããã®ã§ãããå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããã€ã€ãäŒç€ŸãšããŠå°å.rbã®æ¯æŽãããããšããç«å Žã§ã¿ããšãå°ãéã£ãèŠãæ¹ã«ãªããŸãã äŒæ¥ããããã£ãã¹ãã³ãµãŒããè¡ãéã«ã¯ãäžå®ã®è²»çšå¯Ÿå¹æãèããå¿
èŠãããããã§ãã ç§ãã¹ãã³ãµãŒãããåŽã®ç«å Žããããããã£ãäºæ
ãæãã«ããã°ããç¥å床åäžã®ããã«ç©æ¥µçã«è¡ãã¹ãããæ¡çšé¢ã«ãå°ãªãããããžãã£ãã«åããŠããããšäž»åŒµããããšã¯ã§ããŸãããå®éãããã£ãåŽé¢ã¯ãããšæããŸãããããããããã©ã®çšåºŠãã©ã¹ã«åããŠããã®ããæ£ããèšæž¬ããæ¹æ³ããªããããåºæ¬çã«ã¯ã³ãã¥ããã£ã¯ãã©ã³ãã£ã¢ã«è¿ãåœ¢ã§æ¯æŽããŠãããããšã«ãªããŸãã ãããã£ããã®ã¯ãé·ãç¶ããšã¯éããŸããããæ®æ®µãæ¯æŽããã ããŠããäŒç€Ÿã®çªå£æ
åœã®æ¹ããæ±ºæžè²¬ä»»è
ãå€ããã ãã§ç¶æ³ã¯å€ãããŸãã ããã«ã€ããŠã¯ããªãŒã¬ãã€ã¶ãŒãšããŠã¯ä»æ¹ãªããã®ãšèããŠãããã³ãã¥ããã£ãæç¶å¯èœãªãã®ã«ããããã«ãæå€§éåªåãããå¿
èŠããããšèããŠããŸãã 以å衚åé.rb 100åã®ãšãã«ãã衚åé.rb 100åã«å¯ããŠããšããã¿ã€ãã«ã§ããã³ãã¥ããã£ãç¶ç¶ããŠããããã«ã¯ã©ãããã°ãããããšããã話ããããŠããã ããŸããã ãã®äžã§ãã³ãã¥ããã£ãç¶ç¶ããããã®3èŠçŽ ãäž»å¬è
ã®ããæ°ã»ã¹ãã³ãµãŒãäŒæ¥ã»åå è
ãã®3ã€ãæããã³ãã¥ããã£ãé·ãç¶ãããã«ã©ãããã¹ããããšããã話ããããŠããã ããŸããã ã衚åé.rb 100åã«å¯ããŠã ã¡ãã¬ãŒãçŸåšã¯å°åRubyã³ãã¥ããã£ãç¡åã§å¿æŽããŠããç«å Žã§ã¯ãããŸããããããæªæ¥æ°žå«ç¶ããã¯åãããŸãããããå¯èœãªéã鷿鿝æŽã§ããããã«ãäžå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒãšããŠããããŠäŒç€Ÿã®äžã®äººãšããŠãåªåããããšæã£ãŠããŸãã ãŸãšã å°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠæžãããŠããã ããŸããã ã¡ãã¬ãŒã§ã¯ã衚åé.rbãšå
æ¬æš.rbã®å°åRubyã³ãã¥ããã£ã®æ¯æŽãããŠããã宿çã«ã¡ãã¬ãŒã§ãéå¬ããŠãããŸãã ããããèå³ãããŸãããæ¯ééã³ã«æ¥ãŠãã ããã 衚åé.rb https://omotesandorb.connpass.com/ å
æ¬æš.rb https://roppongirb.connpass.com/
ãã¡ãã®èšäºã¯ MedleyïŒã¡ãã¬ãŒïŒ Advent Calendar 2024 ã®12æ¥ç®ã®èšäºã§ãã ã¯ããã« ã¯ãããŸããŠãå»çãã©ãããã©ãŒã äºæ¥éšããããã¯ãéçºå®€ãDentiséçºã°ã«ãŒãã§ã°ã«ãŒããããžã£ãŒãããŠããç§ïŒX: @Kirika_K2 ïŒãšç³ããŸãã ã¡ãã¬ãŒã«ã¯2019幎ã«å
¥ç€Ÿãã以æ¥ãæ¯ç§å»é¢åãã®ã¯ã©ãŠããµãŒãã¹ Dentis ã®ç«ã¡äžãããããã¯ãéçºã«æºãã£ãŠããŸãã Dentisã¯å»çæ©é¢ã®äºçŽã»åä»ã»å蚺ã»ã«ã«ãã®èšé²ã»äŒèšæ¥åã»ä¿éºè«æ±æ¥åãŸã§ãããŒã¿ã«ã§ãµããŒãããã¯ã©ãŠãã·ã¹ãã ã§ãäž»ã«Ruby on RailsãšReactã§äœãããŠããŸãã æ¥ã
æ¯ç§å»çãã¡ã€ã³ã§ã客æ§ã®å£°ã«åãåããªãããå»çDXãæšé²ããŠããŸãã çå®ã«æé·ããŠãããããã¯ãã§ãã®ã§ããããèå³ãããŸããããã«ãžã¥ã¢ã«é¢è«çåãä»ããŠãããŸãã®ã§ãã声ãããã ãããïŒå®£äŒçµïŒ æ®æ®µã¯ãããã¯ãéçºã«åŸäºããŠããŸããããã©ã€ããŒãã§ã¯å°åRubyã³ãã¥ããã£ã®è¡šåé.rbãäž»å¬ããŠãããŸããŠãã¡ãã¬ãŒã§ãå°åRubyã³ãã¥ããã£æ¯æŽãšãã圢ã§ã衚åé.rbã®ã¹ãã³ãµãŒäŒæ¥ãšããŠãååããŠããã£ãŠããŸãã ä»åã®Advent Calendarã§ã¯ãäžå°åRubyã³ãã¥ããã£ãªãŒã¬ãã€ã¶ãŒã®ç«å ŽããèŠãã¡ãã¬ãŒã®å°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠæžãããšæããŸãã 衚åé.rbãšç§ã®é¢ãã 衚åé.rbã¯2015幎é ããå§ãŸã£ãã衚åéåšèŸºã®ãšã³ãžãã¢ãéãŸã£ãŠRubyã®åšèŸºæè¡ã«é¢ããæ
å ±äº€æãããå°åRubyã³ãã¥ããã£ã§ãã æ¯æç¬¬ïŒæšææ¥ã«éå¬ããŠãããæ¯æ1人10åçšåºŠã®ããŒã¯ã»ãã·ã§ã³ã6ãïŒæ¬ãšäº€æµäŒãè¡ã£ãŠããŸãã äžéšäŸå€ããããé嬿¥ãç¥æ¥çãšéãªãå Žåã¯ã1é±éããããŠç¬¬2æšææ¥ã«éå¬ããŠããŸãã ã¡ããã©ä»æã®ç¬¬1æšææ¥ã¯å³¶æ ¹çæŸæ±åžã§ãRubyWorld Conference 2025ãéå¬ãããŠããã衚åé.rbã«æ®æ®µæ¥ãŠããã£ãŠããå€ãã®æ¹ãæŸæ±ã«éåããŠããã®ã§ã第2æšææ¥ã®éå¬ã«ãªããŸããïŒã€ãŸã仿¥ã§ãïŒïŒ æ¯æç¬¬2é±ã¯ãåŸã»ã©ã話ããå
æ¬æš.rbã宿éå¬ãããŠãããååéå¬ãšãã圢ã§ã®éå¬ããŠããŸãã ã©ã¡ããæ¥œããã³ãã¥ããã£ã§ãã®ã§ãæ¯ééã³ã«æ¥ãŠãã ããã 衚åé.rb https://omotesandorb.connpass.com/ å
æ¬æš.rb https://roppongirb.connpass.com/ ç§ã¯ã2018幎é ããéå¶ã«é¢ããå§ãããã®åŸã¡ãã¬ãŒã«å
¥ç€Ÿããè·å Žãå
æ¬æšã«å€ãã£ãåŸãç¶ããŠããŸããã ã³ããçŠã«ãããªã³ã©ã€ã³éå¬ç§»è¡ããããŠãªãã©ã€ã³éå¬ã®åŸ©æŽ» 2020幎ã«ã³ããçŠã«ãªãããªãã©ã€ã³ã§ã®éå¬ãã§ããªããªãå幎ã»ã©éå¬ãèŠéã£ãŠããããšããããŸãããããªã³ã©ã€ã³éå¬ã«ç§»è¡ããŠéå¬ããŠããŸããã ã¡ããã©ã³ããçŠã§æ··ä¹±ããŠããé ãã³ãã¥ããã£ã掻åäŒæ¢ã«ãããããªã³ã©ã€ã³éå¬ã«ç§»è¡ãããæ©ã¿ãŸããããäžåºŠäžæ¢ã«ããŠããŸããšåéãããã£ããã倱ã£ãŠããŸãå¯èœæ§ããã£ãããããããŸã§éãã®é »åºŠã§éå¬ããããšã«æ±ºããŸããã ãŸããªã³ã©ã€ã³ã«ç§»è¡ããã«ããã£ãŠãããããäŒãªã©ããããŸã§ãšç°ãªã圢åŒã§ã®éå¬ãèããŸããããããã€ãã®ã³ãã¥ããã£ããªã³ã©ã€ã³ã«ç§»è¡ããŠããäžãããŒã¯ã»ãã·ã§ã³ãããã³ãã¥ããã£ã¯è²ŽéããšããæèŠãããã ãããããŸã§éãã®åœ¢åŒã§é²ããŠããããšã«ããŸããã ãªã³ã©ã€ã³éå¬ã®æã¯äººã®éãŸããè¯ããªãæãããã5åãããã§éå¬ããããšããããŸããããæ¯å誰ããçºè¡šãã¿ãæã¡èŸŒãã§ããããŸãçºè¡šãå°ãªãã£ãæ¥ã¯ãå°äººæ°ã§äœã£ãæéããã£ã¹ã«ãã·ã§ã³ã«å
ãŠãããšãã§ããã®ã§ãããã¯ããã§é¢çœã¿ããããŸããã ãŸãæ®æ®µé æ¹ã§è¡šåé.rbã«åå ã§ããªããããªæ¹ã«ãåå ããŠããã ããŠããã®ã§ãä»ã衚åé.rbãç¶ããŠããã®ã¯ãåœæå°äººæ°ã§ãéåããªãããã«ã³ãã¥ããã£ãæ¯ããŠãã ãã£ãæ¹ã
ã®ãé°ã§ãããšãŠããããããããšã§ããã 埡åç¥ã®ãšãããã³ããçŠã¯é·ãç¶ãããšã«ãªãããªã³ã©ã€ã³ã§ã®éå¬ã¯2020幎11æãã2023幎6æãŸã§è¡ãããŸããã RubyKaigiããªãã©ã€ã³éå¬ã«æ»ãã2023å¹Žã®æŸæ¬ã§ã®éå¬ããæ±äº¬ã«æ»ã£ãåŸã衚åé.rbããªãã©ã€ã³ã«æ»ãããšãèãå§ããŸããã ãã®éã«å¿
èŠã«ãªãã®ãéå¬ããäŒå Žã§ããåœæã¯ãŸã ãªãã©ã€ã³ã§äŒå ŽãæäŸããŠããã ããå Žæã¯å€ããªãããŸãæåã«çžè«ããã®ã¯èªåã®å€åå
ã§ããã¡ãã¬ãŒã§ããã ã¡ãã¬ãŒã§ã¯éå»ã«Rubyã³ãã¥ããã£ã®ããã«äŒå ŽæäŸãããããšã¯ãããŸããã§ããããç§ãå°åRubyã³ãã¥ããã£ã®äž»å¬ãç¶ç¶ããŠããããšããããæŽ»åãåŸæŒãããŠããã ããå¿«ãäŒå ŽæäŸãšæèŠªäŒã®äºç®ãã€ããŠããããŸããã 衚åé.rb #87 ã§ã¯åŒç€ŸãäŒå ŽæäŸãããŠããã ããŠãããŸã! #omotesandorb #ruby https://t.co/PDmvLeqLPN #omotesandorb â ã¡ãã¬ãŒ ãã£ãããããŒå
¬åŒ (@medley_dev) June 16, 2023 ãããããããšã«ããã®åã®è¡šåé.rbã«åå ããŠãã ãã£ãæ¹ã®äžããããèªåã®äŒç€Ÿã§ãäŒå ŽæäŸãããããšããç³ãåºãåããçŸåšã®è¡šåé.rbã¯10瀟ãããã®äŒæ¥ããäŒå Žã¹ãã³ãµãŒããããŠããã ããæ¯åéå¬äŒå Žãå€ããªãããç¶ç¶ããŠããŸãã ãããŠãä»å¹Ž2024幎8æã«è¡šåé.rbã¯ãã§ãã100åç®ã®éå¬ãè¿ããŸããã æ¬åœã«æ§ã
ãªäººã«æ¯ããããŠéå¬ã§ãã100åéå¬ã ãªããšæããŸãã 衚åérb 100åããïŒïŒððððð #omotesandorb #roppongirb pic.twitter.com/1qe2aJWMcZ â ãã£ããŒðºãã¯ãªã³ã¯EM (@kuronekopunk) August 1, 2024 å
æ¬æš.rbã®åŸ©æŽ»ãšã¡ãã¬ãŒãšã®é¢ãã ã¡ããã©ä»å¹Žã®ã¯ãããããã®é ã«ã衚åé.rbã«åå ãããŠããryoskãã(X: @ryosk7 )ããå
æ¬æš.rbãåå§åãããããšãã話ããããäŒå Žãæ¢ããŠãããšãã話ããããŸããã å
æ¬æš.rbã¯å
æ¬æšåšèŸºã®äŒæ¥ã§åããšã³ãžãã¢ãéãŸãRubyã³ãã¥ããã£ã§ãã³ããåãŸã§ã¯æã
éå¬ãããŠããããã§ããããã¡ããã³ããã§äŒæ¢ããŠããã³ãã¥ããã£ã§ããã ã¡ãã¬ãŒã¯å
æ¬æšã®äŒæ¥ãšããããšãããã衚åé.rbåæ§ã«å
æ¬æš.rbãæ¯æŽããŠããããããšããããšã§äŒç€Ÿã«çžè«ãããšããããã¡ããäŒå ŽæäŸãšæèŠªäŒäºç®ãã€ããŠããããããšã«ãªããŸããã ãã®æã¡ãã¬ãŒã¯RubyKaigi 2024ã®Rubyã¹ãã³ãµãŒãšããŠåè³ããŠãããæçµæ¥ã®åºèª¿è¬æŒåã®ã¹ãã³ãµãŒã»ãã·ã§ã³æ ãããã£ãã¿ã€ãã³ã°ã ã£ããããã©ãããªããç倧ã«å®£äŒããŠãããããšããããšã§ãåŒç€ŸVPoEã®å±±åŽã«ãå°å.rbæ¯æŽã®ä»¶ã«ã€ããŠç޹ä»ããŠããããŸããã ãã ããŸçºè¡šããããŸãããã Roppongi.rb ã埩掻ããŸãïŒïŒïŒð å
æ¬æšåšèŸºã®äŒæ¥ããã®ãåãåããŠãªãã©ã€ã³éå¬ãããŸãã 6æ13æ¥ã¯ã¡ãã¬ãŒããã®ãªãã£ã¹ããåãããŸãã ããããconnpassã®æ¹ãå±éããŸãïŒ ãããããé¡ãããŸãð #rubykaigi https://t.co/zo2t6KGPrj â ryosk7ðŠ (@ryosk7) May 17, 2024 RubyKaigi 2024 ã« Ruby Sponsor ãšããŠåè³ããŸããïŒ - MEDLEY Developers Portal ãã以æ¥ãå
æ¬æš.rbã¯ã¡ãã¬ãŒãå«ã4ç€Ÿã§æ1åã®å®æéå¬ããŠããŸãã ã¡ãã¬ãŒããã®ãªãã£ã¹ã«çããŸããïŒ ä»æ¥ã¯ãã¡ãã§Roppongi.rbãè¡ããŸãã #roppongirb pic.twitter.com/UioFP3FEyY â ryosk7ðŠ (@ryosk7) June 13, 2024 å°åRubyã³ãã¥ããã£æ¯æŽã«äŒŽããããžãã£ããªå¹æ ãã®ãããªæŽ»åãç¶ããŠããŠãäŒç€Ÿã«ã©ã®ãããªå€åããã£ããã«ã€ããŠè§ŠããããšæããŸãã ãŸã1ã€ç®ã¯ãæ®æ®µã®ä»äºã§äŒããªã瀟å
ã®äººãã¡ãšç€Ÿå€ã®ã€ãã³ãã§é¡ãåãããããã«ãªã£ããããšã§ãã 2022幎RubyKaigiã®æ§åããã®å¹Žã¯ã³ããäŒæ¢ããã®ãªããŒããšããããšããããããŒã¹åºå±ããªãã£ãã®ã§ãèªåããåå ããŠãªãã£ã 2023幎RubyKaigiã®æ§åãäŒå Žã®æ§åãèŠãŠããŠæ¬²ãããšèšãããè¥æãšã³ãžãã¢ãšãå®ã¯ãã®æåçãæ®ã£ãŠããã£ã人ãããã®åŸæ°åãšããŠã¡ãã¬ãŒã«å
¥ããšãããã©ã¯ã«ãèµ·ããŸãã 2024幎RubyKaigiã®æ§åãã¹ãã³ãµãŒããŒã¹ã«ãŠ ç€Ÿå
ã§Rubyã®ã€ãã³ããåç¥ããããã«ãªã£ãŠãããåå ããŠããã人ãå¢ããŸããã å
æ¥ã®Kaigi on Railsã§ããæ¥åãšã¯é¢ä¿ãªãæ¥ããšèšã人éã§éãŸãäžå¹ããããå€åãæããéšåã§ããããŸããã ããäžã€ã¯ããã¯ã瀟å€ãžã®èªç¥ã§ãä»å¹Žã®RubyKaigi 2024ã§ã¯Rubyã¹ãã³ãµãŒã§ããŒã¹ãåºããŠããã®ã§ãããã衚åé.rbã§äŒç€Ÿã«è¡ã£ãããšããããŸãããšæããŠãã ããäººãæ°åããã£ããã£ãããä»å¹Žå
¥ç€Ÿãããæ¹ãã衚åé.rbã«åå ããããšããããŸãããšæããŠãã ãã£ãããå°ãªãããããžãã£ããªåŽé¢ããããªãããšæããããšããããŸããããããã£ã声ã宿çã«èããã®ã¯ã¹ãã³ãµãŒãããŠããåŽãšããŠã¯ãšãŠãå¬ããã§ãã å°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ãã ããŠããããŸã§ã¯ã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠã話ããŠããŸããã ããããã¯ç§ã®ææã«ã€ããŠæžããŸããããããå
ã¯ç§ããªãŒã¬ãã€ã¶ãŒãšããŠæ®æ®µã³ãã¥ããã£æŽ»åã«ã€ããŠèããŠããããšã§ãã®ã§ãç¹æ®µäŒç€ŸããäœãèšãããŠãããšããããšã§ã¯ãããŸããã誀解ãªããããé¡ãããŸãïŒç¬ äŒç€ŸããèŠããšãå°å.rbã®ã¹ãã³ãµãŒããããŸããïŒããå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããšãå°å.rbãéå¬ããŸããïŒããšãã話ã§çµããã®ã§ãããå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããã€ã€ãäŒç€ŸãšããŠå°å.rbã®æ¯æŽãããããšããç«å Žã§ã¿ããšãå°ãéã£ãèŠãæ¹ã«ãªããŸãã äŒæ¥ããããã£ãã¹ãã³ãµãŒããè¡ãéã«ã¯ãäžå®ã®è²»çšå¯Ÿå¹æãèããå¿
èŠãããããã§ãã ç§ãã¹ãã³ãµãŒãããåŽã®ç«å Žããããããã£ãäºæ
ãæãã«ããã°ããç¥å床åäžã®ããã«ç©æ¥µçã«è¡ãã¹ãããæ¡çšé¢ã«ãå°ãªãããããžãã£ãã«åããŠããããšäž»åŒµããããšã¯ã§ããŸãããå®éãããã£ãåŽé¢ã¯ãããšæããŸãããããããããã©ã®çšåºŠãã©ã¹ã«åããŠããã®ããæ£ããèšæž¬ããæ¹æ³ããªããããåºæ¬çã«ã¯ã³ãã¥ããã£ã¯ãã©ã³ãã£ã¢ã«è¿ãåœ¢ã§æ¯æŽããŠãããããšã«ãªããŸãã ãããã£ããã®ã¯ãé·ãç¶ããšã¯éããŸããããæ®æ®µãæ¯æŽããã ããŠããäŒç€Ÿã®çªå£æ
åœã®æ¹ããæ±ºæžè²¬ä»»è
ãå€ããã ãã§ç¶æ³ã¯å€ãããŸãã ããã«ã€ããŠã¯ããªãŒã¬ãã€ã¶ãŒãšããŠã¯ä»æ¹ãªããã®ãšèããŠãããã³ãã¥ããã£ãæç¶å¯èœãªãã®ã«ããããã«ãæå€§éåªåãããå¿
èŠããããšèããŠããŸãã 以å衚åé.rb 100åã®ãšãã«ãã衚åé.rb 100åã«å¯ããŠããšããã¿ã€ãã«ã§ããã³ãã¥ããã£ãç¶ç¶ããŠããããã«ã¯ã©ãããã°ãããããšããã話ããããŠããã ããŸããã ãã®äžã§ãã³ãã¥ããã£ãç¶ç¶ããããã®3èŠçŽ ãäž»å¬è
ã®ããæ°ã»ã¹ãã³ãµãŒãäŒæ¥ã»åå è
ãã®3ã€ãæããã³ãã¥ããã£ãé·ãç¶ãããã«ã©ãããã¹ããããšããã話ããããŠããã ããŸããã ã衚åé.rb 100åã«å¯ããŠã ã¡ãã¬ãŒãçŸåšã¯å°åRubyã³ãã¥ããã£ãç¡åã§å¿æŽããŠããç«å Žã§ã¯ãããŸããããããæªæ¥æ°žå«ç¶ããã¯åãããŸãããããå¯èœãªéã鷿鿝æŽã§ããããã«ãäžå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒãšããŠããããŠäŒç€Ÿã®äžã®äººãšããŠãåªåããããšæã£ãŠããŸãã ãŸãšã å°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠæžãããŠããã ããŸããã ã¡ãã¬ãŒã§ã¯ã衚åé.rbãšå
æ¬æš.rbã®å°åRubyã³ãã¥ããã£ã®æ¯æŽãããŠããã宿çã«ã¡ãã¬ãŒã§ãéå¬ããŠãããŸãã ããããèå³ãããŸãããæ¯ééã³ã«æ¥ãŠãã ããã 衚åé.rb https://omotesandorb.connpass.com/ å
æ¬æš.rb https://roppongirb.connpass.com/
ãã¡ãã®èšäºã¯ MedleyïŒã¡ãã¬ãŒïŒ Advent Calendar 2024 ã®12æ¥ç®ã®èšäºã§ãã ã¯ããã« ã¯ãããŸããŠãå»çãã©ãããã©ãŒã äºæ¥éšããããã¯ãéçºå®€ãDentiséçºã°ã«ãŒãã§ã°ã«ãŒããããžã£ãŒãããŠããç§ïŒX: @Kirika_K2 ïŒãšç³ããŸãã ã¡ãã¬ãŒã«ã¯2019幎ã«å
¥ç€Ÿãã以æ¥ãæ¯ç§å»é¢åãã®ã¯ã©ãŠããµãŒãã¹ Dentis ã®ç«ã¡äžãããããã¯ãéçºã«æºãã£ãŠããŸãã Dentisã¯å»çæ©é¢ã®äºçŽã»åä»ã»å蚺ã»ã«ã«ãã®èšé²ã»äŒèšæ¥åã»ä¿éºè«æ±æ¥åãŸã§ãããŒã¿ã«ã§ãµããŒãããã¯ã©ãŠãã·ã¹ãã ã§ãäž»ã«Ruby on RailsãšReactã§äœãããŠããŸãã æ¥ã
æ¯ç§å»çãã¡ã€ã³ã§ã客æ§ã®å£°ã«åãåããªãããå»çDXãæšé²ããŠããŸãã çå®ã«æé·ããŠãããããã¯ãã§ãã®ã§ããããèå³ãããŸããããã«ãžã¥ã¢ã«é¢è«çåãä»ããŠãããŸãã®ã§ãã声ãããã ãããïŒå®£äŒçµïŒ æ®æ®µã¯ãããã¯ãéçºã«åŸäºããŠããŸããããã©ã€ããŒãã§ã¯å°åRubyã³ãã¥ããã£ã®è¡šåé.rbãäž»å¬ããŠãããŸããŠãã¡ãã¬ãŒã§ãå°åRubyã³ãã¥ããã£æ¯æŽãšãã圢ã§ã衚åé.rbã®ã¹ãã³ãµãŒäŒæ¥ãšããŠãååããŠããã£ãŠããŸãã ä»åã®Advent Calendarã§ã¯ãäžå°åRubyã³ãã¥ããã£ãªãŒã¬ãã€ã¶ãŒã®ç«å ŽããèŠãã¡ãã¬ãŒã®å°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠæžãããšæããŸãã 衚åé.rbãšç§ã®é¢ãã 衚åé.rbã¯2015幎é ããå§ãŸã£ãã衚åéåšèŸºã®ãšã³ãžãã¢ãéãŸã£ãŠRubyã®åšèŸºæè¡ã«é¢ããæ
å ±äº€æãããå°åRubyã³ãã¥ããã£ã§ãã æ¯æç¬¬ïŒæšææ¥ã«éå¬ããŠãããæ¯æ1人10åçšåºŠã®ããŒã¯ã»ãã·ã§ã³ã6ãïŒæ¬ãšäº€æµäŒãè¡ã£ãŠããŸãã äžéšäŸå€ããããé嬿¥ãç¥æ¥çãšéãªãå Žåã¯ã1é±éããããŠç¬¬2æšææ¥ã«éå¬ããŠããŸãã ã¡ããã©ä»æã®ç¬¬1æšææ¥ã¯å³¶æ ¹çæŸæ±åžã§ãRubyWorld Conference 2025ãéå¬ãããŠããã衚åé.rbã«æ®æ®µæ¥ãŠããã£ãŠããå€ãã®æ¹ãæŸæ±ã«éåããŠããã®ã§ã第2æšææ¥ã®éå¬ã«ãªããŸããïŒã€ãŸã仿¥ã§ãïŒïŒ æ¯æç¬¬2é±ã¯ãåŸã»ã©ã話ããå
æ¬æš.rbã宿éå¬ãããŠãããååéå¬ãšãã圢ã§ã®éå¬ããŠããŸãã ã©ã¡ããæ¥œããã³ãã¥ããã£ã§ãã®ã§ãæ¯ééã³ã«æ¥ãŠãã ããã 衚åé.rb https://omotesandorb.connpass.com/ å
æ¬æš.rb https://roppongirb.connpass.com/ ç§ã¯ã2018幎é ããéå¶ã«é¢ããå§ãããã®åŸã¡ãã¬ãŒã«å
¥ç€Ÿããè·å Žãå
æ¬æšã«å€ãã£ãåŸãç¶ããŠããŸããã ã³ããçŠã«ãããªã³ã©ã€ã³éå¬ç§»è¡ããããŠãªãã©ã€ã³éå¬ã®åŸ©æŽ» 2020幎ã«ã³ããçŠã«ãªãããªãã©ã€ã³ã§ã®éå¬ãã§ããªããªãå幎ã»ã©éå¬ãèŠéã£ãŠããããšããããŸãããããªã³ã©ã€ã³éå¬ã«ç§»è¡ããŠéå¬ããŠããŸããã ã¡ããã©ã³ããçŠã§æ··ä¹±ããŠããé ãã³ãã¥ããã£ã掻åäŒæ¢ã«ãããããªã³ã©ã€ã³éå¬ã«ç§»è¡ãããæ©ã¿ãŸããããäžåºŠäžæ¢ã«ããŠããŸããšåéãããã£ããã倱ã£ãŠããŸãå¯èœæ§ããã£ãããããããŸã§éãã®é »åºŠã§éå¬ããããšã«æ±ºããŸããã ãŸããªã³ã©ã€ã³ã«ç§»è¡ããã«ããã£ãŠãããããäŒãªã©ããããŸã§ãšç°ãªã圢åŒã§ã®éå¬ãèããŸããããããã€ãã®ã³ãã¥ããã£ããªã³ã©ã€ã³ã«ç§»è¡ããŠããäžãããŒã¯ã»ãã·ã§ã³ãããã³ãã¥ããã£ã¯è²ŽéããšããæèŠãããã ãããããŸã§éãã®åœ¢åŒã§é²ããŠããããšã«ããŸããã ãªã³ã©ã€ã³éå¬ã®æã¯äººã®éãŸããè¯ããªãæãããã5åãããã§éå¬ããããšããããŸããããæ¯å誰ããçºè¡šãã¿ãæã¡èŸŒãã§ããããŸãçºè¡šãå°ãªãã£ãæ¥ã¯ãå°äººæ°ã§äœã£ãæéããã£ã¹ã«ãã·ã§ã³ã«å
ãŠãããšãã§ããã®ã§ãããã¯ããã§é¢çœã¿ããããŸããã ãŸãæ®æ®µé æ¹ã§è¡šåé.rbã«åå ã§ããªããããªæ¹ã«ãåå ããŠããã ããŠããã®ã§ãä»ã衚åé.rbãç¶ããŠããã®ã¯ãåœæå°äººæ°ã§ãéåããªãããã«ã³ãã¥ããã£ãæ¯ããŠãã ãã£ãæ¹ã
ã®ãé°ã§ãããšãŠããããããããšã§ããã 埡åç¥ã®ãšãããã³ããçŠã¯é·ãç¶ãããšã«ãªãããªã³ã©ã€ã³ã§ã®éå¬ã¯2020幎11æãã2023幎6æãŸã§è¡ãããŸããã RubyKaigiããªãã©ã€ã³éå¬ã«æ»ãã2023å¹Žã®æŸæ¬ã§ã®éå¬ããæ±äº¬ã«æ»ã£ãåŸã衚åé.rbããªãã©ã€ã³ã«æ»ãããšãèãå§ããŸããã ãã®éã«å¿
èŠã«ãªãã®ãéå¬ããäŒå Žã§ããåœæã¯ãŸã ãªãã©ã€ã³ã§äŒå ŽãæäŸããŠããã ããå Žæã¯å€ããªãããŸãæåã«çžè«ããã®ã¯èªåã®å€åå
ã§ããã¡ãã¬ãŒã§ããã ã¡ãã¬ãŒã§ã¯éå»ã«Rubyã³ãã¥ããã£ã®ããã«äŒå ŽæäŸãããããšã¯ãããŸããã§ããããç§ãå°åRubyã³ãã¥ããã£ã®äž»å¬ãç¶ç¶ããŠããããšããããæŽ»åãåŸæŒãããŠããã ããå¿«ãäŒå ŽæäŸãšæèŠªäŒã®äºç®ãã€ããŠããããŸããã 衚åé.rb #87 ã§ã¯åŒç€ŸãäŒå ŽæäŸãããŠããã ããŠãããŸã! #omotesandorb #ruby https://t.co/PDmvLeqLPN #omotesandorb â ã¡ãã¬ãŒ ãã£ãããããŒå
¬åŒ (@medley_dev) June 16, 2023 ãããããããšã«ããã®åã®è¡šåé.rbã«åå ããŠãã ãã£ãæ¹ã®äžããããèªåã®äŒç€Ÿã§ãäŒå ŽæäŸãããããšããç³ãåºãåããçŸåšã®è¡šåé.rbã¯10瀟ãããã®äŒæ¥ããäŒå Žã¹ãã³ãµãŒããããŠããã ããæ¯åéå¬äŒå Žãå€ããªãããç¶ç¶ããŠããŸãã ãããŠãä»å¹Ž2024幎8æã«è¡šåé.rbã¯ãã§ãã100åç®ã®éå¬ãè¿ããŸããã æ¬åœã«æ§ã
ãªäººã«æ¯ããããŠéå¬ã§ãã100åéå¬ã ãªããšæããŸãã 衚åérb 100åããïŒïŒððððð #omotesandorb #roppongirb pic.twitter.com/1qe2aJWMcZ â ãã£ããŒðºãã¯ãªã³ã¯EM (@kuronekopunk) August 1, 2024 å
æ¬æš.rbã®åŸ©æŽ»ãšã¡ãã¬ãŒãšã®é¢ãã ã¡ããã©ä»å¹Žã®ã¯ãããããã®é ã«ã衚åé.rbã«åå ãããŠããryoskãã(X: @ryosk7 )ããå
æ¬æš.rbãåå§åãããããšãã話ããããäŒå Žãæ¢ããŠãããšãã話ããããŸããã å
æ¬æš.rbã¯å
æ¬æšåšèŸºã®äŒæ¥ã§åããšã³ãžãã¢ãéãŸãRubyã³ãã¥ããã£ã§ãã³ããåãŸã§ã¯æã
éå¬ãããŠããããã§ããããã¡ããã³ããã§äŒæ¢ããŠããã³ãã¥ããã£ã§ããã ã¡ãã¬ãŒã¯å
æ¬æšã®äŒæ¥ãšããããšãããã衚åé.rbåæ§ã«å
æ¬æš.rbãæ¯æŽããŠããããããšããããšã§äŒç€Ÿã«çžè«ãããšããããã¡ããäŒå ŽæäŸãšæèŠªäŒäºç®ãã€ããŠããããããšã«ãªããŸããã ãã®æã¡ãã¬ãŒã¯RubyKaigi 2024ã®Rubyã¹ãã³ãµãŒãšããŠåè³ããŠãããæçµæ¥ã®åºèª¿è¬æŒåã®ã¹ãã³ãµãŒã»ãã·ã§ã³æ ãããã£ãã¿ã€ãã³ã°ã ã£ããããã©ãããªããç倧ã«å®£äŒããŠãããããšããããšã§ãåŒç€ŸVPoEã®å±±åŽã«ãå°å.rbæ¯æŽã®ä»¶ã«ã€ããŠç޹ä»ããŠããããŸããã ãã ããŸçºè¡šããããŸãããã Roppongi.rb ã埩掻ããŸãïŒïŒïŒð å
æ¬æšåšèŸºã®äŒæ¥ããã®ãåãåããŠãªãã©ã€ã³éå¬ãããŸãã 6æ13æ¥ã¯ã¡ãã¬ãŒããã®ãªãã£ã¹ããåãããŸãã ããããconnpassã®æ¹ãå±éããŸãïŒ ãããããé¡ãããŸãð #rubykaigi https://t.co/zo2t6KGPrj â ryosk7ðŠ (@ryosk7) May 17, 2024 RubyKaigi 2024 ã« Ruby Sponsor ãšããŠåè³ããŸããïŒ - MEDLEY Developers Portal ãã以æ¥ãå
æ¬æš.rbã¯ã¡ãã¬ãŒãå«ã4ç€Ÿã§æ1åã®å®æéå¬ããŠããŸãã ã¡ãã¬ãŒããã®ãªãã£ã¹ã«çããŸããïŒ ä»æ¥ã¯ãã¡ãã§Roppongi.rbãè¡ããŸãã #roppongirb pic.twitter.com/UioFP3FEyY â ryosk7ðŠ (@ryosk7) June 13, 2024 å°åRubyã³ãã¥ããã£æ¯æŽã«äŒŽããããžãã£ããªå¹æ ãã®ãããªæŽ»åãç¶ããŠããŠãäŒç€Ÿã«ã©ã®ãããªå€åããã£ããã«ã€ããŠè§ŠããããšæããŸãã ãŸã1ã€ç®ã¯ãæ®æ®µã®ä»äºã§äŒããªã瀟å
ã®äººãã¡ãšç€Ÿå€ã®ã€ãã³ãã§é¡ãåãããããã«ãªã£ããããšã§ãã 2022幎RubyKaigiã®æ§åããã®å¹Žã¯ã³ããäŒæ¢ããã®ãªããŒããšããããšããããããŒã¹åºå±ããªãã£ãã®ã§ãèªåããåå ããŠãªãã£ã 2023幎RubyKaigiã®æ§åãäŒå Žã®æ§åãèŠãŠããŠæ¬²ãããšèšãããè¥æãšã³ãžãã¢ãšãå®ã¯ãã®æåçãæ®ã£ãŠããã£ã人ãããã®åŸæ°åãšããŠã¡ãã¬ãŒã«å
¥ããšãããã©ã¯ã«ãèµ·ããŸãã 2024幎RubyKaigiã®æ§åãã¹ãã³ãµãŒããŒã¹ã«ãŠ ç€Ÿå
ã§Rubyã®ã€ãã³ããåç¥ããããã«ãªã£ãŠãããåå ããŠããã人ãå¢ããŸããã å
æ¥ã®Kaigi on Railsã§ããæ¥åãšã¯é¢ä¿ãªãæ¥ããšèšã人éã§éãŸãäžå¹ããããå€åãæããéšåã§ããããŸããã ããäžã€ã¯ããã¯ã瀟å€ãžã®èªç¥ã§ãä»å¹Žã®RubyKaigi 2024ã§ã¯Rubyã¹ãã³ãµãŒã§ããŒã¹ãåºããŠããã®ã§ãããã衚åé.rbã§äŒç€Ÿã«è¡ã£ãããšããããŸãããšæããŠãã ããäººãæ°åããã£ããã£ãããä»å¹Žå
¥ç€Ÿãããæ¹ãã衚åé.rbã«åå ããããšããããŸãããšæããŠãã ãã£ãããå°ãªãããããžãã£ããªåŽé¢ããããªãããšæããããšããããŸããããããã£ã声ã宿çã«èããã®ã¯ã¹ãã³ãµãŒãããŠããåŽãšããŠã¯ãšãŠãå¬ããã§ãã å°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ãã ããŠããããŸã§ã¯ã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠã話ããŠããŸããã ããããã¯ç§ã®ææã«ã€ããŠæžããŸããããããå
ã¯ç§ããªãŒã¬ãã€ã¶ãŒãšããŠæ®æ®µã³ãã¥ããã£æŽ»åã«ã€ããŠèããŠããããšã§ãã®ã§ãç¹æ®µäŒç€ŸããäœãèšãããŠãããšããããšã§ã¯ãããŸããã誀解ãªããããé¡ãããŸãïŒç¬ äŒç€ŸããèŠããšãå°å.rbã®ã¹ãã³ãµãŒããããŸããïŒããå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããšãå°å.rbãéå¬ããŸããïŒããšãã話ã§çµããã®ã§ãããå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããã€ã€ãäŒç€ŸãšããŠå°å.rbã®æ¯æŽãããããšããç«å Žã§ã¿ããšãå°ãéã£ãèŠãæ¹ã«ãªããŸãã äŒæ¥ããããã£ãã¹ãã³ãµãŒããè¡ãéã«ã¯ãäžå®ã®è²»çšå¯Ÿå¹æãèããå¿
èŠãããããã§ãã ç§ãã¹ãã³ãµãŒãããåŽã®ç«å Žããããããã£ãäºæ
ãæãã«ããã°ããç¥å床åäžã®ããã«ç©æ¥µçã«è¡ãã¹ãããæ¡çšé¢ã«ãå°ãªãããããžãã£ãã«åããŠããããšäž»åŒµããããšã¯ã§ããŸãããå®éãããã£ãåŽé¢ã¯ãããšæããŸãããããããããã©ã®çšåºŠãã©ã¹ã«åããŠããã®ããæ£ããèšæž¬ããæ¹æ³ããªããããåºæ¬çã«ã¯ã³ãã¥ããã£ã¯ãã©ã³ãã£ã¢ã«è¿ãåœ¢ã§æ¯æŽããŠãããããšã«ãªããŸãã ãããã£ããã®ã¯ãé·ãç¶ããšã¯éããŸããããæ®æ®µãæ¯æŽããã ããŠããäŒç€Ÿã®çªå£æ
åœã®æ¹ããæ±ºæžè²¬ä»»è
ãå€ããã ãã§ç¶æ³ã¯å€ãããŸãã ããã«ã€ããŠã¯ããªãŒã¬ãã€ã¶ãŒãšããŠã¯ä»æ¹ãªããã®ãšèããŠãããã³ãã¥ããã£ãæç¶å¯èœãªãã®ã«ããããã«ãæå€§éåªåãããå¿
èŠããããšèããŠããŸãã 以å衚åé.rb 100åã®ãšãã«ãã衚åé.rb 100åã«å¯ããŠããšããã¿ã€ãã«ã§ããã³ãã¥ããã£ãç¶ç¶ããŠããããã«ã¯ã©ãããã°ãããããšããã話ããããŠããã ããŸããã ãã®äžã§ãã³ãã¥ããã£ãç¶ç¶ããããã®3èŠçŽ ãäž»å¬è
ã®ããæ°ã»ã¹ãã³ãµãŒãäŒæ¥ã»åå è
ãã®3ã€ãæããã³ãã¥ããã£ãé·ãç¶ãããã«ã©ãããã¹ããããšããã話ããããŠããã ããŸããã ã衚åé.rb 100åã«å¯ããŠã ã¡ãã¬ãŒãçŸåšã¯å°åRubyã³ãã¥ããã£ãç¡åã§å¿æŽããŠããç«å Žã§ã¯ãããŸããããããæªæ¥æ°žå«ç¶ããã¯åãããŸãããããå¯èœãªéã鷿鿝æŽã§ããããã«ãäžå°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒãšããŠããããŠäŒç€Ÿã®äžã®äººãšããŠãåªåããããšæã£ãŠããŸãã ãŸãšã å°åRubyã³ãã¥ããã£ã®ãªãŒã¬ãã€ã¶ãŒããèŠããã¡ãã¬ãŒãšå°åRubyã³ãã¥ããã£ãšã®é¢ããã«ã€ããŠæžãããŠããã ããŸããã ã¡ãã¬ãŒã§ã¯ã衚åé.rbãšå
æ¬æš.rbã®å°åRubyã³ãã¥ããã£ã®æ¯æŽãããŠããã宿çã«ã¡ãã¬ãŒã§ãéå¬ããŠãããŸãã ããããèå³ãããŸãããæ¯ééã³ã«æ¥ãŠãã ããã 衚åé.rb https://omotesandorb.connpass.com/ å
æ¬æš.rb https://roppongirb.connpass.com/
ããã«ã¡ã¯ïŒäººæãã©ãããã©ãŒã æ¬éšã§æè¡åºå ±å
Œãšã³ãžãã¢æ¡çšãããŠããéç°( @Shige0096 )ã§ãã2024 幎 11 æã«ã¡ãã¬ãŒã«ãžã§ã€ã³ããåã®ç€Ÿå€ã€ãã³ãã«åå ããŠããŸããã ä»åãã¡ãã¬ãŒã¯ 2024/11/23 ã«ä¹æ®µåäž KS ãã«ã«ãŠéå¬ãããã JSConf JP 2024 ãã«ãã¬ãã¢ã ã¹ãã³ãµãŒãšããŠåè³ãããŠããã ããŸããã JSConf JP ã¯äžè¬ç€Ÿå£æ³äºº Japan Node.js Association ã«ãã£ãŠäŒç»ã»éå¶ãããŠãã JavaScript ã«é¢ããââ ãç¥ã â âã§ããæ¥æ¬ãšæµ·å€ã® Web éçºè
ãç¹ããç®çã§äŒç»ãããŠããŸãã2020 幎ããéå¬ãããä»å¹Žã§ 5 åç®ãä»å¹Žãããã³ããšã³ããšã³ãžãã¢ã»æ¡çšäººäºã»æè¡åºå ±æ
åœãäžå¿ã«å€ãã®åå è
ã蚪ããŸããã äŒå Žã®æ§å äŒå Žã¯ä¹æ®µåäž KS ãã«ãä»å¹Žã¯ãªã³ã©ã€ã³ã»ãªãã©ã€ã³ã®ãã€ããªããéå¬ã§ãããçŸå°ãã±ããã¯å£²ãåããŠããŸã£ãã®ã§ããªã³ã©ã€ã³é
ä¿¡ãããã®ã¯å¬ããã§ããã åœæ¥ã¯ 4 ã€ã®ãã©ãã¯ã«åãããæé垯ã«ãã£ãŠã¯ 4 ã»ãã·ã§ã³ãåæäžŠè¡ããŠããŸããã ã»ãã·ã§ã³æ°ãå€ããšãŠãå
å®ããã€ãã³ãã«ãªããŸããã äŒå Žå
¥ãå£ ã¡ãã¬ãŒããŒã¹ã®æ§å ã¡ãã¬ãŒããŒã¹ã§ã¯ãå»çäœéšããããããããã«ãçšããŠã¢ã³ã±ãŒã調æ»ããŸããã ãšã³ãžãã¢ãã¯ããå€ãã®æ¹ã«ãè¶ãããã ããŸããïŒãè¶ãããã ããçæ§ããããšãããããŸãã âš ç¹ã«å€ãã£ããå»çäœéšãããããã¯ä»¥äž 2 ã€ã â ãã£ãã·ã¥ã¬ã¹æ±ºæžãããã âš ãã£ãã·ã¥ã¬ã¹å¯Ÿå¿ãé²ãã§ããããŸã ãŸã çŸé察å¿ã®ç
é¢ãå€ã âš çŸéãåŒãèœãšãã«äžåºŠã³ã³ããã«è¡ãããšããã£ã â¡ åŸ
ã¡æéãé·ãïŒã»ãŒåç ïŒ äœïŒ âš äºçŽããã¯ããªã®ã«åŸ
ã¡æéãçºçããŠãã âš ãã€ãæ··ãã§ããã®ã§ç
é¢ã«è¡ãã®ãç²ãã å®éã« CLINICS ã¢ã㪠ã®ç»é¢ãã芧ããã ããªãã以äžã®ãããªã話ãããŸããããªã³ã©ã€ã³èšºçãåããã®ã¡ããèŠæã«åãããŠè¬ã Uber ã§é
éããããšãå¯èœã§ããããšããäœãããã£ãã·ã¥ã¬ã¹æ±ºæžãã¹ã ãŒãºã«ã§ããŠãšãŠãè¯ãïŒãªã©ã®ã声ãããã ããŸããã å€ãã®æ¹ã«ãè¶ãããã ããŸãã ð èªèº«ãéçºããŠãããããã¯ãã«èŸŒããæãã¯äººäžå ðâš ã¡ãã¬ãŒç»å£ åœç€Ÿã®é«æ©(å»çãã©ãããã©ãŒã æ¬éš)ãšåŸ·æ°ž(人æãã©ãããã©ãŒã )ãç»å£ããŸããã 髿©ã®ã»ãã·ã§ã³ã®æ§å 次ã
ã«åå è
ãå¢ããŠãããæçµçã«ã¯ 50 åè¿ãã®æ¹ã«ã芧ããã ããŸãã ð ãªã³ã©ã€ã³é
ä¿¡ãå«ãããèŠèŽããã ããçæ§ãããããšãããããŸããïŒ ç»å£ãã髿©ããäžèš ã»ãã·ã§ã³ãç»å£è³æãã芧é ããçæ§ãããããšãããããŸããïŒåœæ¥ã®ããŒã¹ãæèŠªäŒããŸã X ãããã°ãéããŠãçæ§ããå€ãã®ãææ³ãé ãæè¬ã®æ°æã¡ã§ãã£ã±ãã§ããçºè¡šã§è©³ããåãäžããããªãã£ãå
容ã«é¢ãã Q&A ã以äžã«å
¬éããŸãã ã³ã³ããŒãã³ãã®åå²ç²åºŠãããŒã å
šäœã§ã©ã®ããã«çµ±äžããŠããŸããïŒ çºè¡šå
ã§ç޹ä»ãã{é¢å¿äº}{ç¶æ³}{ããŒã¹ã³ã³ããŒãã³ãå}ã®åœåèŠåãå®ãããšã§ Button ã Dialog ã®åäœã§èªç¶ãšã³ã³ããŒãã³ããåå²ããããããªã¡ã³ã¿ã«ã¢ãã«ãç¯ããŠããŸããå ã㊠Plop ã䜿ã£ãŠãã³ãã¬ãŒãã³ãŒããçæããããšã§å®è£
ããã¬ãªãããã«ããŠããŸãã ç¶æ
管çã©ã€ãã©ãªã¯ã©ã®ããã«äœ¿ãåããŠããŸããïŒ éåæç¶æ
管ç㯠Tanstack Query ããã©ãŒã ç¶æ
管ç㯠React Hook Form ããã®ä»ã® UI ã«é¢ããç¶æ
㯠React.useState ã®ããã«äœ¿ãåããŠããŸããè€åã³ã³ããŒãã³ãéã§èŠªåé¢ä¿ãããå Žå㯠React.createContext ã䜿ã£ãŠäŸåé¢ä¿ã衚çŸããããšããããŸãããã®ãšããåã³ã³ããŒãã³ãã® Storybook ã® decorator ã« Context Provider ãèšå®ããããšã§ãè€åã³ã³ããŒãã³ãéã®é£æºãå«ãã Story ãšãã®ãã¹ããå®è£
ããŠããŸãã Redux ã¯ãµãŒããã£ãã·ã¥ãšããŠéçšããŠããŸããããçŸåšã¯ Tanstack Query ãžã®ç§»è¡ãé²ããŠããããç©æ¥µçãªå©çšã¯é¿ããŠããŸãã ð ç»å£è³æã¯ãã¡ã 執氞ã®ã»ãã·ã§ã³ã®æ§å ç»å£ãã埳氞ããäžèš Remix ã®ãã¡ã€ã«ããŒã¹ã«ãŒãã£ã³ã°ã«ã€ã㊠LT ãããŠããã ããŸãããåœæ¥ã« React Router v7 ãæ£åŒãªãªãŒã¹ããããªã©æ³å®å€ã®ããšãèµ·ããã€ã€ããçããã«ããããªè©±é¡ãšããŠåãäžããŠããã ãæãé£ãã£ãã§ãã ð ç»å£è³æã¯ãã¡ã çµããã« ã¡ãã¬ãŒã¯ãããããå»çãã«ã¹ã±ã¢é åã«ãããŠãå»çäœéšã«ã€ã³ãã¯ããäžãããããã¯ãããµãŒãã¹ã®éçºã«åãçµãã§ãããŸããåŒãç¶ãæè¡çãªãã£ã¬ã³ãžãè¡ã£ãŠãããŸãã®ã§ã泚ç®ãã ããïŒ æåŸã«ãæ¹ã㊠JSConf JP 2024 ã®éå¶ã®çæ§ãç»å£ãããã¹ããŒã«ãŒã®çæ§ãåå è
ã®çæ§ãããããšãããããŸãããæ¥å¹Žã®éå¬ã楜ãã¿ã«ããŠããŸãïŒ ãã€ãã¹ç€Ÿãšã¡ã«ã«ãªç€Ÿã®çŽ æµãªããã«ãã£ãããã ããŸãã âš ã¡ãã¬ãŒã§ã¯äžç·ã«åã仲éãåéããŠããŸãã ãã²ãã®èšäºãããŒã¹ãç»å£ãªã©ã§èå³ãæã£ãŠããã ããæ¹ã¯ãé£çµ¡ããåŸ
ã¡ããŠãããŸãïŒã«ãžã¥ã¢ã«é¢è«ã倧æè¿ã§ãã®ã§ããæ°è»œã«ãåãåãããã ããïŒ åœæ¥äŒå Žã§ãæéããã ããçæ§ãããããšãããããŸããïŒ ã¡ãã¬ãŒã¯ä»åŸãæè¡ã€ãã³ããžåºå±/ç»å£ããäºå®ã§ããä»åŸãçããã«ãäŒãããããšã楜ãã¿ã«ããŠããŸãïŒ
ããã«ã¡ã¯ïŒäººæãã©ãããã©ãŒã æ¬éšã§æè¡åºå ±å
Œãšã³ãžãã¢æ¡çšãããŠããéç°( @Shige0096 )ã§ãã2024 幎 11 æã«ã¡ãã¬ãŒã«ãžã§ã€ã³ããåã®ç€Ÿå€ã€ãã³ãã«åå ããŠããŸããã ä»åãã¡ãã¬ãŒã¯ 2024/11/23 ã«ä¹æ®µåäž KS ãã«ã«ãŠéå¬ãããã JSConf JP 2024 ãã«ãã¬ãã¢ã ã¹ãã³ãµãŒãšããŠåè³ãããŠããã ããŸããã JSConf JP ã¯äžè¬ç€Ÿå£æ³äºº Japan Node.js Association ã«ãã£ãŠäŒç»ã»éå¶ãããŠãã JavaScript ã«é¢ããââ ãç¥ã â âã§ããæ¥æ¬ãšæµ·å€ã® Web éçºè
ãç¹ããç®çã§äŒç»ãããŠããŸãã2020 幎ããéå¬ãããä»å¹Žã§ 5 åç®ãä»å¹Žãããã³ããšã³ããšã³ãžãã¢ã»æ¡çšäººäºã»æè¡åºå ±æ
åœãäžå¿ã«å€ãã®åå è
ã蚪ããŸããã äŒå Žã®æ§å äŒå Žã¯ä¹æ®µåäž KS ãã«ãä»å¹Žã¯ãªã³ã©ã€ã³ã»ãªãã©ã€ã³ã®ãã€ããªããéå¬ã§ãããçŸå°ãã±ããã¯å£²ãåããŠããŸã£ãã®ã§ããªã³ã©ã€ã³é
ä¿¡ãããã®ã¯å¬ããã§ããã åœæ¥ã¯ 4 ã€ã®ãã©ãã¯ã«åãããæé垯ã«ãã£ãŠã¯ 4 ã»ãã·ã§ã³ãåæäžŠè¡ããŠããŸããã ã»ãã·ã§ã³æ°ãå€ããšãŠãå
å®ããã€ãã³ãã«ãªããŸããã äŒå Žå
¥ãå£ ã¡ãã¬ãŒããŒã¹ã®æ§å ã¡ãã¬ãŒããŒã¹ã§ã¯ãå»çäœéšããããããããã«ãçšããŠã¢ã³ã±ãŒã調æ»ããŸããã ãšã³ãžãã¢ãã¯ããå€ãã®æ¹ã«ãè¶ãããã ããŸããïŒãè¶ãããã ããçæ§ããããšãããããŸãã âš ç¹ã«å€ãã£ããå»çäœéšãããããã¯ä»¥äž 2 ã€ã â ãã£ãã·ã¥ã¬ã¹æ±ºæžãããã âš ãã£ãã·ã¥ã¬ã¹å¯Ÿå¿ãé²ãã§ããããŸã ãŸã çŸé察å¿ã®ç
é¢ãå€ã âš çŸéãåŒãèœãšãã«äžåºŠã³ã³ããã«è¡ãããšããã£ã â¡ åŸ
ã¡æéãé·ãïŒã»ãŒåç ïŒ äœïŒ âš äºçŽããã¯ããªã®ã«åŸ
ã¡æéãçºçããŠãã âš ãã€ãæ··ãã§ããã®ã§ç
é¢ã«è¡ãã®ãç²ãã å®éã« CLINICS ã¢ã㪠ã®ç»é¢ãã芧ããã ããªãã以äžã®ãããªã話ãããŸããããªã³ã©ã€ã³èšºçãåããã®ã¡ããèŠæã«åãããŠè¬ã Uber ã§é
éããããšãå¯èœã§ããããšããäœãããã£ãã·ã¥ã¬ã¹æ±ºæžãã¹ã ãŒãºã«ã§ããŠãšãŠãè¯ãïŒãªã©ã®ã声ãããã ããŸããã å€ãã®æ¹ã«ãè¶ãããã ããŸãã ð èªèº«ãéçºããŠãããããã¯ãã«èŸŒããæãã¯äººäžå ðâš ã¡ãã¬ãŒç»å£ åœç€Ÿã®é«æ©(å»çãã©ãããã©ãŒã æ¬éš)ãšåŸ·æ°ž(人æãã©ãããã©ãŒã )ãç»å£ããŸããã 髿©ã®ã»ãã·ã§ã³ã®æ§å 次ã
ã«åå è
ãå¢ããŠãããæçµçã«ã¯ 50 åè¿ãã®æ¹ã«ã芧ããã ããŸãã ð ãªã³ã©ã€ã³é
ä¿¡ãå«ãããèŠèŽããã ããçæ§ãããããšãããããŸããïŒ ç»å£ãã髿©ããäžèš ã»ãã·ã§ã³ãç»å£è³æãã芧é ããçæ§ãããããšãããããŸããïŒåœæ¥ã®ããŒã¹ãæèŠªäŒããŸã X ãããã°ãéããŠãçæ§ããå€ãã®ãææ³ãé ãæè¬ã®æ°æã¡ã§ãã£ã±ãã§ããçºè¡šã§è©³ããåãäžããããªãã£ãå
容ã«é¢ãã Q&A ã以äžã«å
¬éããŸãã ã³ã³ããŒãã³ãã®åå²ç²åºŠãããŒã å
šäœã§ã©ã®ããã«çµ±äžããŠããŸããïŒ çºè¡šå
ã§ç޹ä»ãã{é¢å¿äº}{ç¶æ³}{ããŒã¹ã³ã³ããŒãã³ãå}ã®åœåèŠåãå®ãããšã§ Button ã Dialog ã®åäœã§èªç¶ãšã³ã³ããŒãã³ããåå²ããããããªã¡ã³ã¿ã«ã¢ãã«ãç¯ããŠããŸããå ã㊠Plop ã䜿ã£ãŠãã³ãã¬ãŒãã³ãŒããçæããããšã§å®è£
ããã¬ãªãããã«ããŠããŸãã ç¶æ
管çã©ã€ãã©ãªã¯ã©ã®ããã«äœ¿ãåããŠããŸããïŒ éåæç¶æ
管ç㯠Tanstack Query ããã©ãŒã ç¶æ
管ç㯠React Hook Form ããã®ä»ã® UI ã«é¢ããç¶æ
㯠React.useState ã®ããã«äœ¿ãåããŠããŸããè€åã³ã³ããŒãã³ãéã§èŠªåé¢ä¿ãããå Žå㯠React.createContext ã䜿ã£ãŠäŸåé¢ä¿ã衚çŸããããšããããŸãããã®ãšããåã³ã³ããŒãã³ãã® Storybook ã® decorator ã« Context Provider ãèšå®ããããšã§ãè€åã³ã³ããŒãã³ãéã®é£æºãå«ãã Story ãšãã®ãã¹ããå®è£
ããŠããŸãã Redux ã¯ãµãŒããã£ãã·ã¥ãšããŠéçšããŠããŸããããçŸåšã¯ Tanstack Query ãžã®ç§»è¡ãé²ããŠããããç©æ¥µçãªå©çšã¯é¿ããŠããŸãã ð ç»å£è³æã¯ãã¡ã 執氞ã®ã»ãã·ã§ã³ã®æ§å ç»å£ãã埳氞ããäžèš Remix ã®ãã¡ã€ã«ããŒã¹ã«ãŒãã£ã³ã°ã«ã€ã㊠LT ãããŠããã ããŸãããåœæ¥ã« React Router v7 ãæ£åŒãªãªãŒã¹ããããªã©æ³å®å€ã®ããšãèµ·ããã€ã€ããçããã«ããããªè©±é¡ãšããŠåãäžããŠããã ãæãé£ãã£ãã§ãã ð ç»å£è³æã¯ãã¡ã çµããã« ã¡ãã¬ãŒã¯ãããããå»çãã«ã¹ã±ã¢é åã«ãããŠãå»çäœéšã«ã€ã³ãã¯ããäžãããããã¯ãããµãŒãã¹ã®éçºã«åãçµãã§ãããŸããåŒãç¶ãæè¡çãªãã£ã¬ã³ãžãè¡ã£ãŠãããŸãã®ã§ã泚ç®ãã ããïŒ æåŸã«ãæ¹ã㊠JSConf JP 2024 ã®éå¶ã®çæ§ãç»å£ãããã¹ããŒã«ãŒã®çæ§ãåå è
ã®çæ§ãããããšãããããŸãããæ¥å¹Žã®éå¬ã楜ãã¿ã«ããŠããŸãïŒ ãã€ãã¹ç€Ÿãšã¡ã«ã«ãªç€Ÿã®çŽ æµãªããã«ãã£ãããã ããŸãã âš ã¡ãã¬ãŒã§ã¯äžç·ã«åã仲éãåéããŠããŸãã ãã²ãã®èšäºãããŒã¹ãç»å£ãªã©ã§èå³ãæã£ãŠããã ããæ¹ã¯ãé£çµ¡ããåŸ
ã¡ããŠãããŸãïŒã«ãžã¥ã¢ã«é¢è«ã倧æè¿ã§ãã®ã§ããæ°è»œã«ãåãåãããã ããïŒ åœæ¥äŒå Žã§ãæéããã ããçæ§ãããããšãããããŸããïŒ ã¡ãã¬ãŒã¯ä»åŸãæè¡ã€ãã³ããžåºå±/ç»å£ããäºå®ã§ããä»åŸãçããã«ãäŒãããããšã楜ãã¿ã«ããŠããŸãïŒ
ããã«ã¡ã¯ïŒäººæãã©ãããã©ãŒã æ¬éšã§æè¡åºå ±å
Œãšã³ãžãã¢æ¡çšãããŠããéç°( @Shige0096 )ã§ãã2024 幎 11 æã«ã¡ãã¬ãŒã«ãžã§ã€ã³ããåã®ç€Ÿå€ã€ãã³ãã«åå ããŠããŸããã ä»åãã¡ãã¬ãŒã¯ 2024/11/23 ã«ä¹æ®µåäž KS ãã«ã«ãŠéå¬ãããã JSConf JP 2024 ãã«ãã¬ãã¢ã ã¹ãã³ãµãŒãšããŠåè³ãããŠããã ããŸããã JSConf JP ã¯äžè¬ç€Ÿå£æ³äºº Japan Node.js Association ã«ãã£ãŠäŒç»ã»éå¶ãããŠãã JavaScript ã«é¢ããââ ãç¥ã â âã§ããæ¥æ¬ãšæµ·å€ã® Web éçºè
ãç¹ããç®çã§äŒç»ãããŠããŸãã2020 幎ããéå¬ãããä»å¹Žã§ 5 åç®ãä»å¹Žãããã³ããšã³ããšã³ãžãã¢ã»æ¡çšäººäºã»æè¡åºå ±æ
åœãäžå¿ã«å€ãã®åå è
ã蚪ããŸããã äŒå Žã®æ§å äŒå Žã¯ä¹æ®µåäž KS ãã«ãä»å¹Žã¯ãªã³ã©ã€ã³ã»ãªãã©ã€ã³ã®ãã€ããªããéå¬ã§ãããçŸå°ãã±ããã¯å£²ãåããŠããŸã£ãã®ã§ããªã³ã©ã€ã³é
ä¿¡ãããã®ã¯å¬ããã§ããã åœæ¥ã¯ 4 ã€ã®ãã©ãã¯ã«åãããæé垯ã«ãã£ãŠã¯ 4 ã»ãã·ã§ã³ãåæäžŠè¡ããŠããŸããã ã»ãã·ã§ã³æ°ãå€ããšãŠãå
å®ããã€ãã³ãã«ãªããŸããã äŒå Žå
¥ãå£ ã¡ãã¬ãŒããŒã¹ã®æ§å ã¡ãã¬ãŒããŒã¹ã§ã¯ãå»çäœéšããããããããã«ãçšããŠã¢ã³ã±ãŒã調æ»ããŸããã ãšã³ãžãã¢ãã¯ããå€ãã®æ¹ã«ãè¶ãããã ããŸããïŒãè¶ãããã ããçæ§ããããšãããããŸãã âš ç¹ã«å€ãã£ããå»çäœéšãããããã¯ä»¥äž 2 ã€ã â ãã£ãã·ã¥ã¬ã¹æ±ºæžãããã âš ãã£ãã·ã¥ã¬ã¹å¯Ÿå¿ãé²ãã§ããããŸã ãŸã çŸé察å¿ã®ç
é¢ãå€ã âš çŸéãåŒãèœãšãã«äžåºŠã³ã³ããã«è¡ãããšããã£ã â¡ åŸ
ã¡æéãé·ãïŒã»ãŒåç ïŒ äœïŒ âš äºçŽããã¯ããªã®ã«åŸ
ã¡æéãçºçããŠãã âš ãã€ãæ··ãã§ããã®ã§ç
é¢ã«è¡ãã®ãç²ãã å®éã« CLINICS ã¢ã㪠ã®ç»é¢ãã芧ããã ããªãã以äžã®ãããªã話ãããŸããããªã³ã©ã€ã³èšºçãåããã®ã¡ããèŠæã«åãããŠè¬ã Uber ã§é
éããããšãå¯èœã§ããããšããäœãããã£ãã·ã¥ã¬ã¹æ±ºæžãã¹ã ãŒãºã«ã§ããŠãšãŠãè¯ãïŒãªã©ã®ã声ãããã ããŸããã å€ãã®æ¹ã«ãè¶ãããã ããŸãã ð èªèº«ãéçºããŠãããããã¯ãã«èŸŒããæãã¯äººäžå ðâš ã¡ãã¬ãŒç»å£ åœç€Ÿã®é«æ©(å»çãã©ãããã©ãŒã æ¬éš)ãšåŸ·æ°ž(人æãã©ãããã©ãŒã )ãç»å£ããŸããã 髿©ã®ã»ãã·ã§ã³ã®æ§å 次ã
ã«åå è
ãå¢ããŠãããæçµçã«ã¯ 50 åè¿ãã®æ¹ã«ã芧ããã ããŸãã ð ãªã³ã©ã€ã³é
ä¿¡ãå«ãããèŠèŽããã ããçæ§ãããããšãããããŸããïŒ ç»å£ãã髿©ããäžèš ã»ãã·ã§ã³ãç»å£è³æãã芧é ããçæ§ãããããšãããããŸããïŒåœæ¥ã®ããŒã¹ãæèŠªäŒããŸã X ãããã°ãéããŠãçæ§ããå€ãã®ãææ³ãé ãæè¬ã®æ°æã¡ã§ãã£ã±ãã§ããçºè¡šã§è©³ããåãäžããããªãã£ãå
容ã«é¢ãã Q&A ã以äžã«å
¬éããŸãã ã³ã³ããŒãã³ãã®åå²ç²åºŠãããŒã å
šäœã§ã©ã®ããã«çµ±äžããŠããŸããïŒ çºè¡šå
ã§ç޹ä»ãã{é¢å¿äº}{ç¶æ³}{ããŒã¹ã³ã³ããŒãã³ãå}ã®åœåèŠåãå®ãããšã§ Button ã Dialog ã®åäœã§èªç¶ãšã³ã³ããŒãã³ããåå²ããããããªã¡ã³ã¿ã«ã¢ãã«ãç¯ããŠããŸããå ã㊠Plop ã䜿ã£ãŠãã³ãã¬ãŒãã³ãŒããçæããããšã§å®è£
ããã¬ãªãããã«ããŠããŸãã ç¶æ
管çã©ã€ãã©ãªã¯ã©ã®ããã«äœ¿ãåããŠããŸããïŒ éåæç¶æ
管ç㯠Tanstack Query ããã©ãŒã ç¶æ
管ç㯠React Hook Form ããã®ä»ã® UI ã«é¢ããç¶æ
㯠React.useState ã®ããã«äœ¿ãåããŠããŸããè€åã³ã³ããŒãã³ãéã§èŠªåé¢ä¿ãããå Žå㯠React.createContext ã䜿ã£ãŠäŸåé¢ä¿ã衚çŸããããšããããŸãããã®ãšããåã³ã³ããŒãã³ãã® Storybook ã® decorator ã« Context Provider ãèšå®ããããšã§ãè€åã³ã³ããŒãã³ãéã®é£æºãå«ãã Story ãšãã®ãã¹ããå®è£
ããŠããŸãã Redux ã¯ãµãŒããã£ãã·ã¥ãšããŠéçšããŠããŸããããçŸåšã¯ Tanstack Query ãžã®ç§»è¡ãé²ããŠããããç©æ¥µçãªå©çšã¯é¿ããŠããŸãã ð ç»å£è³æã¯ãã¡ã 執氞ã®ã»ãã·ã§ã³ã®æ§å ç»å£ãã埳氞ããäžèš Remix ã®ãã¡ã€ã«ããŒã¹ã«ãŒãã£ã³ã°ã«ã€ã㊠LT ãããŠããã ããŸãããåœæ¥ã« React Router v7 ãæ£åŒãªãªãŒã¹ããããªã©æ³å®å€ã®ããšãèµ·ããã€ã€ããçããã«ããããªè©±é¡ãšããŠåãäžããŠããã ãæãé£ãã£ãã§ãã ð ç»å£è³æã¯ãã¡ã çµããã« ã¡ãã¬ãŒã¯ãããããå»çãã«ã¹ã±ã¢é åã«ãããŠãå»çäœéšã«ã€ã³ãã¯ããäžãããããã¯ãããµãŒãã¹ã®éçºã«åãçµãã§ãããŸããåŒãç¶ãæè¡çãªãã£ã¬ã³ãžãè¡ã£ãŠãããŸãã®ã§ã泚ç®ãã ããïŒ æåŸã«ãæ¹ã㊠JSConf JP 2024 ã®éå¶ã®çæ§ãç»å£ãããã¹ããŒã«ãŒã®çæ§ãåå è
ã®çæ§ãããããšãããããŸãããæ¥å¹Žã®éå¬ã楜ãã¿ã«ããŠããŸãïŒ ãã€ãã¹ç€Ÿãšã¡ã«ã«ãªç€Ÿã®çŽ æµãªããã«ãã£ãããã ããŸãã âš ã¡ãã¬ãŒã§ã¯äžç·ã«åã仲éãåéããŠããŸãã ãã²ãã®èšäºãããŒã¹ãç»å£ãªã©ã§èå³ãæã£ãŠããã ããæ¹ã¯ãé£çµ¡ããåŸ
ã¡ããŠãããŸãïŒã«ãžã¥ã¢ã«é¢è«ã倧æè¿ã§ãã®ã§ããæ°è»œã«ãåãåãããã ããïŒ åœæ¥äŒå Žã§ãæéããã ããçæ§ãããããšãããããŸããïŒ ã¡ãã¬ãŒã¯ä»åŸãæè¡ã€ãã³ããžåºå±/ç»å£ããäºå®ã§ããä»åŸãçããã«ãäŒãããããšã楜ãã¿ã«ããŠããŸãïŒ
ããã«ã¡ã¯ïŒäººæãã©ãããã©ãŒã æ¬éšã§æè¡åºå ±å
Œãšã³ãžãã¢æ¡çšãããŠããéç°( @Shige0096 )ã§ãã2024 幎 11 æã«ã¡ãã¬ãŒã«ãžã§ã€ã³ããåã®ç€Ÿå€ã€ãã³ãã«åå ããŠããŸããã ä»åãã¡ãã¬ãŒã¯ 2024/11/23 ã«ä¹æ®µåäž KS ãã«ã«ãŠéå¬ãããã JSConf JP 2024 ãã«ãã¬ãã¢ã ã¹ãã³ãµãŒãšããŠåè³ãããŠããã ããŸããã JSConf JP ã¯äžè¬ç€Ÿå£æ³äºº Japan Node.js Association ã«ãã£ãŠäŒç»ã»éå¶ãããŠãã JavaScript ã«é¢ããââ ãç¥ã â âã§ããæ¥æ¬ãšæµ·å€ã® Web éçºè
ãç¹ããç®çã§äŒç»ãããŠããŸãã2020 幎ããéå¬ãããä»å¹Žã§ 5 åç®ãä»å¹Žãããã³ããšã³ããšã³ãžãã¢ã»æ¡çšäººäºã»æè¡åºå ±æ
åœãäžå¿ã«å€ãã®åå è
ã蚪ããŸããã äŒå Žã®æ§å äŒå Žã¯ä¹æ®µåäž KS ãã«ãä»å¹Žã¯ãªã³ã©ã€ã³ã»ãªãã©ã€ã³ã®ãã€ããªããéå¬ã§ãããçŸå°ãã±ããã¯å£²ãåããŠããŸã£ãã®ã§ããªã³ã©ã€ã³é
ä¿¡ãããã®ã¯å¬ããã§ããã åœæ¥ã¯ 4 ã€ã®ãã©ãã¯ã«åãããæé垯ã«ãã£ãŠã¯ 4 ã»ãã·ã§ã³ãåæäžŠè¡ããŠããŸããã ã»ãã·ã§ã³æ°ãå€ããšãŠãå
å®ããã€ãã³ãã«ãªããŸããã äŒå Žå
¥ãå£ ã¡ãã¬ãŒããŒã¹ã®æ§å ã¡ãã¬ãŒããŒã¹ã§ã¯ãå»çäœéšããããããããã«ãçšããŠã¢ã³ã±ãŒã調æ»ããŸããã ãšã³ãžãã¢ãã¯ããå€ãã®æ¹ã«ãè¶ãããã ããŸããïŒãè¶ãããã ããçæ§ããããšãããããŸãã âš ç¹ã«å€ãã£ããå»çäœéšãããããã¯ä»¥äž 2 ã€ã â ãã£ãã·ã¥ã¬ã¹æ±ºæžãããã âš ãã£ãã·ã¥ã¬ã¹å¯Ÿå¿ãé²ãã§ããããŸã ãŸã çŸé察å¿ã®ç
é¢ãå€ã âš çŸéãåŒãèœãšãã«äžåºŠã³ã³ããã«è¡ãããšããã£ã â¡ åŸ
ã¡æéãé·ãïŒã»ãŒåç ïŒ äœïŒ âš äºçŽããã¯ããªã®ã«åŸ
ã¡æéãçºçããŠãã âš ãã€ãæ··ãã§ããã®ã§ç
é¢ã«è¡ãã®ãç²ãã å®éã« CLINICS ã¢ã㪠ã®ç»é¢ãã芧ããã ããªãã以äžã®ãããªã話ãããŸããããªã³ã©ã€ã³èšºçãåããã®ã¡ããèŠæã«åãããŠè¬ã Uber ã§é
éããããšãå¯èœã§ããããšããäœãããã£ãã·ã¥ã¬ã¹æ±ºæžãã¹ã ãŒãºã«ã§ããŠãšãŠãè¯ãïŒãªã©ã®ã声ãããã ããŸããã å€ãã®æ¹ã«ãè¶ãããã ããŸãã ð èªèº«ãéçºããŠãããããã¯ãã«èŸŒããæãã¯äººäžå ðâš ã¡ãã¬ãŒç»å£ åœç€Ÿã®é«æ©(å»çãã©ãããã©ãŒã æ¬éš)ãšåŸ·æ°ž(人æãã©ãããã©ãŒã )ãç»å£ããŸããã 髿©ã®ã»ãã·ã§ã³ã®æ§å 次ã
ã«åå è
ãå¢ããŠãããæçµçã«ã¯ 50 åè¿ãã®æ¹ã«ã芧ããã ããŸãã ð ãªã³ã©ã€ã³é
ä¿¡ãå«ãããèŠèŽããã ããçæ§ãããããšãããããŸããïŒ ç»å£ãã髿©ããäžèš ã»ãã·ã§ã³ãç»å£è³æãã芧é ããçæ§ãããããšãããããŸããïŒåœæ¥ã®ããŒã¹ãæèŠªäŒããŸã X ãããã°ãéããŠãçæ§ããå€ãã®ãææ³ãé ãæè¬ã®æ°æã¡ã§ãã£ã±ãã§ããçºè¡šã§è©³ããåãäžããããªãã£ãå
容ã«é¢ãã Q&A ã以äžã«å
¬éããŸãã ã³ã³ããŒãã³ãã®åå²ç²åºŠãããŒã å
šäœã§ã©ã®ããã«çµ±äžããŠããŸããïŒ çºè¡šå
ã§ç޹ä»ãã{é¢å¿äº}{ç¶æ³}{ããŒã¹ã³ã³ããŒãã³ãå}ã®åœåèŠåãå®ãããšã§ Button ã Dialog ã®åäœã§èªç¶ãšã³ã³ããŒãã³ããåå²ããããããªã¡ã³ã¿ã«ã¢ãã«ãç¯ããŠããŸããå ã㊠Plop ã䜿ã£ãŠãã³ãã¬ãŒãã³ãŒããçæããããšã§å®è£
ããã¬ãªãããã«ããŠããŸãã ç¶æ
管çã©ã€ãã©ãªã¯ã©ã®ããã«äœ¿ãåããŠããŸããïŒ éåæç¶æ
管ç㯠Tanstack Query ããã©ãŒã ç¶æ
管ç㯠React Hook Form ããã®ä»ã® UI ã«é¢ããç¶æ
㯠React.useState ã®ããã«äœ¿ãåããŠããŸããè€åã³ã³ããŒãã³ãéã§èŠªåé¢ä¿ãããå Žå㯠React.createContext ã䜿ã£ãŠäŸåé¢ä¿ã衚çŸããããšããããŸãããã®ãšããåã³ã³ããŒãã³ãã® Storybook ã® decorator ã« Context Provider ãèšå®ããããšã§ãè€åã³ã³ããŒãã³ãéã®é£æºãå«ãã Story ãšãã®ãã¹ããå®è£
ããŠããŸãã Redux ã¯ãµãŒããã£ãã·ã¥ãšããŠéçšããŠããŸããããçŸåšã¯ Tanstack Query ãžã®ç§»è¡ãé²ããŠããããç©æ¥µçãªå©çšã¯é¿ããŠããŸãã ð ç»å£è³æã¯ãã¡ã 執氞ã®ã»ãã·ã§ã³ã®æ§å ç»å£ãã埳氞ããäžèš Remix ã®ãã¡ã€ã«ããŒã¹ã«ãŒãã£ã³ã°ã«ã€ã㊠LT ãããŠããã ããŸãããåœæ¥ã« React Router v7 ãæ£åŒãªãªãŒã¹ããããªã©æ³å®å€ã®ããšãèµ·ããã€ã€ããçããã«ããããªè©±é¡ãšããŠåãäžããŠããã ãæãé£ãã£ãã§ãã ð ç»å£è³æã¯ãã¡ã çµããã« ã¡ãã¬ãŒã¯ãããããå»çãã«ã¹ã±ã¢é åã«ãããŠãå»çäœéšã«ã€ã³ãã¯ããäžãããããã¯ãããµãŒãã¹ã®éçºã«åãçµãã§ãããŸããåŒãç¶ãæè¡çãªãã£ã¬ã³ãžãè¡ã£ãŠãããŸãã®ã§ã泚ç®ãã ããïŒ æåŸã«ãæ¹ã㊠JSConf JP 2024 ã®éå¶ã®çæ§ãç»å£ãããã¹ããŒã«ãŒã®çæ§ãåå è
ã®çæ§ãããããšãããããŸãããæ¥å¹Žã®éå¬ã楜ãã¿ã«ããŠããŸãïŒ ãã€ãã¹ç€Ÿãšã¡ã«ã«ãªç€Ÿã®çŽ æµãªããã«ãã£ãããã ããŸãã âš ã¡ãã¬ãŒã§ã¯äžç·ã«åã仲éãåéããŠããŸãã ãã²ãã®èšäºãããŒã¹ãç»å£ãªã©ã§èå³ãæã£ãŠããã ããæ¹ã¯ãé£çµ¡ããåŸ
ã¡ããŠãããŸãïŒã«ãžã¥ã¢ã«é¢è«ã倧æè¿ã§ãã®ã§ããæ°è»œã«ãåãåãããã ããïŒ åœæ¥äŒå Žã§ãæéããã ããçæ§ãããããšãããããŸããïŒ ã¡ãã¬ãŒã¯ä»åŸãæè¡ã€ãã³ããžåºå±/ç»å£ããäºå®ã§ããä»åŸãçããã«ãäŒãããããšã楜ãã¿ã«ããŠããŸãïŒ
ããã«ã¡ã¯ïŒäººæãã©ãããã©ãŒã æ¬éšã§æè¡åºå ±å
Œãšã³ãžãã¢æ¡çšãããŠããéç°( @Shige0096 )ã§ãã2024 幎 11 æã«ã¡ãã¬ãŒã«ãžã§ã€ã³ããåã®ç€Ÿå€ã€ãã³ãã«åå ããŠããŸããã ä»åãã¡ãã¬ãŒã¯ 2024/11/23 ã«ä¹æ®µåäž KS ãã«ã«ãŠéå¬ãããã JSConf JP 2024 ãã«ãã¬ãã¢ã ã¹ãã³ãµãŒãšããŠåè³ãããŠããã ããŸããã JSConf JP ã¯äžè¬ç€Ÿå£æ³äºº Japan Node.js Association ã«ãã£ãŠäŒç»ã»éå¶ãããŠãã JavaScript ã«é¢ããââ ãç¥ã â âã§ããæ¥æ¬ãšæµ·å€ã® Web éçºè
ãç¹ããç®çã§äŒç»ãããŠããŸãã2020 幎ããéå¬ãããä»å¹Žã§ 5 åç®ãä»å¹Žãããã³ããšã³ããšã³ãžãã¢ã»æ¡çšäººäºã»æè¡åºå ±æ
åœãäžå¿ã«å€ãã®åå è
ã蚪ããŸããã äŒå Žã®æ§å äŒå Žã¯ä¹æ®µåäž KS ãã«ãä»å¹Žã¯ãªã³ã©ã€ã³ã»ãªãã©ã€ã³ã®ãã€ããªããéå¬ã§ãããçŸå°ãã±ããã¯å£²ãåããŠããŸã£ãã®ã§ããªã³ã©ã€ã³é
ä¿¡ãããã®ã¯å¬ããã§ããã åœæ¥ã¯ 4 ã€ã®ãã©ãã¯ã«åãããæé垯ã«ãã£ãŠã¯ 4 ã»ãã·ã§ã³ãåæäžŠè¡ããŠããŸããã ã»ãã·ã§ã³æ°ãå€ããšãŠãå
å®ããã€ãã³ãã«ãªããŸããã äŒå Žå
¥ãå£ ã¡ãã¬ãŒããŒã¹ã®æ§å ã¡ãã¬ãŒããŒã¹ã§ã¯ãå»çäœéšããããããããã«ãçšããŠã¢ã³ã±ãŒã調æ»ããŸããã ãšã³ãžãã¢ãã¯ããå€ãã®æ¹ã«ãè¶ãããã ããŸããïŒãè¶ãããã ããçæ§ããããšãããããŸãã âš ç¹ã«å€ãã£ããå»çäœéšãããããã¯ä»¥äž 2 ã€ã â ãã£ãã·ã¥ã¬ã¹æ±ºæžãããã âš ãã£ãã·ã¥ã¬ã¹å¯Ÿå¿ãé²ãã§ããããŸã ãŸã çŸé察å¿ã®ç
é¢ãå€ã âš çŸéãåŒãèœãšãã«äžåºŠã³ã³ããã«è¡ãããšããã£ã â¡ åŸ
ã¡æéãé·ãïŒã»ãŒåç ïŒ äœïŒ âš äºçŽããã¯ããªã®ã«åŸ
ã¡æéãçºçããŠãã âš ãã€ãæ··ãã§ããã®ã§ç
é¢ã«è¡ãã®ãç²ãã å®éã« CLINICS ã¢ã㪠ã®ç»é¢ãã芧ããã ããªãã以äžã®ãããªã話ãããŸããããªã³ã©ã€ã³èšºçãåããã®ã¡ããèŠæã«åãããŠè¬ã Uber ã§é
éããããšãå¯èœã§ããããšããäœãããã£ãã·ã¥ã¬ã¹æ±ºæžãã¹ã ãŒãºã«ã§ããŠãšãŠãè¯ãïŒãªã©ã®ã声ãããã ããŸããã å€ãã®æ¹ã«ãè¶ãããã ããŸãã ð èªèº«ãéçºããŠãããããã¯ãã«èŸŒããæãã¯äººäžå ðâš ã¡ãã¬ãŒç»å£ åœç€Ÿã®é«æ©(å»çãã©ãããã©ãŒã æ¬éš)ãšåŸ·æ°ž(人æãã©ãããã©ãŒã )ãç»å£ããŸããã 髿©ã®ã»ãã·ã§ã³ã®æ§å 次ã
ã«åå è
ãå¢ããŠãããæçµçã«ã¯ 50 åè¿ãã®æ¹ã«ã芧ããã ããŸãã ð ãªã³ã©ã€ã³é
ä¿¡ãå«ãããèŠèŽããã ããçæ§ãããããšãããããŸããïŒ ç»å£ãã髿©ããäžèš ã»ãã·ã§ã³ãç»å£è³æãã芧é ããçæ§ãããããšãããããŸããïŒåœæ¥ã®ããŒã¹ãæèŠªäŒããŸã X ãããã°ãéããŠãçæ§ããå€ãã®ãææ³ãé ãæè¬ã®æ°æã¡ã§ãã£ã±ãã§ããçºè¡šã§è©³ããåãäžããããªãã£ãå
容ã«é¢ãã Q&A ã以äžã«å
¬éããŸãã ã³ã³ããŒãã³ãã®åå²ç²åºŠãããŒã å
šäœã§ã©ã®ããã«çµ±äžããŠããŸããïŒ çºè¡šå
ã§ç޹ä»ãã{é¢å¿äº}{ç¶æ³}{ããŒã¹ã³ã³ããŒãã³ãå}ã®åœåèŠåãå®ãããšã§ Button ã Dialog ã®åäœã§èªç¶ãšã³ã³ããŒãã³ããåå²ããããããªã¡ã³ã¿ã«ã¢ãã«ãç¯ããŠããŸããå ã㊠Plop ã䜿ã£ãŠãã³ãã¬ãŒãã³ãŒããçæããããšã§å®è£
ããã¬ãªãããã«ããŠããŸãã ç¶æ
管çã©ã€ãã©ãªã¯ã©ã®ããã«äœ¿ãåããŠããŸããïŒ éåæç¶æ
管ç㯠Tanstack Query ããã©ãŒã ç¶æ
管ç㯠React Hook Form ããã®ä»ã® UI ã«é¢ããç¶æ
㯠React.useState ã®ããã«äœ¿ãåããŠããŸããè€åã³ã³ããŒãã³ãéã§èŠªåé¢ä¿ãããå Žå㯠React.createContext ã䜿ã£ãŠäŸåé¢ä¿ã衚çŸããããšããããŸãããã®ãšããåã³ã³ããŒãã³ãã® Storybook ã® decorator ã« Context Provider ãèšå®ããããšã§ãè€åã³ã³ããŒãã³ãéã®é£æºãå«ãã Story ãšãã®ãã¹ããå®è£
ããŠããŸãã Redux ã¯ãµãŒããã£ãã·ã¥ãšããŠéçšããŠããŸããããçŸåšã¯ Tanstack Query ãžã®ç§»è¡ãé²ããŠããããç©æ¥µçãªå©çšã¯é¿ããŠããŸãã ð ç»å£è³æã¯ãã¡ã 執氞ã®ã»ãã·ã§ã³ã®æ§å ç»å£ãã埳氞ããäžèš Remix ã®ãã¡ã€ã«ããŒã¹ã«ãŒãã£ã³ã°ã«ã€ã㊠LT ãããŠããã ããŸãããåœæ¥ã« React Router v7 ãæ£åŒãªãªãŒã¹ããããªã©æ³å®å€ã®ããšãèµ·ããã€ã€ããçããã«ããããªè©±é¡ãšããŠåãäžããŠããã ãæãé£ãã£ãã§ãã ð ç»å£è³æã¯ãã¡ã çµããã« ã¡ãã¬ãŒã¯ãããããå»çãã«ã¹ã±ã¢é åã«ãããŠãå»çäœéšã«ã€ã³ãã¯ããäžãããããã¯ãããµãŒãã¹ã®éçºã«åãçµãã§ãããŸããåŒãç¶ãæè¡çãªãã£ã¬ã³ãžãè¡ã£ãŠãããŸãã®ã§ã泚ç®ãã ããïŒ æåŸã«ãæ¹ã㊠JSConf JP 2024 ã®éå¶ã®çæ§ãç»å£ãããã¹ããŒã«ãŒã®çæ§ãåå è
ã®çæ§ãããããšãããããŸãããæ¥å¹Žã®éå¬ã楜ãã¿ã«ããŠããŸãïŒ ãã€ãã¹ç€Ÿãšã¡ã«ã«ãªç€Ÿã®çŽ æµãªããã«ãã£ãããã ããŸãã âš ã¡ãã¬ãŒã§ã¯äžç·ã«åã仲éãåéããŠããŸãã ãã²ãã®èšäºãããŒã¹ãç»å£ãªã©ã§èå³ãæã£ãŠããã ããæ¹ã¯ãé£çµ¡ããåŸ
ã¡ããŠãããŸãïŒã«ãžã¥ã¢ã«é¢è«ã倧æè¿ã§ãã®ã§ããæ°è»œã«ãåãåãããã ããïŒ åœæ¥äŒå Žã§ãæéããã ããçæ§ãããããšãããããŸããïŒ ã¡ãã¬ãŒã¯ä»åŸãæè¡ã€ãã³ããžåºå±/ç»å£ããäºå®ã§ããä»åŸãçããã«ãäŒãããããšã楜ãã¿ã«ããŠããŸãïŒ
ããã«ã¡ã¯ïŒäººæãã©ãããã©ãŒã æ¬éšã§æè¡åºå ±å
Œãšã³ãžãã¢æ¡çšãããŠããéç°( @Shige0096 )ã§ãã2024 幎 11 æã«ã¡ãã¬ãŒã«ãžã§ã€ã³ããåã®ç€Ÿå€ã€ãã³ãã«åå ããŠããŸããã ä»åãã¡ãã¬ãŒã¯ 2024/11/23 ã«ä¹æ®µåäž KS ãã«ã«ãŠéå¬ãããã JSConf JP 2024 ãã«ãã¬ãã¢ã ã¹ãã³ãµãŒãšããŠåè³ãããŠããã ããŸããã JSConf JP ã¯äžè¬ç€Ÿå£æ³äºº Japan Node.js Association ã«ãã£ãŠäŒç»ã»éå¶ãããŠãã JavaScript ã«é¢ããââ ãç¥ã â âã§ããæ¥æ¬ãšæµ·å€ã® Web éçºè
ãç¹ããç®çã§äŒç»ãããŠããŸãã2020 幎ããéå¬ãããä»å¹Žã§ 5 åç®ãä»å¹Žãããã³ããšã³ããšã³ãžãã¢ã»æ¡çšäººäºã»æè¡åºå ±æ
åœãäžå¿ã«å€ãã®åå è
ã蚪ããŸããã äŒå Žã®æ§å äŒå Žã¯ä¹æ®µåäž KS ãã«ãä»å¹Žã¯ãªã³ã©ã€ã³ã»ãªãã©ã€ã³ã®ãã€ããªããéå¬ã§ãããçŸå°ãã±ããã¯å£²ãåããŠããŸã£ãã®ã§ããªã³ã©ã€ã³é
ä¿¡ãããã®ã¯å¬ããã§ããã åœæ¥ã¯ 4 ã€ã®ãã©ãã¯ã«åãããæé垯ã«ãã£ãŠã¯ 4 ã»ãã·ã§ã³ãåæäžŠè¡ããŠããŸããã ã»ãã·ã§ã³æ°ãå€ããšãŠãå
å®ããã€ãã³ãã«ãªããŸããã äŒå Žå
¥ãå£ ã¡ãã¬ãŒããŒã¹ã®æ§å ã¡ãã¬ãŒããŒã¹ã§ã¯ãå»çäœéšããããããããã«ãçšããŠã¢ã³ã±ãŒã調æ»ããŸããã ãšã³ãžãã¢ãã¯ããå€ãã®æ¹ã«ãè¶ãããã ããŸããïŒãè¶ãããã ããçæ§ããããšãããããŸãã âš ç¹ã«å€ãã£ããå»çäœéšãããããã¯ä»¥äž 2 ã€ã â ãã£ãã·ã¥ã¬ã¹æ±ºæžãããã âš ãã£ãã·ã¥ã¬ã¹å¯Ÿå¿ãé²ãã§ããããŸã ãŸã çŸé察å¿ã®ç
é¢ãå€ã âš çŸéãåŒãèœãšãã«äžåºŠã³ã³ããã«è¡ãããšããã£ã â¡ åŸ
ã¡æéãé·ãïŒã»ãŒåç ïŒ äœïŒ âš äºçŽããã¯ããªã®ã«åŸ
ã¡æéãçºçããŠãã âš ãã€ãæ··ãã§ããã®ã§ç
é¢ã«è¡ãã®ãç²ãã å®éã« CLINICS ã¢ã㪠ã®ç»é¢ãã芧ããã ããªãã以äžã®ãããªã話ãããŸããããªã³ã©ã€ã³èšºçãåããã®ã¡ããèŠæã«åãããŠè¬ã Uber ã§é
éããããšãå¯èœã§ããããšããäœãããã£ãã·ã¥ã¬ã¹æ±ºæžãã¹ã ãŒãºã«ã§ããŠãšãŠãè¯ãïŒãªã©ã®ã声ãããã ããŸããã å€ãã®æ¹ã«ãè¶ãããã ããŸãã ð èªèº«ãéçºããŠãããããã¯ãã«èŸŒããæãã¯äººäžå ðâš ã¡ãã¬ãŒç»å£ åœç€Ÿã®é«æ©(å»çãã©ãããã©ãŒã æ¬éš)ãšåŸ·æ°ž(人æãã©ãããã©ãŒã )ãç»å£ããŸããã 髿©ã®ã»ãã·ã§ã³ã®æ§å 次ã
ã«åå è
ãå¢ããŠãããæçµçã«ã¯ 50 åè¿ãã®æ¹ã«ã芧ããã ããŸãã ð ãªã³ã©ã€ã³é
ä¿¡ãå«ãããèŠèŽããã ããçæ§ãããããšãããããŸããïŒ ç»å£ãã髿©ããäžèš ã»ãã·ã§ã³ãç»å£è³æãã芧é ããçæ§ãããããšãããããŸããïŒåœæ¥ã®ããŒã¹ãæèŠªäŒããŸã X ãããã°ãéããŠãçæ§ããå€ãã®ãææ³ãé ãæè¬ã®æ°æã¡ã§ãã£ã±ãã§ããçºè¡šã§è©³ããåãäžããããªãã£ãå
容ã«é¢ãã Q&A ã以äžã«å
¬éããŸãã ã³ã³ããŒãã³ãã®åå²ç²åºŠãããŒã å
šäœã§ã©ã®ããã«çµ±äžããŠããŸããïŒ çºè¡šå
ã§ç޹ä»ãã{é¢å¿äº}{ç¶æ³}{ããŒã¹ã³ã³ããŒãã³ãå}ã®åœåèŠåãå®ãããšã§ Button ã Dialog ã®åäœã§èªç¶ãšã³ã³ããŒãã³ããåå²ããããããªã¡ã³ã¿ã«ã¢ãã«ãç¯ããŠããŸããå ã㊠Plop ã䜿ã£ãŠãã³ãã¬ãŒãã³ãŒããçæããããšã§å®è£
ããã¬ãªãããã«ããŠããŸãã ç¶æ
管çã©ã€ãã©ãªã¯ã©ã®ããã«äœ¿ãåããŠããŸããïŒ éåæç¶æ
管ç㯠Tanstack Query ããã©ãŒã ç¶æ
管ç㯠React Hook Form ããã®ä»ã® UI ã«é¢ããç¶æ
㯠React.useState ã®ããã«äœ¿ãåããŠããŸããè€åã³ã³ããŒãã³ãéã§èŠªåé¢ä¿ãããå Žå㯠React.createContext ã䜿ã£ãŠäŸåé¢ä¿ã衚çŸããããšããããŸãããã®ãšããåã³ã³ããŒãã³ãã® Storybook ã® decorator ã« Context Provider ãèšå®ããããšã§ãè€åã³ã³ããŒãã³ãéã®é£æºãå«ãã Story ãšãã®ãã¹ããå®è£
ããŠããŸãã Redux ã¯ãµãŒããã£ãã·ã¥ãšããŠéçšããŠããŸããããçŸåšã¯ Tanstack Query ãžã®ç§»è¡ãé²ããŠããããç©æ¥µçãªå©çšã¯é¿ããŠããŸãã ð ç»å£è³æã¯ãã¡ã 執氞ã®ã»ãã·ã§ã³ã®æ§å ç»å£ãã埳氞ããäžèš Remix ã®ãã¡ã€ã«ããŒã¹ã«ãŒãã£ã³ã°ã«ã€ã㊠LT ãããŠããã ããŸãããåœæ¥ã« React Router v7 ãæ£åŒãªãªãŒã¹ããããªã©æ³å®å€ã®ããšãèµ·ããã€ã€ããçããã«ããããªè©±é¡ãšããŠåãäžããŠããã ãæãé£ãã£ãã§ãã ð ç»å£è³æã¯ãã¡ã çµããã« ã¡ãã¬ãŒã¯ãããããå»çãã«ã¹ã±ã¢é åã«ãããŠãå»çäœéšã«ã€ã³ãã¯ããäžãããããã¯ãããµãŒãã¹ã®éçºã«åãçµãã§ãããŸããåŒãç¶ãæè¡çãªãã£ã¬ã³ãžãè¡ã£ãŠãããŸãã®ã§ã泚ç®ãã ããïŒ æåŸã«ãæ¹ã㊠JSConf JP 2024 ã®éå¶ã®çæ§ãç»å£ãããã¹ããŒã«ãŒã®çæ§ãåå è
ã®çæ§ãããããšãããããŸãããæ¥å¹Žã®éå¬ã楜ãã¿ã«ããŠããŸãïŒ ãã€ãã¹ç€Ÿãšã¡ã«ã«ãªç€Ÿã®çŽ æµãªããã«ãã£ãããã ããŸãã âš ã¡ãã¬ãŒã§ã¯äžç·ã«åã仲éãåéããŠããŸãã ãã²ãã®èšäºãããŒã¹ãç»å£ãªã©ã§èå³ãæã£ãŠããã ããæ¹ã¯ãé£çµ¡ããåŸ
ã¡ããŠãããŸãïŒã«ãžã¥ã¢ã«é¢è«ã倧æè¿ã§ãã®ã§ããæ°è»œã«ãåãåãããã ããïŒ åœæ¥äŒå Žã§ãæéããã ããçæ§ãããããšãããããŸããïŒ ã¡ãã¬ãŒã¯ä»åŸãæè¡ã€ãã³ããžåºå±/ç»å£ããäºå®ã§ããä»åŸãçããã«ãäŒãããããšã楜ãã¿ã«ããŠããŸãïŒ
ããã«ã¡ã¯ïŒäººæãã©ãããã©ãŒã æ¬éšã§æè¡åºå ±å
Œãšã³ãžãã¢æ¡çšãããŠããéç°( @Shige0096 )ã§ãã2024 幎 11 æã«ã¡ãã¬ãŒã«ãžã§ã€ã³ããåã®ç€Ÿå€ã€ãã³ãã«åå ããŠããŸããã ä»åãã¡ãã¬ãŒã¯ 2024/11/23 ã«ä¹æ®µåäž KS ãã«ã«ãŠéå¬ãããã JSConf JP 2024 ãã«ãã¬ãã¢ã ã¹ãã³ãµãŒãšããŠåè³ãããŠããã ããŸããã JSConf JP ã¯äžè¬ç€Ÿå£æ³äºº Japan Node.js Association ã«ãã£ãŠäŒç»ã»éå¶ãããŠãã JavaScript ã«é¢ããââ ãç¥ã â âã§ããæ¥æ¬ãšæµ·å€ã® Web éçºè
ãç¹ããç®çã§äŒç»ãããŠããŸãã2020 幎ããéå¬ãããä»å¹Žã§ 5 åç®ãä»å¹Žãããã³ããšã³ããšã³ãžãã¢ã»æ¡çšäººäºã»æè¡åºå ±æ
åœãäžå¿ã«å€ãã®åå è
ã蚪ããŸããã äŒå Žã®æ§å äŒå Žã¯ä¹æ®µåäž KS ãã«ãä»å¹Žã¯ãªã³ã©ã€ã³ã»ãªãã©ã€ã³ã®ãã€ããªããéå¬ã§ãããçŸå°ãã±ããã¯å£²ãåããŠããŸã£ãã®ã§ããªã³ã©ã€ã³é
ä¿¡ãããã®ã¯å¬ããã§ããã åœæ¥ã¯ 4 ã€ã®ãã©ãã¯ã«åãããæé垯ã«ãã£ãŠã¯ 4 ã»ãã·ã§ã³ãåæäžŠè¡ããŠããŸããã ã»ãã·ã§ã³æ°ãå€ããšãŠãå
å®ããã€ãã³ãã«ãªããŸããã äŒå Žå
¥ãå£ ã¡ãã¬ãŒããŒã¹ã®æ§å ã¡ãã¬ãŒããŒã¹ã§ã¯ãå»çäœéšããããããããã«ãçšããŠã¢ã³ã±ãŒã調æ»ããŸããã ãšã³ãžãã¢ãã¯ããå€ãã®æ¹ã«ãè¶ãããã ããŸããïŒãè¶ãããã ããçæ§ããããšãããããŸãã âš ç¹ã«å€ãã£ããå»çäœéšãããããã¯ä»¥äž 2 ã€ã â ãã£ãã·ã¥ã¬ã¹æ±ºæžãããã âš ãã£ãã·ã¥ã¬ã¹å¯Ÿå¿ãé²ãã§ããããŸã ãŸã çŸé察å¿ã®ç
é¢ãå€ã âš çŸéãåŒãèœãšãã«äžåºŠã³ã³ããã«è¡ãããšããã£ã â¡ åŸ
ã¡æéãé·ãïŒã»ãŒåç ïŒ äœïŒ âš äºçŽããã¯ããªã®ã«åŸ
ã¡æéãçºçããŠãã âš ãã€ãæ··ãã§ããã®ã§ç
é¢ã«è¡ãã®ãç²ãã å®éã« CLINICS ã¢ã㪠ã®ç»é¢ãã芧ããã ããªãã以äžã®ãããªã話ãããŸããããªã³ã©ã€ã³èšºçãåããã®ã¡ããèŠæã«åãããŠè¬ã Uber ã§é
éããããšãå¯èœã§ããããšããäœãããã£ãã·ã¥ã¬ã¹æ±ºæžãã¹ã ãŒãºã«ã§ããŠãšãŠãè¯ãïŒãªã©ã®ã声ãããã ããŸããã å€ãã®æ¹ã«ãè¶ãããã ããŸãã ð èªèº«ãéçºããŠãããããã¯ãã«èŸŒããæãã¯äººäžå ðâš ã¡ãã¬ãŒç»å£ åœç€Ÿã®é«æ©(å»çãã©ãããã©ãŒã æ¬éš)ãšåŸ·æ°ž(人æãã©ãããã©ãŒã )ãç»å£ããŸããã 髿©ã®ã»ãã·ã§ã³ã®æ§å 次ã
ã«åå è
ãå¢ããŠãããæçµçã«ã¯ 50 åè¿ãã®æ¹ã«ã芧ããã ããŸãã ð ãªã³ã©ã€ã³é
ä¿¡ãå«ãããèŠèŽããã ããçæ§ãããããšãããããŸããïŒ ç»å£ãã髿©ããäžèš ã»ãã·ã§ã³ãç»å£è³æãã芧é ããçæ§ãããããšãããããŸããïŒåœæ¥ã®ããŒã¹ãæèŠªäŒããŸã X ãããã°ãéããŠãçæ§ããå€ãã®ãææ³ãé ãæè¬ã®æ°æã¡ã§ãã£ã±ãã§ããçºè¡šã§è©³ããåãäžããããªãã£ãå
容ã«é¢ãã Q&A ã以äžã«å
¬éããŸãã ã³ã³ããŒãã³ãã®åå²ç²åºŠãããŒã å
šäœã§ã©ã®ããã«çµ±äžããŠããŸããïŒ çºè¡šå
ã§ç޹ä»ãã{é¢å¿äº}{ç¶æ³}{ããŒã¹ã³ã³ããŒãã³ãå}ã®åœåèŠåãå®ãããšã§ Button ã Dialog ã®åäœã§èªç¶ãšã³ã³ããŒãã³ããåå²ããããããªã¡ã³ã¿ã«ã¢ãã«ãç¯ããŠããŸããå ã㊠Plop ã䜿ã£ãŠãã³ãã¬ãŒãã³ãŒããçæããããšã§å®è£
ããã¬ãªãããã«ããŠããŸãã ç¶æ
管çã©ã€ãã©ãªã¯ã©ã®ããã«äœ¿ãåããŠããŸããïŒ éåæç¶æ
管ç㯠Tanstack Query ããã©ãŒã ç¶æ
管ç㯠React Hook Form ããã®ä»ã® UI ã«é¢ããç¶æ
㯠React.useState ã®ããã«äœ¿ãåããŠããŸããè€åã³ã³ããŒãã³ãéã§èŠªåé¢ä¿ãããå Žå㯠React.createContext ã䜿ã£ãŠäŸåé¢ä¿ã衚çŸããããšããããŸãããã®ãšããåã³ã³ããŒãã³ãã® Storybook ã® decorator ã« Context Provider ãèšå®ããããšã§ãè€åã³ã³ããŒãã³ãéã®é£æºãå«ãã Story ãšãã®ãã¹ããå®è£
ããŠããŸãã Redux ã¯ãµãŒããã£ãã·ã¥ãšããŠéçšããŠããŸããããçŸåšã¯ Tanstack Query ãžã®ç§»è¡ãé²ããŠããããç©æ¥µçãªå©çšã¯é¿ããŠããŸãã ð ç»å£è³æã¯ãã¡ã 執氞ã®ã»ãã·ã§ã³ã®æ§å ç»å£ãã埳氞ããäžèš Remix ã®ãã¡ã€ã«ããŒã¹ã«ãŒãã£ã³ã°ã«ã€ã㊠LT ãããŠããã ããŸãããåœæ¥ã« React Router v7 ãæ£åŒãªãªãŒã¹ããããªã©æ³å®å€ã®ããšãèµ·ããã€ã€ããçããã«ããããªè©±é¡ãšããŠåãäžããŠããã ãæãé£ãã£ãã§ãã ð ç»å£è³æã¯ãã¡ã çµããã« ã¡ãã¬ãŒã¯ãããããå»çãã«ã¹ã±ã¢é åã«ãããŠãå»çäœéšã«ã€ã³ãã¯ããäžãããããã¯ãããµãŒãã¹ã®éçºã«åãçµãã§ãããŸããåŒãç¶ãæè¡çãªãã£ã¬ã³ãžãè¡ã£ãŠãããŸãã®ã§ã泚ç®ãã ããïŒ æåŸã«ãæ¹ã㊠JSConf JP 2024 ã®éå¶ã®çæ§ãç»å£ãããã¹ããŒã«ãŒã®çæ§ãåå è
ã®çæ§ãããããšãããããŸãããæ¥å¹Žã®éå¬ã楜ãã¿ã«ããŠããŸãïŒ ãã€ãã¹ç€Ÿãšã¡ã«ã«ãªç€Ÿã®çŽ æµãªããã«ãã£ãããã ããŸãã âš ã¡ãã¬ãŒã§ã¯äžç·ã«åã仲éãåéããŠããŸãã ãã²ãã®èšäºãããŒã¹ãç»å£ãªã©ã§èå³ãæã£ãŠããã ããæ¹ã¯ãé£çµ¡ããåŸ
ã¡ããŠãããŸãïŒã«ãžã¥ã¢ã«é¢è«ã倧æè¿ã§ãã®ã§ããæ°è»œã«ãåãåãããã ããïŒ åœæ¥äŒå Žã§ãæéããã ããçæ§ãããããšãããããŸããïŒ ã¡ãã¬ãŒã¯ä»åŸãæè¡ã€ãã³ããžåºå±/ç»å£ããäºå®ã§ããä»åŸãçããã«ãäŒãããããšã楜ãã¿ã«ããŠããŸãïŒ
ããã«ã¡ã¯ïŒäººæãã©ãããã©ãŒã æ¬éšã§æè¡åºå ±å
Œãšã³ãžãã¢æ¡çšãããŠããéç°( @Shige0096 )ã§ãã2024 幎 11 æã«ã¡ãã¬ãŒã«ãžã§ã€ã³ããåã®ç€Ÿå€ã€ãã³ãã«åå ããŠããŸããã ä»åãã¡ãã¬ãŒã¯ 2024/11/23 ã«ä¹æ®µåäž KS ãã«ã«ãŠéå¬ãããã JSConf JP 2024 ãã«ãã¬ãã¢ã ã¹ãã³ãµãŒãšããŠåè³ãããŠããã ããŸããã JSConf JP ã¯äžè¬ç€Ÿå£æ³äºº Japan Node.js Association ã«ãã£ãŠäŒç»ã»éå¶ãããŠãã JavaScript ã«é¢ããââ ãç¥ã â âã§ããæ¥æ¬ãšæµ·å€ã® Web éçºè
ãç¹ããç®çã§äŒç»ãããŠããŸãã2020 幎ããéå¬ãããä»å¹Žã§ 5 åç®ãä»å¹Žãããã³ããšã³ããšã³ãžãã¢ã»æ¡çšäººäºã»æè¡åºå ±æ
åœãäžå¿ã«å€ãã®åå è
ã蚪ããŸããã äŒå Žã®æ§å äŒå Žã¯ä¹æ®µåäž KS ãã«ãä»å¹Žã¯ãªã³ã©ã€ã³ã»ãªãã©ã€ã³ã®ãã€ããªããéå¬ã§ãããçŸå°ãã±ããã¯å£²ãåããŠããŸã£ãã®ã§ããªã³ã©ã€ã³é
ä¿¡ãããã®ã¯å¬ããã§ããã åœæ¥ã¯ 4 ã€ã®ãã©ãã¯ã«åãããæé垯ã«ãã£ãŠã¯ 4 ã»ãã·ã§ã³ãåæäžŠè¡ããŠããŸããã ã»ãã·ã§ã³æ°ãå€ããšãŠãå
å®ããã€ãã³ãã«ãªããŸããã äŒå Žå
¥ãå£ ã¡ãã¬ãŒããŒã¹ã®æ§å ã¡ãã¬ãŒããŒã¹ã§ã¯ãå»çäœéšããããããããã«ãçšããŠã¢ã³ã±ãŒã調æ»ããŸããã ãšã³ãžãã¢ãã¯ããå€ãã®æ¹ã«ãè¶ãããã ããŸããïŒãè¶ãããã ããçæ§ããããšãããããŸãã âš ç¹ã«å€ãã£ããå»çäœéšãããããã¯ä»¥äž 2 ã€ã â ãã£ãã·ã¥ã¬ã¹æ±ºæžãããã âš ãã£ãã·ã¥ã¬ã¹å¯Ÿå¿ãé²ãã§ããããŸã ãŸã çŸé察å¿ã®ç
é¢ãå€ã âš çŸéãåŒãèœãšãã«äžåºŠã³ã³ããã«è¡ãããšããã£ã â¡ åŸ
ã¡æéãé·ãïŒã»ãŒåç ïŒ äœïŒ âš äºçŽããã¯ããªã®ã«åŸ
ã¡æéãçºçããŠãã âš ãã€ãæ··ãã§ããã®ã§ç
é¢ã«è¡ãã®ãç²ãã å®éã« CLINICS ã¢ã㪠ã®ç»é¢ãã芧ããã ããªãã以äžã®ãããªã話ãããŸããããªã³ã©ã€ã³èšºçãåããã®ã¡ããèŠæã«åãããŠè¬ã Uber ã§é
éããããšãå¯èœã§ããããšããäœãããã£ãã·ã¥ã¬ã¹æ±ºæžãã¹ã ãŒãºã«ã§ããŠãšãŠãè¯ãïŒãªã©ã®ã声ãããã ããŸããã å€ãã®æ¹ã«ãè¶ãããã ããŸãã ð èªèº«ãéçºããŠãããããã¯ãã«èŸŒããæãã¯äººäžå ðâš ã¡ãã¬ãŒç»å£ åœç€Ÿã®é«æ©(å»çãã©ãããã©ãŒã æ¬éš)ãšåŸ·æ°ž(人æãã©ãããã©ãŒã )ãç»å£ããŸããã 髿©ã®ã»ãã·ã§ã³ã®æ§å 次ã
ã«åå è
ãå¢ããŠãããæçµçã«ã¯ 50 åè¿ãã®æ¹ã«ã芧ããã ããŸãã ð ãªã³ã©ã€ã³é
ä¿¡ãå«ãããèŠèŽããã ããçæ§ãããããšãããããŸããïŒ ç»å£ãã髿©ããäžèš ã»ãã·ã§ã³ãç»å£è³æãã芧é ããçæ§ãããããšãããããŸããïŒåœæ¥ã®ããŒã¹ãæèŠªäŒããŸã X ãããã°ãéããŠãçæ§ããå€ãã®ãææ³ãé ãæè¬ã®æ°æã¡ã§ãã£ã±ãã§ããçºè¡šã§è©³ããåãäžããããªãã£ãå
容ã«é¢ãã Q&A ã以äžã«å
¬éããŸãã ã³ã³ããŒãã³ãã®åå²ç²åºŠãããŒã å
šäœã§ã©ã®ããã«çµ±äžããŠããŸããïŒ çºè¡šå
ã§ç޹ä»ãã{é¢å¿äº}{ç¶æ³}{ããŒã¹ã³ã³ããŒãã³ãå}ã®åœåèŠåãå®ãããšã§ Button ã Dialog ã®åäœã§èªç¶ãšã³ã³ããŒãã³ããåå²ããããããªã¡ã³ã¿ã«ã¢ãã«ãç¯ããŠããŸããå ã㊠Plop ã䜿ã£ãŠãã³ãã¬ãŒãã³ãŒããçæããããšã§å®è£
ããã¬ãªãããã«ããŠããŸãã ç¶æ
管çã©ã€ãã©ãªã¯ã©ã®ããã«äœ¿ãåããŠããŸããïŒ éåæç¶æ
管ç㯠Tanstack Query ããã©ãŒã ç¶æ
管ç㯠React Hook Form ããã®ä»ã® UI ã«é¢ããç¶æ
㯠React.useState ã®ããã«äœ¿ãåããŠããŸããè€åã³ã³ããŒãã³ãéã§èŠªåé¢ä¿ãããå Žå㯠React.createContext ã䜿ã£ãŠäŸåé¢ä¿ã衚çŸããããšããããŸãããã®ãšããåã³ã³ããŒãã³ãã® Storybook ã® decorator ã« Context Provider ãèšå®ããããšã§ãè€åã³ã³ããŒãã³ãéã®é£æºãå«ãã Story ãšãã®ãã¹ããå®è£
ããŠããŸãã Redux ã¯ãµãŒããã£ãã·ã¥ãšããŠéçšããŠããŸããããçŸåšã¯ Tanstack Query ãžã®ç§»è¡ãé²ããŠããããç©æ¥µçãªå©çšã¯é¿ããŠããŸãã ð ç»å£è³æã¯ãã¡ã 執氞ã®ã»ãã·ã§ã³ã®æ§å ç»å£ãã埳氞ããäžèš Remix ã®ãã¡ã€ã«ããŒã¹ã«ãŒãã£ã³ã°ã«ã€ã㊠LT ãããŠããã ããŸãããåœæ¥ã« React Router v7 ãæ£åŒãªãªãŒã¹ããããªã©æ³å®å€ã®ããšãèµ·ããã€ã€ããçããã«ããããªè©±é¡ãšããŠåãäžããŠããã ãæãé£ãã£ãã§ãã ð ç»å£è³æã¯ãã¡ã çµããã« ã¡ãã¬ãŒã¯ãããããå»çãã«ã¹ã±ã¢é åã«ãããŠãå»çäœéšã«ã€ã³ãã¯ããäžãããããã¯ãããµãŒãã¹ã®éçºã«åãçµãã§ãããŸããåŒãç¶ãæè¡çãªãã£ã¬ã³ãžãè¡ã£ãŠãããŸãã®ã§ã泚ç®ãã ããïŒ æåŸã«ãæ¹ã㊠JSConf JP 2024 ã®éå¶ã®çæ§ãç»å£ãããã¹ããŒã«ãŒã®çæ§ãåå è
ã®çæ§ãããããšãããããŸãããæ¥å¹Žã®éå¬ã楜ãã¿ã«ããŠããŸãïŒ ãã€ãã¹ç€Ÿãšã¡ã«ã«ãªç€Ÿã®çŽ æµãªããã«ãã£ãããã ããŸãã âš ã¡ãã¬ãŒã§ã¯äžç·ã«åã仲éãåéããŠããŸãã ãã²ãã®èšäºãããŒã¹ãç»å£ãªã©ã§èå³ãæã£ãŠããã ããæ¹ã¯ãé£çµ¡ããåŸ
ã¡ããŠãããŸãïŒã«ãžã¥ã¢ã«é¢è«ã倧æè¿ã§ãã®ã§ããæ°è»œã«ãåãåãããã ããïŒ åœæ¥äŒå Žã§ãæéããã ããçæ§ãããããšãããããŸããïŒ ã¡ãã¬ãŒã¯ä»åŸãæè¡ã€ãã³ããžåºå±/ç»å£ããäºå®ã§ããä»åŸãçããã«ãäŒãããããšã楜ãã¿ã«ããŠããŸãïŒ
ããã«ã¡ã¯ïŒäººæãã©ãããã©ãŒã æ¬éšã§æè¡åºå ±å
Œãšã³ãžãã¢æ¡çšãããŠããéç°( @Shige0096 )ã§ãã2024 幎 11 æã«ã¡ãã¬ãŒã«ãžã§ã€ã³ããåã®ç€Ÿå€ã€ãã³ãã«åå ããŠããŸããã ä»åãã¡ãã¬ãŒã¯ 2024/11/23 ã«ä¹æ®µåäž KS ãã«ã«ãŠéå¬ãããã JSConf JP 2024 ãã«ãã¬ãã¢ã ã¹ãã³ãµãŒãšããŠåè³ãããŠããã ããŸããã JSConf JP ã¯äžè¬ç€Ÿå£æ³äºº Japan Node.js Association ã«ãã£ãŠäŒç»ã»éå¶ãããŠãã JavaScript ã«é¢ããââ ãç¥ã â âã§ããæ¥æ¬ãšæµ·å€ã® Web éçºè
ãç¹ããç®çã§äŒç»ãããŠããŸãã2020 幎ããéå¬ãããä»å¹Žã§ 5 åç®ãä»å¹Žãããã³ããšã³ããšã³ãžãã¢ã»æ¡çšäººäºã»æè¡åºå ±æ
åœãäžå¿ã«å€ãã®åå è
ã蚪ããŸããã äŒå Žã®æ§å äŒå Žã¯ä¹æ®µåäž KS ãã«ãä»å¹Žã¯ãªã³ã©ã€ã³ã»ãªãã©ã€ã³ã®ãã€ããªããéå¬ã§ãããçŸå°ãã±ããã¯å£²ãåããŠããŸã£ãã®ã§ããªã³ã©ã€ã³é
ä¿¡ãããã®ã¯å¬ããã§ããã åœæ¥ã¯ 4 ã€ã®ãã©ãã¯ã«åãããæé垯ã«ãã£ãŠã¯ 4 ã»ãã·ã§ã³ãåæäžŠè¡ããŠããŸããã ã»ãã·ã§ã³æ°ãå€ããšãŠãå
å®ããã€ãã³ãã«ãªããŸããã äŒå Žå
¥ãå£ ã¡ãã¬ãŒããŒã¹ã®æ§å ã¡ãã¬ãŒããŒã¹ã§ã¯ãå»çäœéšããããããããã«ãçšããŠã¢ã³ã±ãŒã調æ»ããŸããã ãšã³ãžãã¢ãã¯ããå€ãã®æ¹ã«ãè¶ãããã ããŸããïŒãè¶ãããã ããçæ§ããããšãããããŸãã âš ç¹ã«å€ãã£ããå»çäœéšãããããã¯ä»¥äž 2 ã€ã â ãã£ãã·ã¥ã¬ã¹æ±ºæžãããã âš ãã£ãã·ã¥ã¬ã¹å¯Ÿå¿ãé²ãã§ããããŸã ãŸã çŸé察å¿ã®ç
é¢ãå€ã âš çŸéãåŒãèœãšãã«äžåºŠã³ã³ããã«è¡ãããšããã£ã â¡ åŸ
ã¡æéãé·ãïŒã»ãŒåç ïŒ äœïŒ âš äºçŽããã¯ããªã®ã«åŸ
ã¡æéãçºçããŠãã âš ãã€ãæ··ãã§ããã®ã§ç
é¢ã«è¡ãã®ãç²ãã å®éã« CLINICS ã¢ã㪠ã®ç»é¢ãã芧ããã ããªãã以äžã®ãããªã話ãããŸããããªã³ã©ã€ã³èšºçãåããã®ã¡ããèŠæã«åãããŠè¬ã Uber ã§é
éããããšãå¯èœã§ããããšããäœãããã£ãã·ã¥ã¬ã¹æ±ºæžãã¹ã ãŒãºã«ã§ããŠãšãŠãè¯ãïŒãªã©ã®ã声ãããã ããŸããã å€ãã®æ¹ã«ãè¶ãããã ããŸãã ð èªèº«ãéçºããŠãããããã¯ãã«èŸŒããæãã¯äººäžå ðâš ã¡ãã¬ãŒç»å£ åœç€Ÿã®é«æ©(å»çãã©ãããã©ãŒã æ¬éš)ãšåŸ·æ°ž(人æãã©ãããã©ãŒã )ãç»å£ããŸããã 髿©ã®ã»ãã·ã§ã³ã®æ§å 次ã
ã«åå è
ãå¢ããŠãããæçµçã«ã¯ 50 åè¿ãã®æ¹ã«ã芧ããã ããŸãã ð ãªã³ã©ã€ã³é
ä¿¡ãå«ãããèŠèŽããã ããçæ§ãããããšãããããŸããïŒ ç»å£ãã髿©ããäžèš ã»ãã·ã§ã³ãç»å£è³æãã芧é ããçæ§ãããããšãããããŸããïŒåœæ¥ã®ããŒã¹ãæèŠªäŒããŸã X ãããã°ãéããŠãçæ§ããå€ãã®ãææ³ãé ãæè¬ã®æ°æã¡ã§ãã£ã±ãã§ããçºè¡šã§è©³ããåãäžããããªãã£ãå
容ã«é¢ãã Q&A ã以äžã«å
¬éããŸãã ã³ã³ããŒãã³ãã®åå²ç²åºŠãããŒã å
šäœã§ã©ã®ããã«çµ±äžããŠããŸããïŒ çºè¡šå
ã§ç޹ä»ãã{é¢å¿äº}{ç¶æ³}{ããŒã¹ã³ã³ããŒãã³ãå}ã®åœåèŠåãå®ãããšã§ Button ã Dialog ã®åäœã§èªç¶ãšã³ã³ããŒãã³ããåå²ããããããªã¡ã³ã¿ã«ã¢ãã«ãç¯ããŠããŸããå ã㊠Plop ã䜿ã£ãŠãã³ãã¬ãŒãã³ãŒããçæããããšã§å®è£
ããã¬ãªãããã«ããŠããŸãã ç¶æ
管çã©ã€ãã©ãªã¯ã©ã®ããã«äœ¿ãåããŠããŸããïŒ éåæç¶æ
管ç㯠Tanstack Query ããã©ãŒã ç¶æ
管ç㯠React Hook Form ããã®ä»ã® UI ã«é¢ããç¶æ
㯠React.useState ã®ããã«äœ¿ãåããŠããŸããè€åã³ã³ããŒãã³ãéã§èŠªåé¢ä¿ãããå Žå㯠React.createContext ã䜿ã£ãŠäŸåé¢ä¿ã衚çŸããããšããããŸãããã®ãšããåã³ã³ããŒãã³ãã® Storybook ã® decorator ã« Context Provider ãèšå®ããããšã§ãè€åã³ã³ããŒãã³ãéã®é£æºãå«ãã Story ãšãã®ãã¹ããå®è£
ããŠããŸãã Redux ã¯ãµãŒããã£ãã·ã¥ãšããŠéçšããŠããŸããããçŸåšã¯ Tanstack Query ãžã®ç§»è¡ãé²ããŠããããç©æ¥µçãªå©çšã¯é¿ããŠããŸãã ð ç»å£è³æã¯ãã¡ã 執氞ã®ã»ãã·ã§ã³ã®æ§å ç»å£ãã埳氞ããäžèš Remix ã®ãã¡ã€ã«ããŒã¹ã«ãŒãã£ã³ã°ã«ã€ã㊠LT ãããŠããã ããŸãããåœæ¥ã« React Router v7 ãæ£åŒãªãªãŒã¹ããããªã©æ³å®å€ã®ããšãèµ·ããã€ã€ããçããã«ããããªè©±é¡ãšããŠåãäžããŠããã ãæãé£ãã£ãã§ãã ð ç»å£è³æã¯ãã¡ã çµããã« ã¡ãã¬ãŒã¯ãããããå»çãã«ã¹ã±ã¢é åã«ãããŠãå»çäœéšã«ã€ã³ãã¯ããäžãããããã¯ãããµãŒãã¹ã®éçºã«åãçµãã§ãããŸããåŒãç¶ãæè¡çãªãã£ã¬ã³ãžãè¡ã£ãŠãããŸãã®ã§ã泚ç®ãã ããïŒ æåŸã«ãæ¹ã㊠JSConf JP 2024 ã®éå¶ã®çæ§ãç»å£ãããã¹ããŒã«ãŒã®çæ§ãåå è
ã®çæ§ãããããšãããããŸãããæ¥å¹Žã®éå¬ã楜ãã¿ã«ããŠããŸãïŒ ãã€ãã¹ç€Ÿãšã¡ã«ã«ãªç€Ÿã®çŽ æµãªããã«ãã£ãããã ããŸãã âš ã¡ãã¬ãŒã§ã¯äžç·ã«åã仲éãåéããŠããŸãã ãã²ãã®èšäºãããŒã¹ãç»å£ãªã©ã§èå³ãæã£ãŠããã ããæ¹ã¯ãé£çµ¡ããåŸ
ã¡ããŠãããŸãïŒã«ãžã¥ã¢ã«é¢è«ã倧æè¿ã§ãã®ã§ããæ°è»œã«ãåãåãããã ããïŒ åœæ¥äŒå Žã§ãæéããã ããçæ§ãããããšãããããŸããïŒ ã¡ãã¬ãŒã¯ä»åŸãæè¡ã€ãã³ããžåºå±/ç»å£ããäºå®ã§ããä»åŸãçããã«ãäŒãããããšã楜ãã¿ã«ããŠããŸãïŒ
ãã¡ãã®èšäºã¯ MedleyïŒã¡ãã¬ãŒïŒ Advent Calendar 2024 ã®3æ¥ç®ã®èšäºã§ãã Who are you? ã¡ãã¬ãŒã§äž»ã«SRE掻åãè¡ã£ãŠãã人æãã©ãããã©ãŒã æ¬éš 第åéçºã°ã«ãŒãã®çäºã§ãã æåã«ç°¡åã«FAQ圢åŒã§èªå·±ç޹ä»ãããŠããã ãããšæããŸãã ïŒæšæ¥ã¯äœãé£ã¹ãŸãããïŒ ïŒ éººç³»ãã¡ã¹ãããŒãã§ã¯äžçªå¥œããªå°è«žãã°ã ïŒå¥œããªæ¬ã¯äœã§ããïŒ ïŒ æ³äºæ£ããã®èªäŒæžãäžå乿ãã¯å¿ã«æ®ã£ãŠããŸãã ïŒéã³ã«è¡ããªãã©ãã«è¡ããŸããïŒ ïŒ ã¢ãŠããã¢ã奜ããªã®ã§ãã£ã³ããªã©ã ä»åã¯å©çšããŠããAWSç°å¢ã« IAM Identity Center ãå°å
¥ãã話ããããŠããã ãããšæããŸãã ã»ãã¥ãªãã£ãšç®¡çã³ã¹ãã®å€©ç§€ ã¡ãã¬ãŒã§ã¯ã¯ã¬ãã³ã·ã£ã«ãªæ
å ±ã¯å³éã«ç®¡çãããå¹³æã§å€éšããŒã«ã«ä¿åãããããšã¯ãããŸãããAWSã®IAMãŠãŒã¶ã®ã¢ã¯ã»ã¹ããŒã«é¢ããŠãåãã§ãã ãã ãããã§ãå¿é
ã«ãªãã®ã¯ PCã®äžã«å¹³æã§æ®ãæ
å ± ãPCãå³éã«ç®¡çãããŠããã®ã§ããããæŒæŽ©ãããã®ã§ã¯ãããŸããããããã§ãå¯èœæ§ã¯ãŒãã§ã¯ãããŸããã äžæã¯AssumeRoleã䜿ãããšã§æŒæŽ©æã®ãªã¹ã¯ãæžãããŸããã æåã®èªèšŒã§ã¯äœãã§ããªãåŒ±ãæš©éã§ãAssumeRoleã§æš©éã®åŒ·ãããŒã«ã«å€èº«ããæ¹åŒãå°å
¥ããŸããã ãã®è©±ãèããŠãè
ã«å
垯ãå·»ããåŠçæã®å°å¹Žã倩çã®ãé¢ã被ãããããšãæµ®ããã ããªãã¯AWSããããããŒã銎æã¿ã®ãã®ããã°ã®æ¬èãªèªè
ã§ãã AssumeRoleæŠèŠå³ ããã§ããŸã 課é¡ã¯ãããŸããã IAMãŠãŒã¶ãšAssumeRoleã®ç®¡çã³ã¹ã ã§ãã AWSã¢ã«ãŠã³ãã¯ãµãŒãã¹ããšã«è€æ°ååšããããã«æ¬çªç°å¢ãã¹ããŒãžã³ã°ç°å¢ã§ãåããŠãããŸããããããã®AWSã¢ã«ãŠã³ãã«ã¢ã¯ã»ã¹ã§ããç°å¢ãéçºã¡ã³ããŒã«æäŸããå¿
èŠããããŸãã AssumeRoleã¯å€èº«ããå
ãšå€èº«ããå
ã®èšå®ãããå¿
èŠããããAWSã¢ã«ãŠã³ããè·šãå Žåã¯ããããã®AWSã¢ã«ãŠã³ãã«èšå®ãå¿
èŠã«ãªããŸããéçºã¡ã³ããŒã®ç°åããã床ã«ãã¡ããã¡ãã®AWSã¢ã«ãŠã³ãã«ãã®èšå®ãããããšããé¢åãªãã€ã«ã«ãªã£ãŠããŸããã ã»ãã¥ã¢ãªç°å¢ãç¶æãããŸãŸã管çã³ã¹ãããªãã¹ãäžãããã ããã§å°å
¥ã決ããã®ã IAM Identity Center ã§ããã IAM Identity Centerã®å°å
¥æ€èš çµè«ãå
ã«ç³ãäžããŸããšãIAM Identity Centerãå°å
¥ããããšã§ ã»ãã¥ã¢ãªç°å¢ãç¶æããªãããã€ã«ã®åæžãå®çŸããããšãã§ããŸãã ã å®ç§ã§ç©¶æ¥µãšããã»ã©ã§ã¯ãããŸãããã誰ããç®ã奪ãããŠããçæ³ã®ç°å¢ã«äžæ©è¿ã¥ãããšããŸããã IAM Identity Centerãããã«ç®¡çããAWS Control Towerã®å°å
¥ãæ€èšããŸããããæ¢ã«ããç°å¢ã«å°å
¥ããããšã®äºæãã¬å¶éããããããšã®ãªã¹ã¯ããAWS Configãå€çšãããããšã§æãã¬ã³ã¹ãå¢ãçºçãããšã®æ
å ±ããããä»åã¯èŠéãããšã«ããŸããã IAM Identity Centerãšã¯ å
㯠AWS Single Sign-On ïŒAWS SSOïŒ ãšãããµãŒãã¹åã§ããã ããã¯IAMãŠãŒã¶ãšã¯å
šãå¥ç©ã®ãŠãŒã¶ïŒãããSSOãŠãŒã¶ãšããŸãïŒãäœæããSSOãŠãŒã¶ãåAWSã¢ã«ãŠã³ãã®åIAMããŒã«ãæã£ããŠãŒã¶ã«å€èº«ããããšãã§ããæ©èœã§ãã IAM Identity CenteræŠèŠå³ IAM Identity Centerãå°å
¥ããæ±ºãæ SSOãŠãŒã¶ãšæš©éã®ç®¡çã¯äžã€ã®AWSã¢ã«ãŠã³ãã®IAM Identity Centerã§ç®¡çããããšãã§ããŸãã ããã¯AWS Organizationsã®æ©èœã®äžã«ä¹ãæ©èœã§ããã幞ãå
ã
ãããå°å
¥ããŠããããšã§ãããã«çµã¿èŸŒãããšãã§ããŸããïŒã¡ãªã¿ã«çŸåšã¯IdPãèšå®ããããšã§AWS OrganizationsããªããŠããã®æ©èœã䜿ãããšãã§ããŸãïŒã ã€ãŸãã è€æ°ã®AWSã¢ã«ãŠã³ãã®è€æ°ã®ãŠãŒã¶ã®è€æ°ã®ããŒã«ãäžã€ã®IAM Identity Centerã§å
šãŠç®¡çããããšãã§ããã®ã§ã ã ã§ã¯ãåAWSã¢ã«ãŠã³ãã§æ¢ã«äœæããŠããŸã£ãIAMããªã·ãŒããIAM Identity Centerã§åãå
容ã§äœãçŽããªããšãããªãããšãããšãããªããšããªããã«ã¹ã¿ã ããŒã«ãšããèšå®ã§ãIAMããªã·ãŒåã ãå®çŸ©ããããšã§æ¢åã®IAMããªã·ãŒããã®ãŸãŸæŽ»ããããšãã§ããŸãã ãããŠãSSOãŠãŒã¶ã¯æä¹
çãªã¢ã¯ã»ã¹ããŒãæã€ããšãã§ãããæå€§ã§12æéã®æéä»ãã¢ã¯ã»ã¹ããŒããæã€ããšãã§ããŸãããåŸã£ãŠã ä»®ã«äžãäžã¢ã¯ã»ã¹ããŒãæŒæŽ©ããŠã12æéåŸã«ã¯äœ¿ããªããªããŸã ã ãŸãã«æåŒ·ã§ç¡æµã®IAM Identity Centerã§ãã IAM Identity Centerã®å°å
¥ ããã§ã¯IAM Identity Centerã®å°å
¥ã®æµããç°¡åã«èª¬æããããŸãã äžçªæåã¯IAM Identity Centerãæå¹ã«ããããšã§ãããããã¯å²æããŠæå¹åããåŸã®æé ãèšèŒããŠãããŸãã IAM Identity Centerå
šäœå³ SSOãŠãŒã¶ã®äœæ SSOãŠãŒã¶ã¯åè¿°ããéãIAMãŠãŒã¶ãšã¯å
šãå¥ç©ãªã®ã§ãæ°ãã«å
šå¡åäœæããå¿
èŠããããŸãã æäœéå¿
èŠãªã®ã¯ååãšã¡ãŒã«ã¢ãã¬ã¹ã®ã¿ã§ãã äœæç»é¢ã«ä»»æé
ç®ã§äœæãé»è©±çªå·ãªã©ãã£ããããã®ã§ãããã·ã¹ãã çã«ã¯å
šãé¢ä¿ãªãããã§ããIAM Identity CenterãIdPãšããŠäœ¿ããšãã®ããã®èšå®ã§ããããã SSOãŠãŒã¶äœæç»é¢ SSOã°ã«ãŒãã®äœæ SSOã°ã«ãŒããšã¯ãSSOãŠãŒã¶ãšåŸè¿°ããèš±å¯ã»ããããŸãšããããã®ãã®ã§ãã æ°ããSSOãŠãŒã¶ãå¢ããå Žåã¯ã該åœã®ã°ã«ãŒãã«è¿œå ããŠãããã ãã§OKã§ãã SSOã°ã«ãŒãäœæç»é¢ èš±å¯ã»ããã®äœæ èš±å¯ã»ããã¯ãIAMããŒã«ã®çŽ ã«ãªããã®ã§ãã ããã§èšå®ããããªã·ãŒãåAWSã¢ã«ãŠã³ãã«IAMããŒã«ãIAMããªã·ãŒãšããŠããããžã§ãã³ã°ãããŸãã ããããžã§ãã³ã°å
ã®AWSã¢ã«ãŠã³ãã«æ¢ã«ããIAMããªã·ãŒã䜿ãããå Žåã¯ãã«ã¹ã¿ããŒãããŒãžãããªã·ãŒã§ãã®ååãèšå®ããã°å²ãåœãŠãããšãã§ããŸãã ååãééã£ãŠããŠååšããªãIAMããªã·ãŒãèšå®ããŠããŸã£ãå Žåã¯ãããããžã§ãã³ã°æã«ãšã©ãŒã«ãªããŸãã èš±å¯ã»ããäœæç»é¢ ããããžã§ãã³ã° âSSOãŠãŒã¶ãŸãã¯ã°ã«ãŒãâ ãš âèš±å¯ã»ããâ ãé©çšãããAWSã¢ã«ãŠã³ãã«ããããžã§ãã³ã°ããããšã§ã察象SSOãŠãŒã¶ã§è©²åœAWSã¢ã«ãŠã³ãã«ãã°ã€ã³å¯èœã«ãªããŸãã ããããžã§ãã³ã°æŠèŠå³ SSOã¢ã¯ã»ã¹ããŒã¿ã«ç»é¢ SSOãŠãŒã¶ã§ãã°ã€ã³ããAWSã¢ã¯ã»ã¹ããŒã¿ã«ç»é¢ã«ãAWSã¢ã«ãŠã³ããžã®ãªã³ã¯ã®äžèЧã衚瀺ãããŸãã ãã®ãªã³ã¯ããåAWSã¢ã«ãŠã³ãã«ãä»»æã®ããŒã«ã§ãã°ã€ã³ããããšãã§ããŸãã䟿å©ã§ããïŒ AWSã¢ã¯ã»ã¹ããŒã¿ã«ç»é¢ äžæçãªã¢ã¯ã»ã¹ããŒã¯CLIã§ãååŸã§ããŸããããã®ç»é¢ããã ã¢ã¯ã»ã¹ã㌠ã®ãªã³ã¯ãã¯ãªãã¯ãããšäžèЧç»é¢ã衚瀺ãããŸãã AWSã¢ã¯ã»ã¹ããŒã¿ã« ã¢ã¯ã»ã¹ããŒç¢ºèªç»é¢ å°å
¥åŸã«å¯Ÿå¿ããããš ãããŸã§ã®æé ã§ãããžã¡ã³ãã³ã³ãœãŒã«ã®ã§ãã°ã€ã³ã¯ã§ããããã«ãªã£ãŠããŸããããã以å€ã®ããŒã«çã§å©çšããããã«ããããšãããã§ã¯èª¬æããŸãã ~/.aws/configã®ä¿®æ£ ã¿ãŒããã«ã§AWS CLIãå©çšããããã«ããããŸã§ã¢ã¯ã»ã¹ããŒãçŽæ¥æå®ããŠããã®ããSSOãŠãŒã¶å¯Ÿå¿ã®èšè¿°ã«å€æŽããå¿
èŠããããŸãã ã¢ã¯ã»ã¹ããŒãªã©ã®ã¯ã¬ãã³ã·ã£ã«ãªæ
å ±ã®èšèŒãäžèŠã«ãªãããã®å
å®¹ãæŒæŽ©ããŠããã¡ãŒãžãå°ãªãã§ãã [default] sso_session = m y-sso sso_account_id = 999999999999 sso_role_name = x xxxxxxxxxxx [sso-session my-sso] sso_start_url = h ttps://xxxxxxxxxxxx.awsapps.com/start sso_registration_scopes = s so:account:access sso_sessionã®èšå®ãå€ãaws_sdkã ãšå¯Ÿå¿ããŠããªãã£ããããã®ã§ãææ°ã®aws_sdkã䜿ãããã« mise (éçºããŒã«ç®¡ççšããŒã«)ã«èšå®ããŸããã [tools] awscli = "latest" ãã®èšå®ãããç¶æ
ã§ aws sso login ãå®è¡ãããšèªèšŒç»é¢ã®ãã©ãŠã¶ãèªåã§ç«ã¡äžããããã©ãŠã¶ã§ã®èªèšŒå®äºåŸã«ã¿ãŒããã«ã§CLIã䜿ããããã«ãªããŸãã ã¿ãŒããã«ã§sso login ãã©ãŠã¶ã§èªèšŒ éçºç°å¢ãžã®ã¢ã¯ã»ã¹ããŒã®æž¡ãæ¹ éçºç°å¢ã«ãããŠã¢ã¯ã»ã¹ããŒã®èšå®ãå¿
èŠãªç®æãããããããæ¯æ¥ããŒã¿ã«ç»é¢ããã³ããã§æŽæ°ããŠãã ãããšããã®ã¯é¢åãããã®ã§ãæ¯æ¥1åæåã«ã·ã§ã«ãå®è¡ããŠãããããã«ããŸããïŒãããé¢åãªã®ã§ãããªãã§ã©ãã«ãã§ããã°è¯ãã£ãã®ã§ããã»ã»ã»ç¡å¿µïŒã ãã®å®è¡ã«ã¯SSOã®èªèšŒæ
å ±ãã·ã§ã«å
ã®åŠçã§å©çšãããã aws2-wrap ãå©çšãã.envãã¡ã€ã«ã®æŽæ°ã«ã¯ python-dotenv ãå©çšããŸããã ãããmiseã§å®çŸ©ããããšã§ãå
šéçºã¡ã³ããŒã«ãããªã察å¿ã§ããŸããã # äžéšæç² if ! $(aws2-wrap --profile " $profile " --export ); then aws sso login --profile= " $profile " eval "$( aws2-wrap --profile " $profile " --export )" fi # äžéšæç² from dotenv import set_key def update_env_file ( env_file , key_value_pairs ): try : for key in key_value_pairs: value = key_value_pairs[key] set_key(env_file, key, value, quote_mode = 'never' ) except Exception as e: print (e) Terraform, Packerã®å¯Ÿå¿ ææ°ã®TerraformãPackerã§ã¯aws ssoã«å¯Ÿå¿ããŠããã®ã§ãssoã®profileããã®ãŸãŸäœ¿ãããšãã§ããŸãïŒAssumeRoleã«ã¯å¯Ÿå¿ããŠããªãã£ãã®ã§ãããã察å¿ãããæã¯å€§å€ã§ããã»ã»ã»ïŒã Terraformã¯ç°å¢äŸåããªããããå®è¡ç°å¢ãã³ã³ããåãã³ã³ããå
ã§å®è¡ããŠããã®ã§ãããâãã°ã€ã³æã«SSOã»ãã·ã§ã³ã®ååšæç¡ã®ç¢ºèªâ â âãªããã°SSOãã°ã€ã³â ããããããšã§ã aws sso login ã®äºåå®è¡ãæèããªããŠãè¯ãããã«ããŸããã # äžéšæç² function get_caller_identity () { set +eu for i in { 1..3} ; do command "aws sts get-caller-identity --profile $1 " if [[ $? = 0 ]]; then break else echo "Not logged in" command "aws sso login --profile $1 " fi done set -eu } ææ°ã®Packerã¯aws ssoã«å¯Ÿå¿ããŠãããšåè¿°ããŸãããããªãã ãç°å¢ã«ãã sso-session ãå¹ããã«ãšã©ãŒã«ãªãå ŽåããããŸããããã®å Žåã¯ã¬ã¬ã·ãŒãªèšè¿°æ¹æ³ã§åé¿ã§ããŸãã [profile packer] credential_process = a ws --profile default configure export-credentials --format process region = a p-northeast-1 output = j son 察å¿ããŠè¯ãã£ãã㚠管çè
ç®ç·ã§è¯ãã£ãã㚠管çè
ç®ç·ã§ã¯ãAWSã®ãŠãŒã¶ç®¡çã倧忥œã«ãªããŸããã ãããŸã§éçºã¡ã³ããŒãå¢ããéã«ã¯ãè€æ°ã®AWSã¢ã«ãŠã³ãã«å¯Ÿãããããã«ãIAMãŠãŒã¶ã®äœæãã¢ã¯ã»ã¹ããŒã®çæããããã®åŸåæãã°ã€ã³ãã¹ã¯ãŒããšã¢ã¯ã»ã¹ããŒãã¡ã³ããŒã«é
åžããªããã°ãªããªãã£ããããäœæ¥ã倧åç
©éã§ããã IAM Identity Centerå°å
¥åŸã¯ã 1ã€ã®AWSã¢ã«ãŠã³ãã§SSOãŠãŒã¶ãäœæããã ãã§ã ãæåŸ
ã¡ãŒã«ãåæã«éãããŸãã ãŸããäžããŠããæš©éã®ç®¡çãæ¥œã«ãªããŸããã IAM Identity Centerã®ç»é¢ãèŠãã°ã誰ãã©ã®AWSã¢ã«ãŠã³ãã«ã©ããªæš©éãæã£ãŠãããå
šãŠããããŸãããèšå®ããã®ãããã ããªã®ã§ ãããããªAWSã¢ã«ãŠã³ããåºå
¥ãããŠç¢ºèªã»èšå®ããå¿
èŠããªããªããŸããã å©çšè
ç®ç·ã§è¯ãã£ãããš å©çšè
ç®ç·ã§ã¯ãåAWSã¢ã«ãŠã³ããžã®ãã°ã€ã³ãããŒã¿ã«ç»é¢ã®ãªã³ã¯ããè¡ãããšãã§ããã®ã§ã AWSã¢ã«ãŠã³ãããšã«ãã°ã€ã³ã®äœæ¥ãå¿
èŠãªããªã£ãã®ã楜ã§ãããåAWSã¢ã«ãŠã³ãæ¯ã«ãã°ã€ã³æ
å ±ãMFAæ
å ±ãä¿æããªããŠãè¯ããªã£ãã®ã管çãæ°æ¥œã«ãªããŸãã ã 察å¿ããŠå°ã£ãããš 12æéã®å£ SSOãŠãŒã¶ã®ã»ãã·ã§ã³æéã®äžéã12æéã®ãããæ9æã«ãã°ã€ã³ãããšå€9æã«ã»ãã·ã§ã³ãåããŠããŸããŸãããã®ããšãå¿ããŠ12æéåŸã«æ¥ã«éçºç°å¢ã§ãšã©ãŒãåºå§ããŠããªãããããããããïŒããšããŸã«é©ããããŸãïŒ12æé以äžåãããšãã»ãšãã©ãªãã®ã§ãã£ãã«ééããŸããããã ããããå¿ããŸãïŒã æ·±å€ã¡ã³ãã®éã«ãããèµ·ãããšãã©ãã«ã«ãªããŸãã®ã§ããã®éã¯äœæ¥åã«å¿
ããã°ã€ã³ãçŽãããã«ããŠããŸãã å人çã«ã¯ã»ãã·ã§ã³æéã®äžéã®æéããå°ãäžããŠæ¬²ããã§ãã å©çšã§ããªããµãŒãããŒãã£ãŒããŒã«ã®ååš AWSã«ã¢ã¯ã»ã¹ããããã®ãµãŒãããŒãã£ãŒããŒã«ã¯æ§ã
ãããŸããã AWS_ACCESS_KEY_ID ã AWS_SECRET_ACCESS_KEY ã®2é
ç®ããèšå®ã§ããªããã®ããããŸãã SSOãŠãŒã¶ã§ãã°ã€ã³ããã«ã¯ããããã«å ã AWS_SESSION_TOKEN ã®å€ãå¿
èŠã§ãããããèšå®ã§ããªãããŒã«ã¯SSOãŠãŒã¶ã§ã¯å©çšã§ããªãããšã«ãªããŸãã æè¿ã§ã¯SSOãŠãŒã¶ã§ãå©çšã§ããããã«ã¢ããã°ã¬ãŒããããŠããããŒã«ãå¢ããŠããŠããŸãã®ã§ãä»ãŸã§äœ¿ã£ãŠããããŒã«ã䜿ããªããªã£ãå Žåã¯ä»£æ¿ã®ããŒã«ã䜿ããŸãããã ãŸãšã ããã¯çµ¶å¯Ÿåã§ã¯ãªããŠãIAM Identity Centerãå°å
¥ããããšã§ããã€ã«ã®åæžããæ
å ±æŒæŽ©ãªã¹ã¯ã®åæžããäž¡æ¹å®çŸããããšãã§ããŸããã ãã¡ããç§ãã¡ã®ææŠã¯ããã§çµããã§ã¯ãªãããµãŒãã¹ã®å質ãäžãããããéçºã¡ã³ããŒãéçºã«éäžã§ããç°å¢ãäœãããã 俺ãã¡ã®æŠãã¯ãŸã å§ãŸã£ãã°ãã ãã§ãã ãããŠãææ¥12æ4æ¥ã¯ @shigerisa ãããäœãããã£ãšé¢çœãèšäºãæžããŠãããŠããããã§ãïŒã楜ãã¿ã«ïŒ Weâre hiring! ã¡ãã¬ãŒã§ã¯åçš®ãšã³ãžãã¢ãçµ¶è³åéäžã§ãïŒ ã«ãžã¥ã¢ã«é¢è«ãã€ã§ãWelcomeã§ãã®ã§ãã話ãã ãã§ãèããŠã¿ããããããç§ã®æšãã®è©±ãèããŠæ¬²ããããªã©ãªãã§ãããŸããŸããã®ã§ããæ°è»œã«ãåãåãããã ããïŒ åéã®äžèЧ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã®æ¡çšæ
å ±ã¯ãã¡ãããã確èªãã ããã www.medley.jp