YAPC::Asia 2013 / Github ã«ãããã¶ã¼ã«ã¢ãã«ã¸
ããã°ãæ¸ãã¾ã§ã YAPCãã¨ãããã¨ãªã®ã§ãæ¸ãã¾ãã
åæ¥ãã¢ãã³Perlãªãã¡ã¯ã¿ãªã³ã°ã
èªåã¯20åæ 㧠ãã¢ãã³Perlãªãã¡ã¯ã¿ãªã³ã°ãã¨ããé¡ã§è©±ãã¾ãããã¹ã©ã¤ãã¯ä»¥ä¸ã§å ¬éãã¦ã¾ãã
ä»åãæãã®ä» CI ããã¹ãã«é¢ããçºè¡¨ãä»ã«å¤ãã¦ãããã«æ¯ã¹ãã¨åºç¤çãªå 容ã«çµå§ãã¡ããã¾ããã
㨠@t_wada 御大ãããè¤ãã«ä¸ã£ãã®ã§å人çã«ã¯æºè¶³ã§ãã
ãªãã¡ã¯ã¿ãªã³ã°ã¯ãã¹ãããæ¸ããã°ãã®åå以ä¸ã¯çµãã£ããã¨ã«ãªãããã ããã¹ãã¯ãã¹ããæ¸ããã¨ãã®ãã®ã主ç®çã«ãªããããªãããã«ãããã¦æ¸ãããã¹ãã¯ã¨ã«ããè¨ç®æ©ãå©ç¨ãã¦é »ç¹ã«å®è¡ãã¾ãããã¨ãããã¨ãè¨ãããã£ãã®ã§ãããæå³éãã«ä¼ããããããããªãããªã¨æãã
2æ¥ç®ãRuby ã®è¯ãã¨ããèªã£ã¦ãã ããã
2æ¥ç®ã¯ã@hotchpochã@shyouheiã@masuidrive + @tokuhirom ã«ããããã«ãã£ã¹ã«ãã·ã§ã³ãRubyã®è¯ãã¨ããèªã£ã¦ãã ãã ããããªPerlã§å¤§ä¸å¤«ãï¼ãã®å¸ä¼ãåãã¾ãããããããªãã ãã®ã¡ã³ããæå @lestrrat ããããä¾é ¼ãåããã¨ãã¯å ¨ç¶éãã¡ã³ãæ¡ã§ãä¸ã¶æå¾ã«ã決ã¾ãã¾ããï¼ãã¨é£çµ¡ãæ¥ãããã®ã¡ã³ãã¼ã«ãªã£ã¦ãããèãã¦ãªãã
Ruby é£å¶ããçè ãéã¾ã£ãããã ããã£ã¡ãããã£ã¡ãããªä¼ã«ãªã・・・ãã¨æããããã¿ãªããããæ°å¹´ã§æµç³ã«ä¸¸ããªã£ãã®ããäºæ³å¤ã«ã¹ã ã¼ãºãªé²è¡ã§ãã£ã¡ãéã«ã³ã£ãããã¾ãããã¨ã¯ããããã¨ãªãããã¦ããã£ãã¨ããããã¯
ã¨ãè¨ããããã¨ã¯ã¡ããã¨è¨ã£ã¦ããã£ãããæ票çµæã¯3ä½ã ã£ããã¨ã§è´è¡ã®ã¿ãªããã«ã¯ãããªãã«æºè¶³ããã ããã®ã§ã¯ãªãããªã¨æãã¾ããå®ã¯ @miyagawa ãããã¯ããããã«ãè´ãã¦ããé¢ã ããã®å¾ã® HUB ã§ãã¼ã«çæã«èªåã«ãè¨ãããçã«ããããªè°è«ããã¯ããã¦é常ã«é¢ç½ãã£ãã®ã§ãããç±éçã«ãã£ã¡ã®æ¹ãæ¬çªãããªããã¨ããæãã§ãã®å¢ããæ¬é³ãå£ä¸ã§å¼ãåºããªãã£ãã®ãåçç¹ã§ã¯ããã¾ãã
å 容çã«ã¯ãçµå±ããã«ãã£ã¹ã«ãã·ã§ã³ã®æå¾ã®ãã¼ãã§ãããPerlãªã¹ã¯ãã«é¢ãã¦ããã¯ãä¸çªã®æå¿ã©ããã§ããããçµè«ã¯ä»¥åã« @shyouhei ãããæ¸ãã¦ãã http://shyouhei.tumblr.com/post/44451702850/1 ã®ãã¹ãã«ããè«æ¨ããã¹ã¦ã ã£ãã¨æãã¾ããå£ä¸ã«ãã4人ãããã«é¢ãã¦ã¯åæãã¦ãããã
ã ããã¾ããããè¨ã£ã¦ãã¾ãã¨èº«ãèããªããããããªããã©ããªã¹ã¯ã¯PerlãããªããPerlã«åºå·ãããã¨ã«ããã®ã§ãã
ãPerl ã£ã¦ä»ã©ããªã®ãã¨ããåãã«å¯¾ãã¦ã©ãçããã¹ããã¨ããã®ã¯é£ããã¨ãããªã®ã ãã©ãå人çã«ã¯ãã©ã¤ãã©ãªã®æ´æ°æ°ã§ãã£ããä½ãæ°ãããã©ãã¤ã ãã¢ã¼ããã¯ãã£ãçã¾ãã¦ããåå£ãä»è¨èªã¨æ¯è¼ãããå ´åã«ã¯ããã¤ã¦ã®å¢ããç¡ããªã£ã¦ãã (ã¨ããããããªå¢ããã£ãã ãããäºã ) ã¨ããæã¯èªããããå¾ãªãã®ããªã¨æãããããã¯ãã大åæã¨ããä¸ã§ããªãä» Perl ã³ãã¥ããã£ã«èªåã帰å±ãã¦ããããã©ãã³ããããã¦ãããã¨ããã©ã Perl ã¨é¢ãã£ã¦ãããã¨ãããã¨ãèãããã¨æã£ã¦ããã
Perl ã§ãåããã¨ãã§ããããã®è¨èªã«ããããã¯ããããã°ã§ãã・・・ã¨ãããã¨ãè¨ã£ã¦ããã®ããã°ã°ã©ããªãã£ãã®ä»ã®æå³ã§å¿ è¦ã ã¨ã¯æãã®ã ãã©ãPerl ã£ã¦ä»ã©ããªã®?ãã¨çåã«æã£ã¦ãã人ãæå¾ ãã¦ãåçã¯å¤åããã§ã¯ãªãã ããããã¾ãã¯ä»è¨èªã¨ã®å·®åãã¡ããã¨åãå ¥ããã¨ãããããããªã¨æãã¾ããããããæå³ã§ä»åã®ããã«ã§ã¯ãRuby ã®ã³ãã¥ããã£ãã¨ã³ã·ã¹ãã 㨠Perl ã®ããã®èãæ¹ã®éããããããã®èè ãã話ãã¦ããããã¨ãã§ããã®ããèªåã®æãã¨ããã代å¼ãã¦ãããå½¢ã«èªå°ããå½¢ã§ããããããã£ããããããªãã¨ã¯è¨ããè¯ãã£ãã¨æã£ã¦ã¾ãã
ãã¹ããCIãGithub â ä¼½èæ¹å¼ãããã¶ã¼ã«ã¢ãã«ã¸
æ¯å¹´ã® YAPC ã§ã¯ã¨ãã©ãã誰ãããããã§ããªãããã®å¹´ã®ãã¼ããã¯ã£ããè¦ããä¼ãã¨ããã®ããã¾ã«ããã¾ãã
Audrey ãæ¥ãã¨ã㯠Perl 6 ・・・ã¨ããã Pugs 絡ã¿ã§ Haskell ã®è©±ãçãä¸ãã£ãå¹´ã ã£ããããã¡ãã¡ã§ Moose ã話é¡ã«ãªã£ãå¹´ãAnyEvent ããPlack/PSGI ããã¿ãããªã¨ãããã£ããå¿ ãããæ¯å¹´ãããããã¼ãã¿ãããªã®ãæµ®ãã³ä¸ããããã§ã¯ãªãã®ã ãã©ãä¸æ¹ã§ãããããã¼ããæµ®ãã³ä¸ããã¨ãã¨ããã®ã¯ãã¤ã¾ããã®è©±é¡ã«ã¤ãã¦åæå¤çºçã«ã¿ããªãæå¿ãæã£ãã¨ãããã¨ã§ãããã®å¹´ã®ãã¬ã³ãã表ãã¦ããã¨ãã£ã¦ééããªãã¨æãã¾ãã
ä»å¹´ã¯ã©ãã ã£ããã¨ããã¨ããã¹ããContinuous IntegrationãGithub ãããã話é¡ã«ä¸ããã¨ãã¨ã¦ãå¤ãã£ãããã¹ãã«é¢ãã¦ã¯ãCPAN ã¢ã¸ã¥ã¼ã«ã®ãã¹ãã®ä»æ¹ã¨ããããã¯å¤§è¦æ¨¡ã¢ããªã±ã¼ã·ã§ã³ã§ã®åæ£ãã¹ãã®ä»æ¹ã§ãã£ãããã¢ããªã±ã¼ã·ã§ã³ã«ã¾ã¤ãããã¹ãã®æ¸ãã«ããå ´æãããæ¸ããã¨ãã話ã§ãã£ããã¨ããæ¥åå¯ãã®è©±ãå¤ããCI ã Github ã®æèãããã ã£ãããã¶ãããããä»å¹´ã®ãã¬ã³ãã
ãã¨ãã°ãã®ã¸ãã
- ãã¯ã¦ãªããã°ã®éçºããã¼ã https://speakerdeck.com/onishi/hatena-blog-development-flow
- ãGithub ã§ã¤ããããã®ããéçºç¾å ´ã http://hiroki.jp/yapcasia-2013-github
åè ã«é¢ãã¦ãå¤å·£ã®è³æãç´¹ä»ããã®ãå¤ãªæãã ãã©èªåãããé ã®éçºããã¼ã¨ã¯å¤§ããå¤ãã£ã¦ããã¨ãããã¨ãä½µãã¦è¿°ã¹ããã¨ãããã¨ã§ãæ¢ãã¦ç´¹ä»ãã¾ããå¾è ã¯ããã¯ã Github ã使ã£ã Pull Request ãã¼ã¹ã®éçºã«ã¤ãã¦ã®çºè¡¨ãã¨ã¦ãããããããä¸ã«ã¯ãããèªãã ãè´ãããã§ã«ã«ãã£ã¼ã·ã§ãã¯ãåãã人ãããã®ã§ã¯ãªããã¨æãã
YAPC ã¨ã¯é¢ä¿ãªãããã®ã¨ãããPull Request ãã¼ã¹ã§éçºãã¦ãã¹ãã CI ã㦠Social Coding ã§ãããã¨ããã®ã軸ã«ããå社ã®éçºããã¼ã¿ãããªè©±ãããèãããããããã¬ã³ãããWebãµã¼ãã¹éçºãªãããæããã人ãå¤ãåå ãã¦ããã§ããã YAPC ã§ã表é¢åããã¨ãããã¨ã§ã¯ãªãããªã¨æã£ã¦ã¿ã¦ãã¾ããã
ã¨ããã§ãä»æ¥ãããªãã¤ã¼ããããã
Github/Github Enterprse ãããã¯ãã®å種ã®ãã¼ã«ãç¨ã㦠Pull Request ãã¼ã¹ã®éçºï½¥ï½¥ï½¥ã¤ã¾ã OSS éçºã§å¹ããã¦ããã¯ã¼ã¯ããã¼ã§èªåãã¡ã®ã½ããã¦ã§ã¢ãéçºãããã¨ããããæ¹ãç¾å¨é²è¡å½¢ã§æ¡å¤§ãã¦ãã¦ãã¾ããã®æ¡å¤§åº¦åããå¢ãã¥ãã¦ãã¦ããå°è±¡ãåãã¾ãã
ããã¾ã§ã Webãµã¼ãã¹éçºã«é¢ãã¦è¨ãã°ãã¢ã¸ã£ã¤ã«çã§ãã£ãã軽éãªéçºã ã£ããããã®ã¯ããããæ®éã«è¡ããã¦ããããã©ããç¾å ´ã®å®æã¨ãã¦ã¯ Github ã«ãã£ã¦ã³ã¼ãã¬ãã¥ã¼ããã¹ãã CI ãå½ããåã®ããã«æ ¹ä»ãã¨ããã®ã¯ãããªãã«ï½¥ï½¥ï½¥ã¨ããããããªã大ããªå¤åã«æãã¦ããã®ã§ãªããã¨æãã1å¹´ããããã®ã¹ãã³ã§ãããã大ããªå¤åãèµ·ãã£ã¦ãã¦ããã®ä¸ã«èº«ãç½®ãã¦ãã人ãå¤ãããããæ¢ãã¦ãã®è©±ã YAPC ã§ãããã¨æãã¢ããã¼ã·ã§ã³ã沸ãããã§ãä»å¹´ã®ããã¯ãããåæã«ãã¡ãã¡ã§èµ·ãã£ã¦ããã¨ãããã¨ã®è¨¼å·¦ãããªããã¨èªåã¯æãã¾ãããå°ããªå¤åã§ãããããã¨ã®ãªã話ã§ããã°èª°ãçºè¡¨ãããã¨ããæ°ã«ããããªããªãããã§ãããã
ãã大è¢è£ã«ããã¨ããã¯ã¤ã¾ããGithub ã¯ã³ã³ãã¥ã¼ã¿ã»ããã°ã©ãã³ã°ã®æ°ä¸»åã ãã¨ãã話ãããããã©ããããã Webãµã¼ãã¹ãã¯ã©ã¦ããµã¼ãã¹ãã¢ããã¯ãã®ã»ãããããªåéã®éçºç¾å ´ã§èµ·ãã£ã¦ãããã¨ãããã¨ãGithub ã使ã£ãéçºãã¤ã¾ã OSS ã®ãããªéçºããã»ã¹ â ã½ããã¦ã§ã¢éçºã®æ¹æ³è«ãä¼½èæ¹å¼ãããã¶ã¼ã«ã¢ãã«ã¸ã¨ç§»è¡ãã¦ããã¨ãã大ããªæµãããããããã£ã¦ããã®æµãããã®ä¸å¹´ã®éã«ä¸æ°ã«éããªã£ããèªåã¯ãããªé¢¨ã«æãã¦ãã¾ãããã¤ãæ¥ããããããªãããããã½ããã¦ã§ã¢éçºé©å½ã®ã¿ã¼ãã³ã°ãã¤ã³ãã®ã²ã¨ã¤ã ã£ãããã¨ãã風ã«è¨ããã¨ããããããããªãã§ããããã
äºå®ããã¤ã¦å½ããåã®ããã«ã¹ã¿ã¼ãã¢ããã Rails ãæ¡ç¨ãããã¨ããã¥ã¼ã¹ã«ãªã£ãæã¨åãããã«ãæ¨ä»ã®ã¹ã¿ã¼ãã¢ããã¯å½ããåã®ããã« Github ã§ã³ã¼ãããã¹ããã¦ããã¹ããæ¸ãã¦ãPull Request ãã㦠CI ãããããã«ãªã£ã¦ãã¦ãããããã¯ãµã¼ãã¹éçºã®ç¾å ´ã«å®çãã¦ããããæ¹ã«ãªãã¨æãã¾ãã
ãã ããã®ç¾å ´ã§èµ·ãã£ã¦ãã大ããªå¤åã¯ãã®å¤ããã¯ããªãè¦ãã«ãããããããã©ãããã・・・ãã©ãããããã©ãããã㦠YAPC ã§ããã話é¡ã«ãªã£ã¦è¡¨é¢åããã¨ãããã¨ã¯ãããã¦ããåºç¯ãªåéã«ç¥ãããããã«ãªã£ã¦ããã®ãã©ãããã¯ã©ããã«è¡ãã§ãããããããã¯ããæéã®åé¡ã ãã・・・ã¨ãããã¨ãå¼·ãæãã¾ããã
ãã¼ã¨ããªããæå¾ã¯ YAPC ã«çµ¡ãã¦èªåã®è¨ããããã¨ãè¨ã£ã¦ãã ãã«ãªã£ã¦ãã¾ãã¾ããããä»å¹´ã®ææ³ã¯ä»¥ä¸ã§ããä»ã«ã PerlMotion ã¨ããLT ã¨ãããã®å¾ã®æã¡ä¸ã㧠Shibuya.pm åçªä¼ã¿ããã«ãªã£ãã¨ããããããé¢ç½ã話ã¯ãã£ãã®ã ãã©ãã®è¾ºã§ã
@941 ããã@lestrrat ãã¯ããã¨ããã¹ã¿ããã®ã¿ãªããããã¤ãããã¾ã§ãã & ãããã¨ããããã¾ããã(ä»å¹´ã) 楽ããã£ãã§ã!
・・・ãã¦ãã¦ãæ¥å¹´ä»¥éã©ããã¾ãããããã¼ã