1. Rubyãšã¯ïŒã³ã³ã»ãããšç¹åŸŽ
Rubyã¯ããŸã€ããšããã²ãæ°ã«ãã£ãŠéçºãããæ±çšæ§ã®é«ãã¹ã¯ãªããèšèªã§ããç¹ã«ããã®ææ³ã®ã·ã³ãã«ããšè¡šçŸã®è±ãããé åãšãããŠããŸãã
1.1 Rubyã®éçºèæ¯ãšãã®å²åŠ
Rubyã®éçºè ã§ãããŸã€ããšããã²ãæ°ã¯ãããã°ã©ããŒã楜ãã¿ãªããã³ãŒãã£ã³ã°ã§ããèšèªãç®æããŠRubyãèšèšããŸããããã®ãããRubyã¯äººéäžå¿ã®èšèšå²åŠãæ²ããŠãããç°¡æœã§èªç¶ãªã³ãŒããæžãããšãå¯èœã§ãã
ãŸããRubyã¯ãªãŒãã³ãœãŒã¹ã®èšèªãšããŠéçºãããŠããŸãããã®ãããäžçäžã®ããã°ã©ããŒã«ãã£ãŠæ¹è¯ãæ¡åŒµãç¶ããããŠããŸãã
ããã«ãRubyã¯èšèªèªäœã®ç¬èªæ§ãéèŠããŠãããå€ãã®ç¹æã®è¡šçŸæ¹æ³ãä»æ§ãååšããŸããããã¯Rubyã«ãšã£ãŠå€§ããªåæ§ãšãªã£ãŠããŸãã
1.2 Rubyã®äž»ãªç¹åŸŽãšå©ç¹
Rubyã®æ倧ã®ç¹åŸŽã¯ãã®è¡šçŸåã®è±ãããšã·ã³ãã«ãã§ããç¹ã«ãæååæäœã®åŒ·ãããããã¯ãšãã匷åãªæ©èœã¯ä»ã®èšèªãšæ¯èŒããŠãé ã²ãšã€æããŠããŸãã
ããã«ãããäžã€ã®Rubyã®å€§ããªç¹åŸŽã¯ãWebã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ã§ããRuby on Railsãã®ååšã§ããRuby on Rails(以äžãRails)ã¯Rubyã§æžããããã¬ãŒã ã¯ãŒã¯ã§ãããŒã¿ããŒã¹ãšé£æºããWebã¢ããªã±ãŒã·ã§ã³ãçæéã§éçºããããšãå¯èœã«ããŠããŸãã
Railsã®ååšã«ãããRubyã¯Webéçºå šè¬ã«ãããŠåŒ·åºãªããžã·ã§ã³ã確ç«ããŠããŸãã
1.3 Rubyã®å¯èœæ§ãšæŽ»çšã€ã¡ãŒãž
RubyãRailsã¯ãç¹ã«Webéçºãäžå¿ã«å¹ åºãéçºãå¯èœã§ããSNSã®éçºãããã°äœæãWebAPIã®éçºãã¹ã¯ã¬ã€ãã³ã°ãã¯ããŒã©ãŒã®äœæãã·ã§ããã³ã°ãµã€ãã®éçºããã£ãããããã®äœæãªã©ãå€å²ã«ãããéçºãå®çŸã§ããŸãã
ãŸãããããŸã§æ°ã ã®æåãµãŒãã¹ã®éçºã«äœ¿çšãããŠãããã¯ãã¯ããããAirbnbãã¯ã©ãŠãã¯ãŒã¯ã¹ãGitHubãTwitterãªã©å€ãã®ãããžã§ã¯ãã§Rubyã䜿ãããŠããŸãã
ãã®ãããçŸå Žã§å³æŠåãšããŠæŽ»èºããããšèããŠããæ¹ã«ã¯ãRubyãåŠã¶ããšãããããããŸãã
1.4 ããã°ã©ãã³ã°èšèªRubyãšä»ã®èšèªãšã®æ¯èŒ
Rubyã«ã¯ä»ã®èšèªã«ã¯ãªãç¬ç¹ã®ç¹åŸŽãå€ããããŸãããéã«èšãã°ä»ã®èšèªãåŸæãšããé åã§RubyãèŠæãšããå Žé¢ãååšããŸããäŸãã°ãæ©æ¢°åŠç¿ãããŒã¿åæã®åéã§ã¯Pythonãã¹ããŒããã©ã³ã®ã¢ããªéçºã§ã¯JavaãKotlinãSwiftãäž»æµãšãªã£ãŠããŸãã
ããããããã¯èšèªããšã®åŸæåéãšããã ãã§ã決ããŠRubyãå£ãããã§ã¯ãªããšããããšãç解ããŠãããŸãããã
çµå±ã®ãšãããã©ã®èšèªãéžã¶ãã¯ãã®èšèªãåŸæãšããåéããèªåãäœãäœãããããã©ã®èšèªã®ææ³ãå²åŠã«å ±æã§ãããã«ããéšåã倧ããã§ãã
2. ããã°ã©ãã³ã°èšèªRubyã®åºæ¬çãªæ§æãšæäœ
Rubyã¯ããã®é«ãå¯èªæ§ãšããã°ã©ãã«åªããæ§æã§äººæ°ã®ããã°ã©ãã³ã°èšèªã§ãããå€æ§ãªã¢ããªã±ãŒã·ã§ã³éçºã«æŽ»çšãããŠããŸãããã®ç« ã§ã¯ãRubyã®åºæ¬çãªæ§æãšæäœããããã°æè¡ãããã«ã¯å°èŠæš¡ãªã²ãŒã äœæãŸã§ã詳现ã«è§£èª¬ããŠãããŸãã
2.1 Rubyã®åºæ¬çãªæ§æãšãã®è§£èª¬
Rubyã®åºæ¬çãªæ§æã«ã€ããŠè§£èª¬ããŸããRubyã®èšèªèšèšã®å²åŠã¯ãã人éã«ãšã£ãŠèªç¶ãªåœ¢åŒãã§ããå¯èªæ§ã®é«ããããã³ãŒãã®å¯èªæ§ãäŒå ãããåŠçé床ãªã©ãäºã®æ¬¡ã«èããããšãå¯èœã§ãã
å€æ°ã¯ãå€ãäžæçã«ä¿åããããåŠççµæãä¿æããããã®ãã®ã§ããRubyã§ã¯ãå€æ°ã®åæåãå宣èšãªã©ã¯å¿ èŠãªãããå€æ°å = å€ãã®ããã«ç°¡åã«å€æ°ã䜿çšã§ããŸãã
次ã«ãé åã«ã€ããŠã§ããRubyã®é åã¯éåžžã«æè»æ§ããããæŽæ°ã ãã§ãªãæååããªããžã§ã¯ããªã©ãããããçš®é¡ã®èŠçŽ ãäžã€ã®é åã®äžã«æ ŒçŽããããšãã§ããŸãã
2.2 Rubyã§ã§ããåºæ¬æäœã®äŸãšãã®äœ¿çšæ¹æ³
Rubyã«ã¯ãæ§ã ãªåºæ¬æäœãæäŸãããŠããŸããããã§ã¯ãã«ãŒãåŠçãæ¡ä»¶åå²ãã¡ãœããã®å®çŸ©ãšåŒã³åºããªã©ã®åºæ¬æäœã玹ä»ããŸãã
ã«ãŒãåŠçã¯ããã°ã©ã ã®äžã§åããããªåŠçãç¹°ãè¿ãæ æ³ã§äœ¿çšããŸããRubyã§ã¯ãforæãwhileæãªã©ã䜿ãããŸããããeachã¡ãœãããã䜿çšãããšããç°¡æœã«ã«ãŒãåŠçãèšè¿°ã§ããŸãã
æ¡ä»¶åå²ã¯ããæ¡ä»¶ãæºããããå Žåã«åŠçãåããããã«äœ¿çšãããŸããifæãunlessæãªã©ããããç¹ã«ifæã¯ãif æ¡ä»¶ then åŠç endãã®ããã«çŽæçã«èšè¿°ããããšãã§ããŸãã
2.3 ããã°ã©ã ã®æµããšã«ãŒã¬ããã®äœæïŒã³ãã³ãã©ã€ã³ã²ãŒã ã®äœæäŸ
Rubyã䜿ã£ãã³ãã³ãã©ã€ã³ã²ãŒã ã®äœæäŸãšããŠãã«ãŒã¬ããã²ãŒã ãèããŠã¿ãŸãããã
ãŸããã¬ãŒã€ãŒããã®å ¥åãåãä»ãããã®æ°å€ãããšã«ã·ã¹ãã åŽã§ã©ã³ãã ãªæ°å€ãçæããŸãã次ã«ãçæãããæ°å€ãšãã¬ãŒã€ãŒã®å ¥åãæ¯èŒããçµæãåºåããŸãã
ãã®ããã«Rubyãçšãããšç°¡åãªã²ãŒã ãäœããŸããããã以äžã«Rubyã¯Webã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ãRuby on Railsããå©çšããŠã é«åºŠãªWebã¢ããªã±ãŒã·ã§ã³ãäœãããšãå¯èœã§ãã
2.4 Rubyã®ãããã°ãšãšã©ãŒè§£èª
ããã°ã©ã ãæå³ãããšããã«åããªããšãããããã°ãå¿ èŠãšãªããŸããRubyã«ã¯ããã€ãã®ãããã°ææ³ãååšããŸãã
putsãããã°ã¯æãã·ã³ãã«ãªãããã°æ¹æ³ã§ãããã°ã©ã äžã«ãputs å€æ°åããæ¿å ¥ããããšã§ããã®æç¹ã§ã®å€æ°ã®å€ãã³ã³ãœãŒã«äžã«åºåããŸããããã«ããå€æ°ã®æåã確èªããããšãã§ããŸãã
ãŸããRubyã«ã¯çµã¿èŸŒã¿ã®ãããã°ã©ã€ãã©ãªãŒãååšããŸãããrequire ‘debug’ããã³ãŒãã«è¿œå ããããšã§äœ¿çšã§ãããã¬ãŒã¯ãã€ã³ããèšçœ®ããããšã§ãããã§ããã°ã©ã ã®å®è¡ãåæ¢ããçŸåšã®ç¶æ³ã確èªããããšãã§ããŸãã
3. Rubyãçšããã¢ããªã±ãŒã·ã§ã³éçº
Rubyã¯é«åºŠãªæ±çšæ§ãšã·ã³ãã«ãªææ³ãçµã¿åãããããã°ã©ãã³ã°èšèªãšããŠåºãèªç¥ãããŠããŸããããããã«ãWebã¢ããªã±ãŒã·ã§ã³ã®éçºã«åœ¹ç«ã€å€çš®å€æ§ãªçšéãå¯èœãšãªããŸãã
Rubyã¯ãŸããã³ãŒããèªã¿ããããæžãããããããååŠè ã«ãšã£ãŠãåŠã³ãããèšèªã®äžã€ãšãããŠããŸãããããã®ç¹æ§ã掻ãããŠãããå ·äœçãªã¢ããªã±ãŒã·ã§ã³éçºã®å Žé¢ã§Rubyãã©ã®ããã«å©çšãããã®ãã«ã€ããŠè©³ããèŠãŠãããŸãããã
ãã®ããã«ããŸãã¯ã¢ããªã±ãŒã·ã§ã³éçºå šäœã®æµããæŠèŠ³ãã次ã«Rubyã䜿ã£ãŠããŒã¿ç®¡çãAPIã®äœæãšå©çšããããŠå ·äœçãªéçºäŸãæ¢ãããšãšããŸãã
3.1 ã¢ããªã±ãŒã·ã§ã³éçºæŠèŠ³ïŒRubyã®åœ¹å²
Rubyã¯æåããæåŸãŸã§ã®ã¢ããªã±ãŒã·ã§ã³éçºãµã€ã¯ã«ããµããŒãããŸãã圹å²ãšããŠã¯ãããã°ã©ãã³ã°ããžãã¯ã®èšèšãããã¢ã³ã¹ãã¬ãŒã·ã§ã³ãé åžãŸã§ãæ ã£ãŠããŸãã
Webã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ãRuby on Railsããå©çšããã°ãæ¢åã®ã©ã€ãã©ãªã掻çšããŠçæéã§é«å質ãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããšãå¯èœãšãªããŸãããã®ãããªRubyã®åŒ·ã¿ã¯ãæéãšã³ã¹ããç¯çŽã§ããç¹ã«å€§ãã«ãããšèšããã§ãããã
ãŸããRubyã®æã€é«ãå¯èªæ§ãšæè»æ§ã¯ãã¢ããªã±ãŒã·ã§ã³éçºè ã®çç£æ§ãé«ããè€éãªåé¡ãç°¡åã«è§£æ±ºã§ããç¹ã«ç¹ãã£ãŠããŸãã
3.2 RubyãšããŒã¿ããŒã¹ãé£æºãããããŒã¿ç®¡ç
Rubyã¯ããŒã¿ããŒã¹ãšã®é£æºã容æã§ãç¹ã«Ruby on Railsã§ã¯Active Recordãšãããªããžã§ã¯ããªã¬ãŒã·ã§ãã«ãããã³ã°ïŒORMïŒã·ã¹ãã ãå©çšããããšã§ãç°¡åã«ããŒã¿ããŒã¹ãšã®é£æºãå¯èœã§ãã
ãã®ãããªä»çµã¿ã«ãã£ãŠãRubyã§ã¯ããŒã¿ã®çæãèªã¿èŸŒã¿ãæŽæ°ãåé€ãªã©ãçŽæçã«è¡ããè€éãªSQLã¯ãšãªãæžãå¿ èŠããªããªããŸããããã¯RubyãããŒã¿ç®¡çã«ãããŠéåžžã«é åçãªèšèªã§ããçç±ã®äžã€ãšãªããŸãã
ããã«ãããŒã¿ãã€ã°ã¬ãŒã·ã§ã³ãšåŒã°ããæ©èœã䜿ã£ãŠããŒã¿ããŒã¹ã®æ§é ã管çããããšãå¯èœã§ãããã«ããã¢ããªã±ãŒã·ã§ã³ã®æ¡åŒµãããŒã¿ä¿®æŽãéåžžã«å®¹æã«ãªããŸãã
3.3 RubyãšAPIïŒAPIã®äœæãšå©çš
Rubyã§ã¯WebAPIã®éçºãå¯èœã§ããAPIãšã¯äžèšã§èšãã°ãœãããŠã§ã¢å士ãäºãã«ããåãããããã®æ¥ç¶éšåã§ãRubyã«ããèªåã§APIãäœæããããä»è ãäœã£ãAPIã䜿çšããããšãå¯èœã«ãªããŸãã
ãŸããRuby on Railsã掻çšããã°ãèªèšŒãããŒãžã§ãã³ã°ãã·ãªã¢ã©ã€ãŒãŒã·ã§ã³ãªã©ã®APIéçºã§ããçšããããæ©èœãç°¡åã«å©çšã§ãã倧å€å¹ççã«ã¢ããªã±ãŒã·ã§ã³ãäœãäžããããšãã§ããŸãã
ããã«Rubyã¯RESTfulãšããèšèšææ³ãæ¡çšããŠãããããæšæºçãªHTTPã¡ãœãããçšããŠAPIãèšèšã»å©çšããããã®åºç€ãæŽåãããŠããŸãã
3.4 å®äŸã§åŠã¶Rubyã«ããã¢ããªã±ãŒã·ã§ã³éçº
Rubyã¯å€ãã®æåãªãµãŒãã¹ã®éçºã«äœ¿çšãããŠããŸãããããã®äžã§ãç¹ã«æ³šç®ãã¹ãã¯ãã¯ãã¯ããããAirbnbãã¯ã©ãŠãã¯ãŒã¯ã¹ãGitHubãTwitterãªã©ã§ãã
ãããã®ãµãŒãã¹ã¯ãRubyã«ããã¢ããªã±ãŒã·ã§ã³éçºã®é«åºŠãªå¯èœæ§ã瀺ããŠããŸãããããã®ãµãŒãã¹ãæ¯ããããŠããã®ã¯Rubyã®åŒ·åºãªæ©èœæ§ãšãã®æè»æ§ããã§ãã
ãããã®äºäŸãéããŠãããªãèªèº«ãRubyã«ããã¢ããªã±ãŒã·ã§ã³éçºãè©Šã¿ãéã®ã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãããšãã§ããã§ãããã
4. RubyãçšããWebéçº
Rubyã¯ãŸã€ããšããã²ãæ°ã«ãã£ãŠåµãããããã°ã©ãã³ã°èšèªã§ããã®åªããææ³çãªã·ã³ãã«ããšé«ãæ±çšæ§ãããWebéçºã«éåžžã«æçšãªèšèªãšãããŠããŸããæ¬ç¯ã§ã¯ãRubyãçšããWebéçºã«ã€ããŠæ·±å ããŠãããŸãã
Rubyã¯ãµãŒããŒãµã€ãã®éçºã«ãããŠç¹ã«åªããèœåãæã¡ãæ å ±åéãããã€ãããã¯ãªãŠã§ãããŒãžã®äœæãŸã§ãå¯èœã«ããŸããç¹ã«Rubyã«ã¯Ruby on RailsãšããWebã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ãçšæãããŠãããããŒã¿ããŒã¹æäœããã°ã€ã³ã»ãã°ã¢ãŠã管çãªã©ã£ãŠã容æã«å®è£ ã§ããŸãã
å ·äœçãªRubyã®Webéçºã§ã®çšéã«ã€ããŠã¯ä»¥äžã®ã»ã¯ã·ã§ã³ã§è©³ãã解説ããŸãã
4.1 Webéçºã®æŠèŠ³ïŒRubyã®åœ¹å²
RubyãWebéçºã«ã©ã®ããã«å©çšãããŠãããå ·äœçã«èŠãŠãããšããŸãã¯Rubyãæã€ç¹é·ãã説æããŸããRubyã¯åå©çšæ§ã®é«ãã¢ãžã¥ãŒã«æ§ãæäŸããé«åºŠãªæœè±¡åãå¯èœã«ããŸãããã®ãããRubyã¯å®è£ é床ã®éããä¿å®æ§ã®é«ããè©äŸ¡ãããŠããŸãã
ããã«ãRuby on RailsïŒRoRïŒãšãã£ã匷åãªãã¬ãŒã ã¯ãŒã¯ã®å©çšã«ãã£ãŠãåæèšå®ããããŒã¿ããŒã¹æ¥ç¶ããã°ã€ã³èªèšŒãŸã§ã®åã ã®æéã倧ãã軜æžã§ããŸãããããã®ç¹æ§ãçµæãšããŠãéçºã¹ããŒãã®åäžãçæéã§ã®ãããã¯ããªãªãŒã¹ãå¯èœã«ããŸãã
ãŸããRubyã¯è±å¯ãªã©ã€ãã©ãªãæã£ãŠããããŠãŒã¶èªèšŒãã決æžã·ã¹ãã ãããŒã¿åæãŸã§ããããæ©èœãè¿œå ã§ããŸãããããã®èŠ³ç¹ããããRubyã¯GitHubãAirbnbã®ãããªå·šå€§ãªWebã¢ããªã±ãŒã·ã§ã³ã®éçºã«åºã掻çšãããŠããŸãã
4.2 Ruby on Railsã®åºç€ç¥èãšãã®äœ¿çšäŸ
次ã«ãRubyãWebéçºã§åºãå©çšãããŠãã倧ããªèŠå ãšããŠããã®åŒ·åãªãã¬ãŒã ã¯ãŒã¯ã§ããRuby on Railsã«ã€ããŠè§£èª¬ããŸããRuby on Railsã¯ãèŠçŽã«ããèšå®ã®åæžïŒConvention over ConfigurationïŒããåºæ¬ãšãããã¬ãŒã ã¯ãŒã¯ã§ãããéçºè ãå€ãã®èšå®äœæ¥ãã解æŸãããŸãã
å ·äœçãªäœ¿çšäŸãšããŠãRuby on Railsã䜿çšããã°ãSNSã®éçºã«ãããŠããŒã¿ããŒã¹æäœããŠãŒã¶ãŒèªèšŒãUIã®èšå®ãªã©ã容æã«å®è£ ã§ããŸãããŸããä»®æ³ååã®å£²è²·ãå¯èœãªeã³ããŒã¹ãµã€ãã®éçºãäžäŸã§ããRuby on Railsãªãã§ã¯ã®äžŠååŠçãé 延äœæ¥ãªã©ãé§äœ¿ããŠã倧èŠæš¡ãªãã©ã³ã¶ã¯ã·ã§ã³ããã°ãããšãå¯èœã§ãã
Ruby on Railsã¯åŒ·åãã€å©çšã容æãªãããç¬åŠã§åŠã¶ããšãå¯èœã§ãããŸããå€ãã®ã³ãã¥ããã£ãåŠç¿çšã³ã³ãã³ããæäŸãããŠãããåŠç¿ãéããŠå€ãã®å¯èœæ§ãåŒãåºãããšãã§ããŸãã
4.3 Rubyã§ããªãåçš®WebãµãŒãã¹ã®éçº
RubyãçšããŠåœ¢ã«ã§ããWebãµãŒãã¹ã¯å€å²ã«ããããŸããã¯ããŒã©ãŒã®äœæãAPIã®éçºãããã°äœæãšãã£ããã®ããããã£ãããããã®äœæã«ãŸã§è³ããŸã§ãRubyã§ã¯ããããWebãµãŒãã¹ã®éçºãå¯èœãšãªããŸãã
ç¹ã«æ³šç®ããã¹ãã¯ãã¹ã¯ã¬ã€ãã³ã°ãçšããããŒã¿åéã®åŒ·åãã§ããRubyã¯nokogiriãšãã匷åãªã¹ã¯ã¬ã€ãã³ã°ã©ã€ãã©ãªãæã£ãŠããããããå©çšããŠã€ã³ã¿ãŒãããäžã®æ å ±ã倧éã«åéãããããå©çšããåæãæ°ããªãµãŒãã¹ã®æäŸãå¯èœã«ãªããŸãã
ããã«ããã®ä»ã®Rubyã®ã©ã€ãã©ãªãéåžžã«è±å¯ã§ãããããè±å¯ãªããŒã¿ãå ã«ããæ§ã ãªåŠçãè¡ãããšãå¯èœã§ãããããã¯æ°èŠããžãã¹ã®åµåºã«ã€ãªããå¯èœæ§ãç§ããŠããŸãã
4.4 RubyãçšããInstagram颚SNSã®éçºïŒå®äŸããåŠã¶
次ã«ãå ·äœçãªéçºã®äºäŸãšããŠãRubyãçšããŠInstagram颚ã®SNSãéçºããæ¹æ³ãèŠãŠã¿ãŸãããã
Ruby on RailsãçšãããšããŠãŒã¶ãŒç»é²ããã°ã€ã³ã»ãã°ã¢ãŠããç»åæçš¿ãªã©SNSãå¿ èŠãšããåºæ¬çãªèŠçŽ ãæ軜ã«å®è£ ã§ããŸãããŸããBootstrapãJavaScriptãçµã¿åãããããšã«ããããããŠãŒã¶ãŒã«åªå ããUI/UXã®å®è£ ãå¯èœã§ãã
Instagram颚SNSã®éçºå®äŸãéããŠåŠã¶ããšã§ãRubyã®åŒ·åãªWebéçºèœåãå ·äœçã«ç解ããããšãã§ããŸããRuby on Railsã«ãããåºæ¬æ©èœã®å®è£ ããå§ãŸããé©åãªUI/UXã®æäŸã倧éã®ãŠãŒã¶ãŒããŒã¿ã®ç®¡çãªã©ãå šãŠã®éçºãããŒãã¹ã ãŒãºã«é²ããããšãå¯èœãšãªããŸãã
5. Rubyãçšããèªåæäœã»ã¹ã¯ã¬ã€ãã³ã°
èªåæäœãã¹ã¯ã¬ã€ãã³ã°ã¯ãããŒã¿ã®ååŸãã€ã³ã¿ãŒãããäžã®æ å ±åéãå¿ èŠãªæã«æå¹ãªæ段ã§ãããããŠããããã®äœæ¥ãé«å¹çã§è¡ãããã«ã¯ãRubyãé©ããŠããŸããRubyã®ææ³ã¯ã·ã³ãã«ã§ç解ããããããªããžã§ã¯ãæåæ§ã匷ããããéåžžã«æ±ããããã§ãã
Rubyã¯åçãªã¿ã€ãã³ã°ããµããŒãããŠãããããã°ã©ã ã®å€æŽãè¿œå ã容æã§ãããŸããè±å¯ãªã©ã€ãã©ãªãååšãããã®äžã«ã¯Nokogiriã®ãããªHTML解æããMechanizeã®ãããªãã©ãŠã¶èªåæäœã©ã€ãã©ãªããããŸãã
ãããã䜿çšããããšã§ãWebãµã€ãããæ å ±ãæœåºãããããã©ãŠã¶ã®åäœãèªååãããããã¹ã¯ã¬ã€ãã³ã°ãå¯èœãšãªããŸããäžéšã®ãµã€ãã§ã¯ãéåžžã®ã¢ã¯ã»ã¹æ¹æ³ã§ã¯ååŸåºæ¥ãªãæ å ±ãRubyã§ã¢ã¯ã»ã¹ããããšã«ããååŸå¯èœãšãªããŸãã
5.1 Rubyãçšããèªåæäœã®åºæ¬æŠå¿µ
Rubyã䜿ã£ãèªåæäœã§ã¯ããŸãã察象ãšãªãWebãµã€ããéžã³ãŸãããã®ããã§å¿ èŠãªéšåãç¹å®ãããã®æ å ±ãååŸããŸãã
ããã«ã¯HTTPãªã¯ãšã¹ãå建ãã¯ã©ã€ã¢ã³ãããã®ã¬ã¹ãã³ã¹è§£æããããŠããŒã¿ååŸãªã©ãå«ãŸããŸããRubyã®èªåæäœã¯ãããã®äžé£ã®æµããç°¡åã«èšè¿°ããããšãå¯èœã§ãã
Rubyã¯çŽæçãªèšè¿°ãå¯èœã§ãã®ã§ãç¬èªã®ã¢ã«ãŽãªãºã ã«ããæ å ±ã®ååŸããèªåçãªæäœãç°¡åã«å®çŸããããšãã§ããŸãããã®ãããèªåæäœã«ã¯Rubyãæé©ã§ãã
5.2 ã¹ã¯ã¬ã€ãã³ã°ãšAPIã«ããããŒã¿ååŸ
ã¹ã¯ã¬ã€ãã³ã°ãšã¯ãWebäžã®æ å ±ãããã°ã©ã ã䜿ã£ãŠèªåçã«éããè¡çºãæããŸããRubyã¯ãã¹ã¯ã¬ã€ãã³ã°ã«å¿ èŠãªã©ã€ãã©ãªãè±å¯ãªããããã®å®çŸã容æã§ãã
äžæ¹ã§ãå€ãã®Webãµã€ãã¯APIãæäŸããŠããŸããAPIã¯ç¹å®ã®ç®çã®ããã«çšæããããšã³ããã€ã³ãã§ããããããšã©ãŒãã³ããªã³ã°ã圢åŒã«æ²¿ã£ãããŒã¿ãååŸããããšãã§ããŸãã
Rubyã«ã¯ããããã®APIãæ±ãããã®ããã«ãŠã§ã¢ãã©ã€ãã©ãªãååšããŸããããã«ãããé£è§£ãªæäœãé·æéã®éçºãå¿ èŠãšãããšããããŒã¿ãååŸããããšãå¯èœãšãªããŸãã
5.3 Rubyãçšããã¹ã¯ãªããã®èšèšãšå®è£
Rubyã®ã³ãŒãèšèšã«ã¯ãªããžã§ã¯ãæåãå©çšããŸãããªããžã§ã¯ãæåãšã¯ããã¯ã©ã¹ããšãããã«å±ããã¡ãœããïŒé¢æ°ïŒããçšããããã°ã©ãã³ã°ã¹ã¿ã€ã«ã®ããšãæããŸããRubyã¯ãããå©çšããããèšèšãããŠããŸãã
Rubyã§ã¯ãåŸããã§ãä»ã足ãããšãã§ããdynamicalãªç¹æ§ãšåãããŠãããããèšèšãå¯èœã§ããããã«ããéçºã®å¹çãå€§å¹ ã«äžããããšãå¯èœã§ãã
ããã«ãç¬èªã®DSL(Domain Specific LanguageïŒãäœæããŠå°å ¥ããããšã«ãããç¹å®ã®ã¿ã¹ã¯ç¹ååã®èªåæäœã¹ã¯ãªããã容æã«äœæã§ããŸãã
5.4 Rubyã䜿ã£ãå®è·µçãªã¹ã¯ã¬ã€ãã³ã°ã®äŸ
Rubyã§æããã䜿çšãããã¹ã¯ã¬ã€ãã³ã°ã®äŸãšããŠã¯ãECãµã€ãããååæ å ±ãååŸãããã®ããããŸããããã¯ååã®ååãäŸ¡æ Œãåšåº«ç¶æ³ãªã©ãååŸããèªèº«ã®ãµã€ãã«è¡šç€ºããããŸãã¯åæã®ããã«äœ¿çšããã±ãŒã¹ãå€ãã§ãã
ãŸããRubyã䜿çšããŠããã¥ãŒã¹èšäºãããã°ã®ææ°æ å ±ãåéããäžæ¬ã§èŠãããšãã§ããã¢ããªã±ãŒã·ã§ã³ãäœæå¯èœã§ããããã«ãããæ¯æ¥å®æã«æ å ±ãååŸããRSSãªãŒããŒã«è¡šç€ºãããšãã£ãäºãå¯èœã§ãã
ãã®ããã«ã匷åãªããã°ã©ãã³ã°èšèªã§ããRubyãçšããããšã§ãæ§ã ãªæ å ±ã®åéãèªåæäœãå¯èœãšãªããŸããã ãããããRubyã¯ä»åŸãå€ãã®éçºè ããæ¯æãããã§ãããã
6. Rubyã®åŠç¿æ¹æ³ãšã³ãã¥ããã£
6.1 Rubyã®åŠç¿ã«å¿ èŠãªåºæ¬ã¹ãã«ãšãã®ååŸæ¹æ³
ããã°ã©ãã³ã°èšèªRubyãåŠã¶ããã«ã¯ãããã°ã©ãã³ã°èšèªã®åºæ¬çãªç解ãå¿ èŠã§ããäžè¬çãªããã°ã©ãã³ã°ã®åºæ¬æŠå¿µãäŸãã°å€æ°ãã«ãŒããæ¡ä»¶åå²ãé¢æ°ãªã©ã®ç解ãæ±ããããŸãã
ãããã®åºæ¬çãªã¹ãã«ã¯ããããäžã§ã¢ã¯ã»ã¹å¯èœãªãªã³ã©ã€ã³ææãéããŠååŸã§ããŸãããŸããæ¬ããåŠã¶äººã®ããã«ã¯ã”Beginning Ruby: From Novice to Professional”ãªã©ã®å ¥éæžããªã¹ã¹ã¡ã§ãã
ããããRubyã®åŠç¿ã«ããã£ãŠæãéèŠãªã®ã¯ãå®éã«æãåãããŠããã°ã©ãã³ã°ãè¡ãããšã§ããçè«ã ãã§ãªããå®éã«ã³ãŒããæžãããšã§ãæ·±ãç解ãåŸãããšãã§ããŸãã
6.2 Rubyã®èªåŠèªç¿ã®ããã®çŽ æãšãã®æŽ»çšæ¹æ³
èªåŠèªç¿ã«é©ããçŽ æãšããŠã¯ãCodecademyã®Rubyã³ãŒã¹ãå ¬åŒRubyãµã€ãã®ãã¥ãŒããªã¢ã«ããªã¹ã¹ã¡ã§ãã
ãããã®çŽ æã掻çšããéãåã¬ãã¹ã³ãçµããåŸãå¿ ãèªåã§ã³ãŒããæžãç·Žç¿ãè¡ãããšãéèŠã§ããç解ãæ·±ããããã«ããèªèº«ã®æã§æžããåããããšã©ãŒã解決ããçµéšãå¿ èŠãšãªããŸãã
ãŸããæ¯æ¥äžå®æéåŠç¿ããããšã§ãç¶ããã¢ãããŒã·ã§ã³ãä¿ã€ããšãã§ããŸããäžåºŠã«å€ãåŠç¿ããããããåå²ããŠå°ããªã¹ãããã§åŠã¶ããšããé·æçã«èŠãŠæåãžã€ãªãããŸãã
6.3 Rubyã®åŠç¿ãå©ããã³ãã¥ããã£ãšãã®æŽ»çšæ¹æ³
RubyåŠç¿ã«ã¯å ¬åŒã¡ãŒãªã³ã°ãªã¹ããRuby ForumãStack Overflowçã®ã³ãã¥ããã£ãæå¹ãªãªãœãŒã¹ãšãªããŸãã
ãããã®ã³ãã¥ããã£ã§ã¯ãRubyã®ããŸããŸãªãããã¯ã«ã€ããŠè°è«ãè¡ãããŠããŸããäœãå°ã£ããšãããåŠç¿äžã«çåã湧ãããšãã«ã¯ããããã®ã³ãã¥ããã£ã§è³ªåãããæ å ±ãåŸããããããšãã§ããŸãã
ãŸãäžç·ã«åŠç¿ãã仲éãèŠã€ããããšããã¢ãããŒã·ã§ã³ç¶æã«æå¹ã§ããèªåã ãã§ãªããä»è ã®åŠã³ãæé·ã®ããã»ã¹ãèŠãããšã§ãæ°ããªèŠç¹ãåŠç¿æ¹æ³ãåŸãããšãã§ããŸãã
6.4 Rubyéçºã®äžæ©ãèžã¿åºãããã«
Rubyã®åŠç¿ãçµããããšã¯ãäœãäžã€ã®ãããžã§ã¯ããäœãäžããããšãç®æããŸããããããã¯ããã°ãSNSãAPIãããŒã¿åéã¯ããŒã©ãŒãªã©ãããªããèå³ãæã€ãã®ã§æ§ããŸããã
èªåèªèº«ã§èããå®çŸããããšã§ãRubyéçºã®æµãã身ã«ã€ããæ·±ãç解ãåŸãããšãã§ããŸãããŸãããã¯ãããã°ã©ãã³ã°ã«å¯Ÿããèªä¿¡ãé«ãããããªãææŠãžã®äžæ©ãèžã¿åºããã£ãããšãªããŸãã
ãŸãã¯å°ããªäžæ©ããå§ããŠãå°ããã€ææŠãåºããŠè¡ãããšãéèŠã§ãããããŠã«ããŒã®äžçã¯ããªããåŸ ã£ãŠããŸãããããããªãã®æ ãå§ããŸãããã