ïŒæ³šç®ãéããåçïŒ
Chavier NoriaïŒ
ãªãªãžãã« -Xavier Noria
ãæ§å¥-ç·æ§ ïŒã¯ãRubyã³ãã¥ããã£ã®æªç¥ã®äººç©ãšã¯ããé¢ããŠããŸãã ãã«ã»ããã®éçºââè
ãšããŠã圌ã¯ãªããšãRuby on Railsã³ã¢ããŒã ã®ã¡ã³ããŒã«ãªããŸããã ã¡ãªã¿ã«ãChavierã¯RailsConf 2010ã§Ruby Heroè³ãåè³ããŸãããããããèªè
ã®äœäººãã¯åœŒã«äŒãããšãã§ããŸããã
ãããããç§ã¯ãã³ãŒãã¬ãŒãããŒãïŒ
ãªãªãžãã«ã§ã¯ãã³ãŒãã¬ãŒãããŒã ïŒã®ãããªãã£ããšã®ãã®ãããªæ©èœã«æãæéãåããã§ãããã 圌ã¯ãã®ãã¬ãŒãºãã2幎以äžåã«åœŒãè¡ã£ãå°ããªã³ãããã®1ã€ã«æ®ããŸããã
æè¿ãChavierãšããŸããŸãªãããã¯ã«ã€ããŠè©±ãããšãã§ããŸããã圌ã®äŒèšãRails 4ã®æ°äººãããã¥ã¡ã³ããžã®æ
ç±ããããŠããããæãéèŠãªããšã¯ãå°ããªå€åã®éèŠæ§ã®å²åŠã§ãã
éå§ãã
Ruby on Railsã®æ
ã¯ã©ã®ããã«å§ãŸããŸãããïŒ12幎åãç§ã¯ãã£ãªã¢ã®æ¹åã倧ããå€ããããã°ã©ããŒãšããŠåãå§ããŸããã ç§ã¯ãã§ã«30æ³ã§ããã決å®ã¯éåžžã«æ·±å»ã§ããããã³ãŒããæžãã®ã倧奜ããªã®ã§ããã®ã¹ãããã決å®ããã®ã«åœ¹ç«ã¡ãŸããã
ïŒäŒè°ïŒã¶ããšã«ããªã¢ïŒ
ç§ã¯ç 究æã§åãå§ããŸããããã®ãšããç§ã¯JavaãšPerlã§æžããŸããã 7幎éã圌ã¯ãã«ã»ãã倧åŠã§Perlã§è¬çŸ©ãããŸããã 2005幎ã誰ããç§ã«å°ããŸããïŒç§ã®æ³šæãåŒãæ°ããäœãããããŸãããïŒ ãããŠåœæãã»ãŒå
šå¡ãRuby on Railsã«ã€ããŠè°è«ããããšããŠããŸããã ç§ã®æåã®ïŒãããŠè¡šé¢çãªïŒãã¥ãŒã§ã¯ã圌ã¯æ¬åœã«ããã«å€ããŸããã ã ãããRoRã¯æ¬åœã«ææã«èŠãããšæã£ãã ãããããRubyã§ã®äœæ¥çµéšã¯ããŸããããŸããã§ããããåçèšèªã«æž©ããæ°æã¡ãæã£ãŠããã®ã§ãRubyã§å°ãéãã§ã¿ãŸããã
ã§ããããååãšç§ãå®éã®ãããžã§ã¯ãã§Railsãè©Šãããšããç§ãã¡ã¯åãã§ããŸããã 次ã«ãåãã¬ãŒã«äžã«æ¬æ Œçãªãªã³ã©ã€ã³ã¹ãã¢ããã§ã«æžãããŠããŸãã ãã®åŸãã¹ãã€ã³ã«Webãããžã§ã¯ãäŒç€Ÿãèšç«ããŸããã RoRã¯ç§ãã¡ã®ãã©ã³ãã«ãªããŸããã
ãç§ãã¡ããšããèšèã®æå³ã¯ïŒãŸã第äžã«ã2005幎ã«å
±åãããžã§ã¯ããå§ãŸã£ãã¢ã°ã¹ãã£ã³ã¯ãšã³ã«ã«ã€ããŠè©±ããŸãã ASPgemsã¯åœŒãšå
±ã«ã2006幎ã«ä»ã®ããŒãããŒãšãšãã«èšç«ãããŸããã
Rails Coreã§äœæ¥ãã
RailséçºããŒã ã®äžå¡ã«ãªã£ãçµç·¯ãæããŠãã ããã ããªãã®æ
ã¯ã©ã®ããã«å§ãŸããŸãããïŒç§ã¯10幎éããªãŒãœãããŠã§ã¢ã®ç掻ã«åå ããŸãããç§ã¯ããã€ãã®Perlã¢ãžã¥ãŒã«ã«åãçµã¿ãIRCãªã©ã§ã§ããéãå©ããŸããã Railèªäœã«ã€ããŠã¯ããã°ãä¿®æ£å¯èœãªä»ã®äœããèŠã€ãããšããçºèŠããåé¡ãä¿®æ£ããããããåžžã«éä¿¡ããããšããŸããã ãããããã±ããã®è§£æ±ºã«åå ããŸããã§ããã äœããå¿
èŠã«ãªã£ãããã³ãŒããæžããŠããããéã£ãã ãã§ãã
ããã¯ãã¹ãŠãRailsã®ããã¥ã¡ã³ããäœæããããšããæãããå§ãŸããŸããã ç§ã¯äžè¬çã«ãRubyã³ãã¥ããã£ã§ããã«ããã€ãã®åé¡ããããšä¿¡ããŠããŸãããè²¢ç®ããçŽ æŽãããæ©äŒãæäŸããŸãã ãããã£ãŠãRailsã§ã¯ãåœæã®ããã¥ã¡ã³ãã®ã¬ãã«ã¯ç§ããŸã£ããæºè¶³ãããŸããã§ããã ãã®ãããPratik Naikã¯ãdocrailsããšãããããžã§ã¯ããäœæãããšããçŽ æŽãããã¢ã€ãã¢ãæã£ãŠããŸãããããã¯ãããã¥ã¡ã³ãã®è¿
éãªå€æŽãšä¿®æ£ã®ããã®Railsãã©ã³ãã®1ã€ã§ããããããžã§ã¯ãã®ãã¹ã¿ãŒïŒã¡ã€ã³ãã©ã³ãïŒãšå®æçã«ããŒãžããŸãã æåã¯ãã¢ã¯ã»ã¹ã®ããã«åœŒã«é£çµ¡ããªããã°ãªããŸããã§ããããä»æ¥ã§ã¯ãã®ãããªåé¡ã¯ãããŸããããããžã§ã¯ãã«ã¯ãããªãã¯ã¢ã¯ã»ã¹ããããŸãã
ç§ã¯ã¯ã¬ã€ãžãŒã®ããã«ãã¯ã¬ã€ã«ã«åãçµã¿å§ããŸããã ããã¥ã¡ã³ãã«ã¯ãäžåºŠã«ããã€ãã®éçºã®æ瀺ããããŸããããã®1ã€ã¯ãã³ã³ãã³ããšæ©èœã®èª¬æã§ãããããã¯ããåãã®ãšããããããžã§ã¯ãã«ãšã£ãŠéåžžã«éèŠã§ãã ãã¡ãããããã¥ã¡ã³ãã®äžè²«æ§ãªã©ãä¿®æ£ãå¿
èŠãªä»ã®é åããããŸãããã¬ã€ãã©ã€ã³ãã«ãŒã«ã¯ãããŸããã§ããããæ··ä¹±ããããŸããã ãããç§ã®æ ¡æ£ã®çµéšãéå®ããå Žæã§ããããã°ã©ãã³ã°ã«å
¥ãåã«æ°å¹Žéæ°åŠã®æ ¡æ£æ¬ã«åãçµãã§ããŸããã
ããïŒã¯ãïŒ ç§ã¯èšç·Žãããç®ãããŠããŸãã äœããã€ã¿ãªãã¯äœã§ããå¿
èŠããããããã§ãªãã£ãå Žåãããã¯ç§ã«æ°ä»ãããããšã¯ãããŸããã§ããïŒ
ããã§ãããã¥ã¡ã³ããŒã·ã§ã³ã«ããã€ãã®ã«ãŒã«ãèšå®ãããããã®å€æŽãRoRãããžã§ã¯ãã«ç©æ¥µçã«å®è£
ãå§ããŸããã å°è±¡çãªäœæ¥ãè¡ãããäžè¬ã«å€ãã®äººã¯ãŸã£ããèŠãŸããã§ããããæ°ã«ããŸããã§ãããä¿®æ£ããããã®ãä¿®æ£ããŸããã ãã®åŸãäœããã®åœ¢ã§ã³ãŒãã®äœæ¥ãéå§ãããŸããã ãã¡ãããæ¯çã¯çŽ80/20ã§ãããææžåã®æ¹åã§æå©ã§ããã æçµçã«ãRailséçºããŒã ã®ã¡ã³ããŒãç§ã®è²¢ç®ã«ã€ããŠç¥ãããäºãã«ãã£ãšå¯æ¥ã«ã³ãã¥ãã±ãŒã·ã§ã³ãåãå§ããã®ã§ããããžã§ã¯ãã«ã€ããŠãã£ãšåŠã³å§ããŸããã ãã°ããããŠãç§ã¯ããŒã ã«æåŸ
ãããŸããã
ããã§ãšãããããŸãïŒ ããã¯ãããïŒ Railsã«ãŒãã«ããŒã ã§åãã®ã¯ã©ããªæãã§ããïŒ æ¥œããã§ããïŒ é£ããã§ããïŒ ç²ããïŒããã§ã®äœæ¥ã¯ãšãŠãã¯ãŒã«ã§ãïŒ ããŒã ã¯ãåç¬ã§ã®äœæ¥ãšã°ã«ãŒãã§ã®äœæ¥ã®ãã©ã³ã¹ãèŠã€ããããšãã§ããŸããã éèŠãªããšã®ããã«ãç§ãã¡ã¯è°è«ãè¡ããå
±éã®èŠç¹ã«å°éããããšããŸãã ããããã»ãšãã©ã®å Žåãç§ãã¡ã¯äžäººã§åããããããã圌ã«ãšã£ãŠæãèå³æ·±ããµã€ãã§åããŸãã ã³ãã¥ãã±ãŒã·ã§ã³ã®ããã«ããã£ã³ããã¡ã€ã€ãŒã§ã¯éšå±ã䜿çšãããããŒã¹ãã£ã³ãã§ã¯ãããžã§ã¯ãã䜿çšãããŸãã
é³å£°ã§ãäºãã«éä¿¡ããŠããŸããïŒ å°ãªããšãSkypeã§ã¯ããŸãããããšãã©ã€ãïŒç§ã®å Žåããã¹ãŠãCampfireãŸãã¯Basecampã§æžãããŠããŸãã é»åã¡ãŒã«ã䜿çšãããå Žåã¯éåžžã«ãŸãã§ãã ç§ãç¥ãéãããã»ãšã€ã§ããã¯çŸåšé éå°ã§é£æºããŠåããŠããŸãã éåžžãéä¿¡ããã®ã«ååãªããã¹ãã
Rails 4
å€ãã®äººãRails 4ã®æ°æ©èœã«ã€ããŠçåã«æã£ãŠããŸããïŒ ããŸãæéããªãããšã¯ç¥ã£ãŠããŸãããã«ãŒãã³ãéããããšã¯ã§ããŸããïŒããã¯ãå€ãã®æ°æ©èœãåããçŽ æŽããããªãªãŒã¹ã§ãã æè¿ã§ã¯ãå€æŽãã°ã調ã¹ãŠãæ°ããRailã®ãªãªãŒã¹ã«é¢ããã¡ã¢ã®è³æãæºåããŠããŸãã ãŸããRails 4ã䜿çšããã«ã¯RubyããŒãžã§ã³1.9.3ãå¿
èŠã§ãã
...ãããŠãããã¯1.9.3ã§ã®ã¿åäœããã³ãŒãã䜿çšããŠãããšããäºå®ã«ãããã®ã§ããïŒéçºè
ã®éã§ããã€ãã®è°è«ãããããã®çµæã以åã®ããŒãžã§ã³ã«æéã浪費ããªãããã«ãRubyã®æåŸã®å®å®ãããªãªãŒã¹ã«çŠç¹ãåãããããšã決å®ãããŸããã å
¬åŒãµããŒãã¯1.9.3ã®ã¿ã§ãã 誰ãã1.9.2ã§Rails 4ã¢ããªã±ãŒã·ã§ã³ãå®è¡ã§ããå¯èœæ§ããããŸãããããã§ã¯åœŒã¯èªåã®ããã°ã©ã ãšèããããåé¡ã«ã€ããŠäžäººã§ããŸãã å€ãã®ã³ãŒãã1.9ã®ã¿ããµããŒãããããã«æžãçŽãããŠããããã絶察ã«Ruby 1.8ããµããŒãããŸããã
ãŸããããã¯æããã§ãã ãã¹ãã¯1.9.3æªæºã§ã®ã¿å転ããŠããŸããïŒã¯ã æ°ããæ©èœã®äžã§ããç§ã¯çŸåšPATCHã¡ãœããããã¡ãŒã¹ãã¯ã©ã¹ã®åžæ°ãšããŠäœ¿çšããŠãããšããäºå®ãæ°ã«å
¥ã£ãŠããŸãã
ãããŠãã¡ãœããã¯äœãããŸããïŒ æŽæ°ããŸããïŒã¯ããã¢ã€ãã¢ã¯æ£ç¢ºã«åœŒã®ããŒã¿ãæŽæ°ããããšã§ãã 以åã¯ãããã¯PUTã¡ãœããã䜿çšããŠè¡ãããŠããŸããããäžè¬çã«èšãã°ããã®ã¡ãœããã¯ãšã³ãã£ãã£å
šäœãäœæãŸãã¯æŽæ°ããå¿
èŠããããŸãã åæã«ãååãšããŠãå®å
šãªãªãœãŒã¹ã¯éä¿¡ãããŸããã ãããã£ãŠããªãœãŒã¹ã®æŽæ°ã«äœ¿çšããããã©ãŒã ã§ã¯ãé衚瀺ãã©ã¡ãŒã¿ãŒã_methodãã§PATCHã䜿çšãããŸãã
éçºè
ããããç¥ã£ãŠããå¿
èŠãããã®ã¯ãªãã§ããïŒ ã¹ã ãŒãºãªç§»è¡ã®ããã«ïŒãã¡ãããã¹ã ãŒãºãªç§»è¡ã®ããã«ïŒ
å€ãã®äººã
ãå€ããããšæãããäžã€ã®ããšããããŸãã ããã¯ã質éå±æ§å²ãåœãŠã®å¶åŸ¡ã§ãã 以åã¯ãå¿
èŠãªã¡ãœããã¯ã¢ãã«å°çšã«é
眮ãããŠããŸããããå€ãã®äººã¯ããã奜ãŸãªãã£ãããããã®ã¡ã«ããºã ãã³ã³ãããŒã©ãŒã§äœ¿çšã§ããããã«ããããšèããŠããŸããã ãããèµ·ãã£ãïŒ Rails 4ã§ã¯ããã®æ©èœã¯åŒ·åãªãã©ã¡ãŒã¿ãŒãšåŒã°ããŸãã ãã以éããã®ã¡ã«ããºã ã¯ã³ã³ãããŒã©ãŒã§å©çšå¯èœã«ãªãããattr_accesibleããšãattr_protectedãã«å¥ããåããããšãã§ããŸãã ãã ãããã®ãããªèŠæãçããå Žåã¯ããã©ã°ã€ã³ã䜿çšããŠå€ãæ©èœãè¿ãããšãã§ããŸãã
ãã1ã€ã®åªããæ©èœã¯ããã¥ãŒAPIã§ãã è€æ°ã®ãã¥ãŒãéžæãã1ã€ã®å
±éAPIã䜿çšããŠããããæäœã§ããŸãã ãã®é©æ°ã®ãããã§ãããšãã°ãæçŽãéåæçã«éä¿¡ããããšããå¯èœã«ãªããŸããïŒ
ãšãŠã奜å¥å¿ã匷ãïŒãšããã§ãç§ãã¡ãäœæãããã1ã€ã®éåžžã«éèŠãªæ©èœã¯ãããã·ã¢ã®äººåœ¢ãã£ãã·ã³ã°ãã§ãã
ããã«ã€ããŠç°¡åã«è©±ããŸããïŒãã¥ãŒå
ã®ãã¹ãŠã®ããŒã·ã£ã«ããã£ãã·ã¥ãããããäºéãŸãã¯äžéã®ãã¹ãã¬ãã«ããããšããŸãã ãã®å ŽåãããŒããã°ãããããšèªåçã«æ¶ããããã«ãããçš®ã®ã¿ã€ã ã¹ã¿ã³ãã䜿çšããå¿
èŠããããŸãã åã蟌ã¿ãã¥ãŒ/ããŒã·ã£ã«ã®ããããã§éçã³ã³ãã³ãããäœããå€æŽãããšããã£ãã·ã¥ã®ããã«èŠªã³ã³ããã«èª€ã£ãããŒã¿ãå«ãŸããããã«ãªããŸãã
æ©èœãç»å Žããåã«ããã®ãããªåé¡ã«æåã§å¯ŸåŠããå¿
èŠããããŸããã ãã®ãã¹ãŠã®Rails 4ãããªãã®ããã«æ±ºå®ããããŒã¿ãã¥ãŒã«çœ²åããããã®MD5ããŒãèªåçã«çæããŸãã
ããäžã€ã®éèŠãªãã€ã³ãã å°æ°ã®å Žæã§äœ¿çšãããŠãããããRailsããActive Resourceãåé€ããŠããŸãã ãã©ã°ã€ã³ã䜿çšããŠã€ã³ã¹ããŒã«ã§ããŸãã ãã¡ããããããã¯ãã¹ãŠå°æ¥ã®å€æŽã§ã¯ãããŸããã
åºåž«ã³ãŒã
ããªãããCode Gardenerããšèª¬æããæšå¹Žã®èšäºãèŠããŠããŸããïŒèª°ããå°ããªã³ãŒãã®å€æŽã«æ³šæãæãããšã¯éåžžã«ãŸãã§ãã ãã®ãããªæ¯èŒã¯ãšãŠãããã§ãïŒ
ã³ãŒããæ¹è¯ããããã«ããã®ãããªå°ããªç·šéã«æ¬åœã«å€ãã®æéãè²»ãããŠããŸããïŒãã¡ããã äœããç§ã®æ³šæãåŒããä¿®æ£ãå¿
èŠãªå Žåãç§ã¯ãããåã£ãŠä¿®æ£ããŸãã 倧èŠæš¡ãªãããžã§ã¯ããäœæããã³ãŒããçµ±åããå°ããªãšã©ãŒãåçã«ä¿®æ£ããã®ã奜ãã§ãã
ç§ãèŠãããã«ãããªãã¯è©³çŽ°ãæãäžãããã§ãããããžã§ã¯ãã«ãã®ãããªå°ããªæè³ãããå¿
èŠãããã®ã¯ãã³ãŒãã«å®å
šãªåœ¢ãäžããçŸãããããããããã ãšæããŸãã
ãã±ããéã«éãã¯ãããŸãããå°ããªãšã©ãŒã®ä¿®æ£ãšãã°ã®ä¿®æ£ã¯ãã³ãŒãã®ä»ã®å€æŽãšåæ§ã«éèŠã§ãã 誰ãããã®ãããªä¿®æ£ãç§ã«éã£ãå Žåããã¡ãããããã巚倧ãªãããã§ãªãéãããããã¯ããã«åãå
¥ããããŸãã ãã®ãããç§ã¯ãã¯ã¬ã€ã«ããšãŠã奜ãã§ã-圌ãã¯åæ§ã®ã¢ã€ãã¢ãä¿é²ããŸããã
ãã®èšäºãèªãã 人ã®äžã«ã¯ãRailsã«è²¢ç®ããããæ¹æ³ãããããªã人ãããå¯èœæ§ããããŸãã 圌ãã«äœãã¢ããã€ã¹ããŸããïŒGithubãéãããã±ããã®äœæ¥ãéå§ããŸãã ãã®ãããªäœæ¥ã«ã¯å€ãã®æ©èœãå«ãŸããŸããåé¡ãä¿®æ£ããããã®ãããã®äœæãããããæ°ããããŒãžã§ã³ã§ãŸã æ©èœããŠããããšã®ãã¹ããªã©ã§ãã ããã¥ã¡ã³ãã®æäœã奜ããªå Žåã¯ãããã¥ã¡ã³ããäžååãªãããžã§ã¯ãïŒãããã¯ãŒã¯äžã«å€æ°ãããããžã§ã¯ãïŒãæ€çŽ¢ãããã®éçºã«åœ¹ç«ãŠãããšãã§ããŸãã Rails Guidesãããžã§ã¯ãã¯ããã®ãããªæ¯æŽã«åžžã«æºè¶³ããŠããŸãïŒ
ãã·ã¢ã®ã»ã°ã¡ã³ãã§ã¯rusrails.ruã§ã ïŒã ããã¯ããããžã§ã¯ãã«ãšã£ãŠéåžžã«éèŠãªéšåã§ãïŒ
ã«ããŒäŒè°
ããªãã¯ããæ°ã¶æãRailsClub MoscowãBaRuCoãRuLu 2012ãRailsBerryãEuRuKoãªã©ãããŸããŸãªã«ã³ãã¡ã¬ã³ã¹ã«åå ããŠããŸãã äžçªå¥œããªãã®ã¯ãããŸããïŒãããããä»å¹Žä»¥æ¥ãç§ã¯æ
è¡ããããšããããŸããã ãããã®ããããã§ïŒEuRuKoãé€ãïŒç§ã¯è©±ããã ä»å¹Žã¯æ¥œããã£ãã§ãã ããããç§ã¯äººã
ã«äŒãããã«äŒè°ã«è¡ããŸãã ãã¡ãã話ãããšã¯å¥œãã§ãããããã¯æããã«ç§ã®äž»ãªã€ã³ã»ã³ãã£ãã§ã¯ãããŸããã
ããã§ãããªãã¯ããŒã«åº§ãã®ã奜ãã§ããïŒ ãŸãã¯ãæŸèª²åŸã®åš¯æ¥œã奜ãã§ããïŒäŒæ©ã倧奜ãã§ãã ç§ã¯æ£çŽã«èªããŸãïŒç§ã¯ãããããã®ã奜ãã§ã¯ãããŸãããååäžã«ããã«ã«è¡ãããšã奜ã¿ãŸãã
ãšãŠãæ©ã ãããŠãç§ã¯ã¹ãã€ã³ã§ããªããã¡ããã©ãã®ææŒé£ãé£ã¹ãŠãããšæã£ãïŒããããã¯æ¬åœã§ãã äžè¬ã«ãäŒè°ã®2æ¥ç®ã¯ãªã©ãã¯ã¹ãããã§ãã ååãšããŠãäŒè°ã«ã¯2ã€ã®ã¿ã€ãããããŸãã1ã€ã¯ã¹ããŒãã§ãã£ã±ãã§ããã1ã€ã¯30å以äžã®å®æçãªäŒæ©ã§ãã åŸè
ã®æ¹ã奜ãã§ãããªããªãããã®å Žåã人ãšã³ãã¥ãã±ãŒã·ã§ã³ãåãããºãã³ã§éããæéãæžããããšãã§ããããã§ãã
ã¢ã¡ãªã«ã®ã«ã³ãã¡ã¬ã³ã¹ã«åå ããäºå®ã¯ãããŸããïŒæ£çŽã«èšã£ãŠãã ãã-ç§ãäœãã§ããå Žæããã¯é ãããŸãã ç§ã¯äžåºŠã ãç±³åœã«é£ããŠè¡ãããŸããããããã¯äž»å¬è
ãã¬ãã¹ã³ããæäŸãããããã§ããã€ãŸããRuby Heroè³ãæäžãããªããã°ãªããªãã£ãããã§ãã ãããŠãããã¯2010幎ã«ãã«ãã¢ã¢ã§èµ·ãããŸããã
ãã®ã€ã³ã¿ãã¥ãŒã¯ã ãã®èšäºã®ç¿»èš³ã§ãã
PMã§ãã¹ãŠã®ãšã©ãŒãå ±åããŠãã ããã
ç§ã®ããã°ã賌èª
ããŠãã ãã ïŒ