
- TOP
- ã¿ã°äžèЧ
- ããã°ã©ãã³ã°
ããã°ã©ãã³ã°
ã€ãã³ã
ãã¬ãžã³
æè¡ããã°
ãã€ãã¹ããã¯ããŒã ã§ãïŒ 2026幎6æã«t_wadaããããæãããã2026幎ã®ãœãããŠã§ã¢éçºãèããããšé¡ãã瀟å
å匷äŒãéå¬ããŸãããååãç»å£ããã ãã2024幎ã®è¬æŒãã2幎ããœãããŠã§ã¢éçºã®çŸå Žã¯ãã£ããæ§å€ããããŸããã瀟å
ãããåè¬æŒã®ãªã¯ãšã¹ããå€ãã£ãt_wadaããã®ãè¬æŒãã¬ããŒãããŸãã
ã¯ããã« ITD2-2-3ã®I.Hã§ããä»åãRubyKaigi 2026 in åœé€šã«åå ããæ©äŒãããã ããŸããã RubyKaigiã¯ãRubyæ¬äœããšã³ã·ã¹ãã ã«é¢ããææ°ã®ç¥èŠãéãŸãæè¡ã«ã³ãã¡ã¬ã³ã¹ã§ãã ä»åã®åå ãéããŠãRubyãã®ãã®ã«ã€ããŠåŠã¹ãã®ã¯ãã¡ãããä»ç€Ÿãšã³ãžãã¢ãšã®äº€æµãã¹ãã³ãµãŒã€ãã³ãã§ã®LTç»å£ãªã©ãæ®æ®µã®æ¥åã ãã§ã¯åŸãããªãå€ãã®çµéšãããããšãã§ããŸããã ãã®èšäºã§ã¯ãRubyã«é¢ããç¥èŠã®å
±æã ãã§ãªããæè¡ã€ãã³ãã«åå ããããšèªäœã®æå³ã䟡å€ã«ã€ããŠãããããŠãŸãšããŸããã Day0(ã€ãã³ã忥) åœé€šã«åæ¥å
¥ã å Žæãåæµ·éã®åœé€šãšèšãããšã§ãåœæ¥åºçºã§ã¯éã«åããªããã忥ã®å€ã«åºçºããŸããã 空枯ã«å°çãããšã空枯ã®è³ãæã«RubyKaigiã®çæ¿ãåãå¹ããããŸããã ãŸããè·¯é¢é»è»ã®è»å
å€ã«ãRubyKaigiã®çæ¿ããçºãããããªããã®çãäžããã§ããã ç©ºæž¯ã§æããã«rubyistã®æ¹ïŒç¬¬äžrubyistïŒãèŠãããã®ã§ãã¿ã¯ã·ãŒã«çžä¹ãããŸããã æåãªã©ãŒã¡ã³å±ããã§éãããšã®ããšã ã£ãã®ã§ãäžç·ã«é£ã¹ãªããæè¡ã®è©±ããäºãã®äŒç€Ÿã®å¶åºŠã»AIããŒã«ã®å°å
¥ç¶æ³ãªã©ã«è±ãå²ãããŸããã Day1 äŒå Žãž äŒå Žã¯ãJRåœé€šé§
ããåžé»ã§30åã»ã©ã®å Žæã«ããã åœé€šãµãŒã¢ã³ã»ãŸããªãŸã¢ãªãŒã/ããŒã« ãã§ãããåœåæš©ãå°å
ã®æ°Žç£äŒç€ŸãååŸãããããããåœé€šæå
šéã®è¯ãäŒå ŽåãšããŽã«ãªã£ãŠãŸããã ãã§ãã¯ã€ã³ãããšãéŠããæããã¹ãã©ãããšåæãããã ããŸããã äŒå Žã§ãã©ãã®äŒç€Ÿã®æ¹ã§ããïŒããšåºŠã
èãããã®ã§åŒç€Ÿã®ããŽãææžãã ãªããšãäŒãããŸããã åºèª¿è¬æŒ The Journey of Box Building çºè¡šè³æã¯ãã¡ã 忥ã®è¬æŒã¯ãrubyã³ããã¿ãŒã§ãããç°ç± è¡ããã®åºèª¿è¬æŒããå§ãŸããŸããã å
容ã¯ã2025幎12æ25æ¥ã«ãªãªãŒã¹ããã Ruby4.0.0 ã®æ°æ©èœã®äžã€ã§ããã Ruby::Box ã«ã€ããŠã§ããã Ruby Boxã¯ã¯ã©ã¹çã®å®çŸ©ã®åé¢ïŒéé¢ã®ããã®æ©èœãæäŸãããå®éšçæ©èœã§ãã å®éšçãªæ©èœãšããŠäœçœ®ä»ããããŠãããšã®ããšã§ããããå®å
šã«ã³ãŒãã®åé¢ãã§ããããã«ãªãç¹ã¯æ¥åã«ã掻ããããã§ããã Exploring RuboCop with MCP çºè¡šè³æã¯ãã¡ã Keynote以å€ã®å
¬æŒã¯åºæ¬çã«å€§ããŒã«ã»å°ããŒã«ã»ãµãã¢ãªãŒãã§è¡ãããåæå»ã«éå¬ãããè¬æŒã«åæã«åå ããããšã¯ã§ããªããããã¿ã€ã ã¹ã±ãžã¥ãŒã«ãšçºè¡šå
容ãèŠãŠéžã¶åœ¢åŒã§ããã è±èªã§ã®è¬æŒãå€ããåæç¿»èš³ã¢ããªã§èŽãããšã«ãææŠããŸãããããã¯ãæ¥æ¬èªã®è¬æŒã®æ¹ãçè§£ãããããèªç¶ã𿥿¬èªã®è¬æŒãéžã¶ããšãå€ãã£ãã§ãã ãããªäžã§ã忥ã®ååŸã«åå ããäŒè€æµ©äžããã® RuboCop x MCPã®è©±ãå°è±¡ã«æ®ããŸããã RuboCopã¯äººéãä»ã®ããã°ã©ã ã«ãã£ãŠããªã¬ãŒãããŠããŸãããAIæä»£ã«ãããŠã¯ãAIãšãŒãžã§ã³ããæ°ããªããªã¬ãŒãšããŠç»å ŽããŸãããæ¬è¬æŒã§ã¯ãçæåAIãšãªã³ã¿ãŒããã³ãã©ãŒããã¿ãŒãçµã¿åãããå®è·µçãªæ¹æ³ã«ã€ããŠè°è«ããŸãã æ±ºå®æ§ãLinterãšããŠã®äŸ¡å€ã ã£ãäžã§ãéæ±ºå®æ§ãæã€LLMãçµã¿åãããããšã§ã©ããªäŸ¡å€ãåµåºã§ããã®ãïŒåã¯å€±ãããã®ãïŒãšãã詊è¡é¯èª€ã®è©±ãé¢çœãããããã£ãã€ãã³ãã«åå ããŠçŽæ¥ã³ããã¿ãŒã®æ¹ã®ã話ãèãééå³ã ãšæããŸããã Day2 åºèª¿è¬æŒ Twenty Years of JRuby 2æ¥ç®ã¯20å¹Žä»¥äž JRuby ïŒJavaä»®æ³ãã·ã³äžã§åäœããRubyã®åŠçç³»ïŒãéçºããŠãããCharles Nutterããã®åºèª¿è¬æŒããå§ãŸããŸããã å
容ã¯JRuby ãèªçããŠããã®20åšå¹Žã®æ¯ãè¿ããšãJRuby 10.1 ã®ãªãªãŒã¹ã«ã€ããŠã§ããã æ¥åãå«ããããŸã§CRubyïŒCèšèªã§å®è£
ãããRubyã®åŠçç³»ïŒããè§Šã£ãããšããªãã£ãã®ã§ãããJRubyãMRubyã®ãããªå¥ã®åŠçç³»ã«ãèå³ãæ¹§ããŸããã Practical TypeProf: Lessons from Analyzing Optcarrot çºè¡šè³æã¯ãã¡ã 2æ¥ç®ã¯ TypeProf éçºè
ã® é è€äŸä»ãã ã®è¬æŒãå°è±¡ã«æ®ããŸããã ã¡ã€ã³ã®è©±ã¯ãTypeProfãå®éã«é©çšããŠã¿ãäºäŸã§ãã顿ã«éžã°ããã®ã¯ãçºè¡šè
èªèº«ãéçºããRubyã§æžãããNESïŒãã¡ãã³ã³ïŒã®ãšãã¥ã¬ãŒã¿ã§ãçŽ6000 è¡ã®è€éãªã³ãŒãã« TypeProf ãé©çšãããšãã600å以äžã®ãšã©ãŒãåºããšã®ããšã§ãã 察å¿ãšããŠã¯ãåæšè«çµæã«åŒ·ã圱é¿ããç®æã«RBSãæžãããšãšãTypeProf åŽã®èª€èªèã®æ ¹æ¬åå ãçŽãããšã®2æ¹åããé²ããããæçµçã«ã¯ Ruby 55è¡ïŒRBS 67è¡ãåèš122è¡ã®å€æŽã§ãŒããšã©ãŒã«å°éãããšã®ããšã§ãããSteepãSorbetãšæ¯ã¹ãŠããæ¢åã³ãŒããžã®å€æŽéãããªãå°ãªããšããçµæã§ããã çµç€ã§ã¯ãAI ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ããæ®åããäžã§TypeProfãã©ãäœçœ®ã¥ããã®ãããšããåããæç€ºãããŠããŸããããšãã£ã¿æ¯æŽãäž»ç®çãšããŠããããŒã«ããAI æä»£ã«ã©ããªäŸ¡å€ãæãŠãã®ããšããç¹ã«ã€ããŠãèšåãããŠããŸããã Day2ã®äº€æµäŒ 2æ¥ç®ã®å€ã¯ãDrink Upã«åå ããLTæ ã空ããŠããã®ã§çºè¡šããŸããã 3æ¥ç®ã®RubyKaigiãããé¢çœãèããããã«ãšæããRubyãå®è¡ãããããã»ã¹ãParserã®è©±ããGCã®è©±ãŸã§ãäžéããŸãšããŠã¿ãŸããã è³æã¯ marp + Opus4.6ã§äœæ Day3 Lightning-Fast Method Calls with Ruby 4.1 ZJIT çºè¡šè³æã¯ãã¡ã RubyKaigiæçµæ¥ã¯ã åœååŽå¿ ããã®ZJITã®è¬æŒãå°è±¡ã«æ®ããŸããã æ³šç®åºŠã®é«ã ZJIT ã§ãããä»åã®çºè¡šã§ã¯ç¹ã«ã¡ãœããåŒã³åºãã®é«éåã«çŠç¹ãåœãŠãããŠããŸããã Rubyã§ã¯äŸç¶ãšããŠã¡ãœããåŒã³åºãã®ãªãŒããŒãããã倧ããïŒåçåä»ãã ãã仿¹ãªããïŒãYJIT ã«ãã£ãŠæ¹åãé²ãã§ããçŸåšã§ãããªã倧ããªããã«ããã¯ãšããŠæ®ã£ãŠããããã§ããZJIT ã§ã¯ãã®åŠçã®æé©åã倧ããªããŒãã«ãªã£ãŠãããããã¯ãã¬ãŒã¹ãäŸå€åŠçãããŒã«ã«å€æ°ã¢ã¯ã»ã¹ã«å¿
èŠãªã¡ã¿ããŒã¿ãã©ãä¿æãã€ã€ãç¡é§ãªã¡ã¢ãªã©ã€ããæžããããè«ç¹ã«ãªã£ãŠããŸããã ããã§ç޹ä»ãããŠããã®ãLightweight Framesã§ãããããã¯ãã¡ãœããåŒã³åºãæã«å¿
èŠãªãã¬ãŒã æ
å ±ãæåãããã¹ãŠã¡ã¢ãªã«æžã蟌ãã®ã§ã¯ãªããå¿
èŠã«ãªããŸã§é
å»¶ããããŸãã¯æå°éã®æ
å ±ã ããæã€ããšã§ã³ã¹ããäžããã¢ãããŒãã§ãã Rubyã®æè»ãªæžãå¿å°ã¯ç¶æãã€ã€ãé«éã«åãããã«ããŠããåãçµã¿ãããŠããã ããŠãäºã«æè¬ã§ã Matz Keynote ãã¡ããæåŸã¯ãRubyãäœã£ãã ãŸã€ããš ããã²ã ãããïŒMatzïŒã®åºèª¿è¬æŒã§ããã ããå幎ãããã¯èªåã§ã³ãŒããæžããã«ãã»ãŒå
šãŠAIã«æžããããšããçžããèªãã«èª²ããŠãããšã®ããšã§ãããã³ãŒãã¬ãã¥ãŒãããã³ããã现ããå¶åŸ¡ã§ããããããã§ããäºã ãšæããŸãããå®åã®çŸå Žã§ãAIãšãŒãžã§ã³ãã¯æ¬ ãããªãååšã«ãªã£ãŠããŠããã®ã§ã¯ãªãã§ããããã ãããªäžã§å€§ããªãããã¯ã¯ãæ°ããRubyã®AOTã³ã³ãã€ã©ã Spinel ãã®çºè¡šã§ããRubyã³ãŒããCèšèªã«å€æããŠããã³ã³ãã€ã«ããããšã§ããã€ãã£ããã€ããªãçæãããšãã詊ã¿ã§ãããã«æ¥åã¬ãã«ã§åœ¹ç«ãŠããããã®ã§ã¯ãªãããã§ãããã€ã³ã¿ããªã¿èšèªÃAOTã³ã³ãã€ã«ãšããçºæ³ãšéçºéçšãè峿·±ãã£ãã§ããïŒRubyã¯åçæ©èœãå€ãã®ã§ãæ©æ¢°èªã«ã§ãã=é«éåã§ã¯ãªãããšã«æ³šæããŠãã ããïŒ ãŸãšã RubyKaigiã«è¡ã£ãŠè¯ãã£ããšæã1çªã®ãã€ã³ãã¯ãRubyãããã°ã©ãã³ã°ã倧奜ããªäººéã®ãç±ããæããããããšã§ãããæ®æ®µãä»äºããšããŠããã°ã©ãã³ã°ãããŠãããšåæ¥çãªèгç¹ã§äŸ¡å€ãæž¬ãæž¬ããããçãã€ããŠããŸã£ãŠã楜ãããšãç¥çæ¢æ±ãšããåŽé¢ãå¿ããŠãããªããšæããŸããã ãŸããçŸå°ã§ã®ä»ç€Ÿã®ãšã³ãžãã¢ãšã®äº€æµãåºæ¿çã§ãããä»ãŸã§èªåããã€ããè²ã«æãŸã£ãŠããèªèŠã¯ãããŸããã§ããããä»ç€Ÿã®ãšã³ãžãã¢ãšäº€æµãããšæããã«åç€Ÿåæ§ãšãããé°å²æ°ããã£ãŠãããŸã«ã¯èŠéãåºããããã«ã亀æµããŠæ°ããç¥èŠãæã¡åž°ã£ãŠããå¿
èŠããããšæããŸããã
ã¯ããã« ããã«ã¡ã¯ãããã¯ãšã³ããšã³ãžãã¢ã®å°ç¬ åïŒ @yukineko_819 ïŒã§ãã Checkout ReliabilityããŒã ã«æå±ããè² è·è©Šéšç°å¢ã®æ§ç¯ã賌å
¥ããžãã¯ã®æé©åãªã©ã賌å
¥äœéšã®ä¿¡é Œæ§åäžã«åããåãçµã¿ãããŠããŸãã ä»åã¯ããã©ã®ã·ã§ããã§ãããã€ã§ãå®å®ããŠè³Œå
¥ã§ããããšãã賌å
¥äœéšãå®ãããã«ã賌å
¥æã®ã¯ã¬ãžããã«ãŒã決æžãžæµéå¶åŸ¡ïŒä»¥éãã¬ãŒããªããã¿ïŒãå°å
¥ãã話ãã玹ä»ããããšæããŸãããšãã«ã ç¹å®ã®ã·ã§ããã«è³Œå
¥ãéäžããŠããã»ãã®ã·ã§ããã§ã¯æ±ºæžãã§ããç¶æ
ã«ãã ããã«ãã¢ã¯ã»ã¹éäžã®åœ±é¿ãã§ããéãæããå
šäœã®è³Œå
¥å¯çšæ§ãå¹³æºåããèšèšãã©ãèãããããšãããšãããäžå¿ã«ãªããŸãã ããã·ã§ããã«ã¢ã¯ã»ã¹ãéäžããŠããæãã»ãã®ã·ã§ããã§è³Œå
¥ãã§ããªã ãŸãã¯ãç§ãã¡ãè§£ãããã£ãåé¡ããã話ããããŠãã ããã äžè¬çã«ã決æžåŠçã«ã¯å®å®çšŒåã®ããã«åäœæéãããã«æããæµéã®äžéãèšå®ãããŠããããããæ±ºæžæµéå¶éïŒä»¥éãæ±ºæžã¬ãŒããªãããïŒãšèšããŸãã平垞æã§ããã°ãã®æ±ºæžã¬ãŒããªããããæèããããšã¯ã»ãšãã©ãããŸããããããã倧åã®è²©å£²ã€ãã³ããéå®ååã®è²©å£²ãšãã£ãã±ãŒã¹ã§ãç¹å®ã®ã·ã§ããã«å¯ŸããŠããçæéã«è³Œå
¥ãäžæ°ã«éäžããŠããæããã®æ±ºæžã¬ãŒããªããããåé¡ã«ãªããŸãã ãã®ãšãã賌å
¥ãéäžããŠããã·ã§ããã®æ±ºæžã§æ±ºæžã¬ãŒããªãããã«éãããšããŸã£ããç¡é¢ä¿ãªã»ãã®ã·ã§ããã«ã圱é¿ãåãã§å¶éããããã賌å
¥ã§ããªããªã£ãŠããŸãå¯èœæ§ããããŸãã ããã¯è³Œå
¥è
ããèŠãã°ãèªåã«ãã·ã§ããã«ãäœã®èœã¡åºŠããªãã«ãããããã賌å
¥ã§ããªãããšãããã€ãã¹ã®äœéšãšãªã£ãŠããŸããŸãããããã·ã§ããã®è²·ãç©äœéšãšããŠãããã»ã©é¿ããããã®ã¯ãªãã§ãããã ãã€ã§ãè²·ããã«ãŒããç®æã㊠ããã§ç§ãã¡ãç®æããã®ã¯ãç¹å®ã®ã·ã§ããã«è³Œå
¥ãªã¯ãšã¹ããéäžããŠããç¶æ³ã§ããã»ãã®ã·ã§ããã§ã¯ãã€ãã©ãã賌å
¥ã§ããç¶æ
ãä¿ã€ããšã§ããããããå®çŸããããã«ã次ã®2ã€ãæºããã¬ãŒããªããã¿ã®èšèšãèããŸããã 1. æµéãèªåãã¡ã§ææ¡ããŠå¶åŸ¡ãã ã²ãšã€ãã¯ãæµéãèªåãã¡ã§ã«ãŠã³ãããŠèœåçã«å¶éããããããšã§ããæ±ºæžã¬ãŒããªãããã«å°éããŠãããåŠãããããªããŸãŸæ±ºæžãå®è¡ããã®ã§ã¯ãªããå®å®ããŠæããç¯å²ã®äžéãèªç€ŸåŽã§å®çŸ©ãããããŠèœåçã«æµéãçµãæ¹éãåããŸããã 2. ãã®ä»ã®ã·ã§ããã®åãåããåŒãç®ãã§æ®ã ãµãã€ãã¯ãã¢ã¯ã»ã¹éäžã·ã§ãããšãã®ä»ã®ã·ã§ãããåããŠç®¡çããããšã§ãããããŸã§ã¯ã¢ã¯ã»ã¹éäžã·ã§ãããæµéãç¬ãå ãããŠããŸãããã®ä»ã®ã·ã§ããã®æ±ºæžãéããªããªã£ãŠããŸãå±éºããããŸãããããã§ããããŠã¢ã¯ã»ã¹éäžã·ã§ããã«æ¬æ¥ã®äžéå€ãããå°ãã ãäœãäžéãèšå®ããæ®ã£ãæµéããã®ä»ã®ã·ã§ããã䜿ããããã«ããããšããæ¹éãåããŸããã ãã®èšèšã®ãã€ã³ãã¯ããã®ä»ã®ã·ã§ããçšã®æµéãäºã確ä¿ããŠããã®ã§ã¯ãªããã¢ã¯ã»ã¹éäžã·ã§ããã®äžéå€ã«ãã£ãããããã圢ã«ããããšã§ããã¢ã¯ã»ã¹éäžã·ã§ãããšãã£ãŠãåžžã«äžéã«åŒµãä»ããŠããããã§ã¯ãããŸãããããã®ä»ã®ã·ã§ããã§ã®è³Œå
¥ãããŸããŸåæå»ã«éãªã£ãŠãªã¯ãšã¹ãæ°ãã¯ãäžããå¯èœæ§ããããŸãããã®æ¹éã¯ããã®ä»ã®ã·ã§ããåŽã®æµéã«äžèŠãªå¶éããããŠããŸããªãããã«ãããšããæå³ããããŸãã å³1: ã¢ã¯ã»ã¹éäžã®åœ±é¿ãæãããã®ä»ã®ã·ã§ããã®åãåããåŒãç®ãã§æ®ã ã©ãäœã£ãã ããããã¯ãããå
·äœçãªåŠçãããŒã®è©±ã«ç§»ããããšæããŸãã æ±ºæžãå®è¡ããçŽåã«ã1ããŒã¯ã³ãèŠæ±ãã ã¬ãŒããªããã¿ãã©ãã«æãã¹ããæ€èšããæãç§ãã¡ã¯æ±ºæžåŠçãå®è¡ããçŽåã«æãããšã«ããŸããã æ±ºæžåŠçã¯ããã®å®è¡åã«ã¬ãŒããªããã¿ãžã1ããŒã¯ã³ãã ããããšèŠæ±ããŸãããã®ã¬ãŒããªããã¿ã®å®äœã¯ãå°çšã®Redisäžã§ã¢ãããã¯ã«å®è¡ããã Luaã¹ã¯ãªããã§ãå€å
žçãªããŒã¯ã³ãã±ãããšããŠæ¯ãèããŸãã ãªãLuaãªã®ããšãããšããããŒã¯ã³ã®å埩 â ããŒã¯ã³æ®éã確èªãã â ããŒã¯ã³ãæ¶è²»ããããšããäžé£ã®å€å®ãã²ãšã€ã®ã¢ãããã¯ãªæäœã«ãŸãšãããã£ãããã§ããããããŠããã°ãåæã«å€§éã®ãªã¯ãšã¹ããæ¥ãŠããç«¶åããããšãªãæ£ããã«ãŠã³ãã§ããŸãã ãã®ã¬ãŒããªããã¿ã¯ãããŒã¯ã³ãæ®ã£ãŠããã°ããŒã¯ã³ãæ¶è²»ããŠOKãè¿ããå¶éãšå€å®ãããã°NGãè¿ããŸããã¬ãŒããªããã¿ãåŒã³åºããã¢ããªã±ãŒã·ã§ã³åŽã¯ãå€å®ãOKã§ããã°ãã®ãŸãŸå€éšAPIãå®è¡ããŠæ±ºæžã«é²ã¿ãŸããNGã§ããã°å€éšAPIãå®è¡ããããšãªããæ±ºæžã諊ããŠåŠçããšã©ãŒã§çµäºãããŸãã ã°ããŒãã«ãã±ãããšã¢ã¯ã»ã¹éäžã·ã§ããçšãã±ããã®2æ®µæ§æã«ãã ãã ãç·éãå¶åŸ¡ããã ãã§ã¯è¶³ããŸãããå
çé ã§ããŒã¯ã³ã奪ãåããšãã¢ã¯ã»ã¹éäžã·ã§ãããå
šãŠã®ããŒã¯ã³ãç¬å ããŠããŸãããã®ä»ã®ã·ã§ãããç· ãåºãããŠããŸãããã§ããããã§ã¯ä»ãŸã§ãšäœãå€ãããŸããã ããã§äžæ žã«ãªãã®ãã¢ã¯ã»ã¹éäžã·ã§ããçšã«å¥éå°çšã®ããŒã¯ã³ãã±ãããçšæãããšããæ¹æ³ã§ãã å
šã·ã§ãããå
±éã®ã°ããŒãã«ãã±ããããããŒã¯ã³ãæ¶è²»ãã ã¢ã¯ã»ã¹éäžã·ã§ããã ãã¢ã¯ã»ã¹éäžã·ã§ããçšãã±ããããã远å ã§æ¶è²»ãã ã¢ã¯ã»ã¹éäžã·ã§ããçšãã±ããã®äžéãã°ããŒãã«ãã±ããããå°ããèšå®ãã ãã€ã³ãã¯ãã¢ã¯ã»ã¹éäžã·ã§ããã§ã¯ãªãã·ã§ããåãã®ãã±ãããæç€ºçã«ç¢ºä¿ããŠããããã§ã¯ãªãããšãããšããã§ãããããŠã¢ã¯ã»ã¹éäžã·ã§ããåŽãçµãããšã§ããã®å·®åããã®ä»ã®ã·ã§ããã®åãåãšããŠåŒãç®ã§èªåçã«æ®ãããã«ããŠããŸãã ãã®èšèšã«ã¯ã work-conserving ïŒäœåãéã°ããªãïŒãšããå¬ããæ§è³ªããããŸããã¢ã¯ã»ã¹éäžã·ã§ããããªããã°ã°ããŒãã«ãã±ããã¯èª°ã§ã䜿ããã®ã§ãããŒã¯ã³ãäœãããšã¯ãããŸãããã¢ã¯ã»ã¹éäžã·ã§ãããçŸããŠåããŠããã®åã ãã¢ã¯ã»ã¹éäžã·ã§ããçšãã±ããã®å¶çŽãå¹ãå§ããããšããããã§ãã å€å®ã®ã«ãŒã«ãæŽçãããšã次ã®ããã«ãªããŸãã ã¢ã¯ã»ã¹éäžã·ã§ãã ïŒ ã°ããŒãã«ãã±ãããšã¢ã¯ã»ã¹éäžã·ã§ããçšãã±ããã®äž¡æ¹ã«ç©ºãããã£ãŠã¯ãããŠèš±å¯ã ãã®ä»ã®ã·ã§ãã ïŒã°ããŒãã«ãã±ããã«ç©ºããããã°èš±å¯ã å³2: ãã®ä»ã®ã·ã§ããã¯ã°ããŒãã«ãã±ããã ããã¢ã¯ã»ã¹éäžã·ã§ããã¯äž¡æ¹ã®ç©ºããå¿
èŠ ãªããã¬ãŒããªããã¿ãå¶éãšå€å®ãããšãã¯ããŒã¯ã³ãæ¶è²»ããªãããã«ããŠããŸããããã¯ã匟ãããªã¯ãšã¹ãã§ããŒã¯ã³ãæ¶è²»ããŠããŸããšæ¬æ¥ãªãéããã¯ãã®åŸç¶ã®ãªã¯ãšã¹ãã«ãŸã§åœ±é¿ãåãã§ããŸãããã§ãã ã¢ã¯ã»ã¹éäžã·ã§ãããã©ãèŠåããã ã¢ã¯ã»ã¹éäžã·ã§ãããã©ãå€å®ãããããšããç¹ã«ãå°ã工倫ãèŠããŸããã çŽ æŽã«éŸå€ã ãã§å€å®ãããšãã·ã§ããã®ç¶æ
ãéŸå€ã®ååŸã§è¡ã£ããæ¥ããããŠããŸããæåãå®å®ããŸããã ããã§ãã·ã§ããããšã«åäœæéãããã®æ±ºæžãªã¯ãšã¹ãåæ°ãã«ãŠã³ãããäžå®ä»¥äžã«éãããã¢ã¯ã»ã¹éäžã·ã§ãããšå€å®ããããã«ããŸãããããã«ãäžåºŠã¢ã¯ã»ã¹éäžã·ã§ãããšå€å®ãããããã°ããã¯ãã®ãã©ã°ãåŒãç¶ãã¯ãŒã«ããŠã³æéãèšããŠããŸãããã®ã¯ãŒã«ããŠã³æéã¯ãå®éã®éå»ã®ãªã¯ãšã¹ãã®ç¶æ³ãåæããŠæ±ºå®ããŸããã Off â Observe â Enforceã3ã€ã®ã¢ãŒãã§æ®µéçã«åºã 決æžãšããäºæ
ãèš±ãããªãçµè·¯ã«æ°ããå¶åŸ¡ããããæ±ºæžãèœåçã«é®æããæ©èœãå
¥ããããã§ãããããªãªãŒã¹ã®æé ã¯æ
éã«æ€èšããŸããããããªã鮿ãããããªããšã¯ããããã£ãŒãã£ãŒãã©ã°ã§3ã€ã®ã¢ãŒããåãæ¿ããããããã«ããŠæ®µéçã«ãªãªãŒã¹ã§ããããã«èšèšããŸãããå
·äœçã«ã¯ã以äžã®3ã€ã®ã¢ãŒãã管çç»é¢ããç¬æã«åãæ¿ãããããããªäœãã«ããŸããã Off ïŒå®å
šãªæ©èœOFFç¶æ
ãRedisã«ãéä¿¡ããªããå®å
šã«ç¡å®³ãªç¶æ
ã§æ¬çªã«å°å
¥ããã Observe ïŒå¶éã®å€å®ã¯ããããå¶éã¯ããã«å
šãŠèš±å¯ããç¶æ
ãããã鮿ããŠãããããã€ã»ã©ãã ã匟ããŠãããããèšé²ããã ãã«ãšã©ããããã®ã¢ãŒãã§èª€ã£ãŠå¶éããŠããŸãã±ãŒã¹ããªãããæ¬çªã®ããŒã¿ã§å®æž¬ããã Enforce ïŒå¶éã®å€å®ãè¡ãã鮿ãå®è¡ããç¶æ
ããã®ç¶æ
ã§åããŠæ¬æ Œçãªã¬ãŒããªããã¿ã®æåããªãªãŒã¹ãããã äžãäž Enforce ã§èª€ã£ã鮿ãèµ·ããŠã管çç»é¢ãããã©ã°ãå³åº§ã«Observeãžæ»ãã ãã§ããããã€ãªãã«èª€é®æãè§£é€ããããšãã§ããŸããããã«ããã®ç¶æ
ã®èšæž¬èªäœã¯ç¶ç¶ããããšã§ãäœãèµ·ãã£ããåŸããåæã§ããããã«æ
å ±ãæ®ãããšãã§ããŸãããã®ããããã€ãªãã§æ¢ããããããåŸããåæã§ããããŒã¿ãæ®ããããšããå®å¿æã¯ãæ¬çªã«æå
¥ããŠããããã§å€§ããå¹ãããšæããŠããŸãã ã¬ãŒããªããã¿ã§æ±ºæžãæ¢ããªãããã«ãã åœç¶ã§ãããæµéå¶åŸ¡ã®ããã«å°å
¥ããã¬ãŒããªããã¿èªèº«ãæ°ããªé害ç¹ã«ãªã£ãŠããŸã£ãŠã¯æ¬æ«è»¢åã§ããã¬ãŒããªããã¿ã®äžèª¿ã§æ±ºæžå
šäœãæ¢ãŸã£ãŠããŸãã®ã¯ãé¿ãããäºæ
ã®äžã§ãææªã®éšé¡ã ãšãããŸãã ããã§Redisã«ç°åžžããã£ããšãã¯å€å®ãã¹ãããããŠæ±ºæžãéãfail-openæ¹éã«ããŸããããå³å¯ã«äžéãå®ãããšãããããæ±ºæžãæ¢ããªãããšããåªå
ããããšãã䟡å€å€æã§ããããããŠãå€å®ã«ãããã¿ã€ã ã¢ãŠãã¯ããçæéã«èšå®ããRedisãéããªã£ããšããçŽ æ©ãå®å
šåŽã«åããŠã決æžã®æ¬æµã®è¶³ãåŒã£åŒµããªãããã«ããŠããŸãã ãã¹ãŠã®å€å®ã芳枬ãã æåŸã¯èŠ³æž¬ã®è©±ã§ãããã¹ãŠã®å€å®çµè·¯ã§ãã¬ãŒããªããã¿ã®åŒã³åºãæ¯ã«1ã€ã®ã€ãã³ããèšé²ããããã«ããŸããã èšé²ããŠããã®ã¯ãã©ã®ã¢ãŒãã§åããŠãããïŒOff / Observe / EnforceïŒãèš±å¯ããã®ãå¶éããã®ããå¶éå€å®ã®çç±ïŒã°ããŒãã«ãã±ããã§åŒŸããã®ããã¢ã¯ã»ã¹éäžã·ã§ããçšãã±ããã§åŒŸããã®ãïŒãåŠçã«ããã£ãæèŠæéããããŠfail-openãçºçãããã©ããããšãã£ãæ
å ±ã§ãã ç¹ã« Observe ã¢ãŒãã§èšé²ããããã鮿ããŠããã匟ããŠããã¯ãã®éãã¯ãEnforce ãžææ ŒããŠãããã倿ããããã®äžæ¬¡ããŒã¿ã«ãªããŸãããŸããã¬ãŒããªããã¿ãäºåã«é®æãããã®ãšã決æžåŠçãã®ãã®ã倱æãããã®ãšã§ã¯æå³ããŸã£ããç°ãªãã®ã§ããã°ã«ã¯å°çšã®ã¿ã°ãä»ããŠãäž¡è
ãã¯ã£ããåºå¥ã§ããããã«ããŠããŸãã ãããã« ä»åã¯ã賌å
¥æã®ã¯ã¬ãžããã«ãŒã決æžã«æµéå¶åŸ¡ãå°å
¥ãã話ãã玹ä»ããŸããã ãã£ãããšãäžèšã§ãŸãšãããšã ç¹å®ã®ã¢ã¯ã»ã¹éäžã·ã§ããã«è³Œå
¥ãéäžããŠãããã®ä»ã®ã·ã§ããã«åœ±é¿ãåã°ãªãããã«ãéãããæ±ºæžã®æµéãèœåçã«å¶åŸ¡ããããšã§åãæ¢ããããããã«ãã ããšããããšã«ãªããŸããæ±ºæžã®æµéã1ã€ã®ã°ããŒãã«ã«ãŠã³ã¿ã§æž¬ã£ãŠå¶åŸ¡ãã€ã€ãã¢ã¯ã»ã¹éäžã·ã§ããçšãã±ããã«ãã£ãŠã¢ã¯ã»ã¹éäžã·ã§ããã®æµéã«å°ãã ããã€ãã®å¶éãèšãããã®ä»ã®ã·ã§ããã®æ±ºæžåãåŒãç®ã§æ®ãããããŠ3ã€ã®ã¢ãŒãã§å®å
šã«æ®µéãªãªãŒã¹ããäžãäžã¬ãŒããªããã¿èªèº«ãäžèª¿ã«ãªã£ãŠãfail-openã§æ±ºæžãæ¢ããªãã ã²ãšã€è£è¶³ããŠããããã®ã¯ãããã¯ã決æžã®åŠçèœåããã以äžäŒžã°ããªãããçµã£ãŠããããšãã話ã§ã¯ãªãããšããããšã§ããå®ã¯ãæ¢åã®å®è£
ãæŽçããããšã§ãã¬ãŒããªããã¿ãå°å
¥ããŠããªããåäœæéãããã«æããæ±ºæžã®æµéãã®ãã®ã¯ãããå¢ããŠããŸããã ããããä»åãæãåã£ãŠã¢ã¯ã»ã¹éäžã·ã§ããã«å¶éãèšãããšãã倿ãã§ããŸãããã¬ãŒããªããã¿å°å
¥åãšæ¯ã¹ãŠããã¢ã¯ã»ã¹éäžã·ã§ãããåäœæéãããã«è³Œå
¥ã§ããæµéã¯ãããå¢ããŠããã®ã§ãã ãã®ããã§ãéããããªãœãŒã¹ã®ãã©ã³ã¹ãçæçã«åãããã®ææ®µãšããŠãã¬ãŒããªããã¿ã«ããå¶åŸ¡ã䜵çšããŠããããšããäœçœ®ã¥ãã§ããäžéšã®ã·ã§ãããžã®ã¢ã¯ã»ã¹éäžã§ã·ã¹ãã å
šäœãäžå®å®ã«ãªãã°ã圱é¿ãåããã®ã¯ã»ãã®ã·ã§ããã ãã§ãªããã¢ã¯ã»ã¹ãéäžããŠããã·ã§ããèªèº«ãåãã§ããå
šäœãå®å®ããŠåããç¶ããããšããããçµæçã«ãã¹ãŠã®ã·ã§ããã®è³Œå
¥æ©äŒãå®ãããšã«ã€ãªãããšèããŠããŸãã ãã¡ãããããã§æºè¶³ããŠããããã§ã¯ãããŸãããåŠçèœåãã®ãã®ã®åŒãäžãããã»ãã®éžæè¢ã®æ€èšãå«ããŠããã©ã®ã·ã§ããã§ãããã€ã§ãè²·ããããã«ãŒãããç®æããŠæ¹åãç¶ããŠãããŸãã æŽŸæãªæ©èœã§ã¯ãããŸãããããã©ã®ã·ã§ããã§ãããã€ã§ã賌å
¥ã§ããããšããåœããåãè£åŽã§æ¯ããä»çµã¿ãšããŠãå°å³ã«å¹ããŠããããã®ã«ãªã£ãã®ã§ã¯ãªãããšæã£ãŠããŸããä»åã®ãããªæ¹åã¯ãŠãŒã¶ãŒã®ç®ã«çŽæ¥èŠãããã®ã§ã¯ãããŸããããå¿«é©ãªè³Œå
¥äœéšã®ããã«ãCheckout ReliabilityããŒã ã§ã¯ãããã£ã现ãããªæ¹åãåŒãç¶ãç©ã¿éããŠãããŸãã BASE ã§ã¯ããã©ã®ã·ã§ããã§ãããã€ã§ã賌å
¥ã§ããããšããåœããåããããããå°éãªèšèšãšéçšã§æ¯ããŠãã仲éãåéããŠããŸããã«ãŒããæ±ºæžãŸããã®ä¿¡é Œæ§ã«èå³ãããæ¹ã¯ããã²ãæ°è»œã«æ¡çšæ
å ±ãã確èªãã ããã binc.jp





















