rubyconftaiwan2015

 rubyconftaiwan2015

RubyConf台湾
at 2015.9.12

5ad0bb268dd2605b09165d464308cb7e?s=128

Kuniaki IGARASHI

September 12, 2015
Tweet

Transcript

  1. %FCVHHJOHCBTJDT GPS3BJMTBQQMJDBUJPOT ,VOJBLJ*("3"4)* UI4FQ3VCZ$POG୆ᖯ

  2. ޒेཛྷ๜໌ ,VOJBLJ*("3"4)* TQJDFMJGF *OD$50 'SPN+BQBO 5PLZP 3BJMTFOHJOFFS 1BSUUJNFUFBDIFS 3VCZ 3BJMT

     JO)JUPUTVCBTIJ6OJW 3BJMT(JSMTDPBDIJO+BQBO 3BJMTࣉࢠ԰XPSLTIPQGPVOEFS HJUIVCJHBJHB UXJUUFSJHBJHB GBDFCPPLLVOJBLJJHBSBTIJ
  3. ޒेཛྷʁ

  4. ໡ቋḨݿ⎊đᆇ֥ӑݺݿEFSݺ਩

  5. "CPVUUIJTUBML 5BMLBCPVU3BJMTEFCVHCBTJDT 5BSHFU wCFHJOOFST wGPSEFWFMPQNFOU %PO`UUBMLBCPVU wGPSQSPEVDUJPO wTFDVSJUZ wQFSGPSNBODF

  6. NFOV w8FCDPOTPMF w$ISPNF%FWFMPQFSUPPMT wCZFCVH wGPPUOPUFT wH wQSZSBJMT wBXFTPNFQSJOU wUPOOFMT wMFUUFSPQFOFS

    TBNQMFBQQVTFEJOUIJTQSFTFOUBUJPO IUUQTHJUIVCDPNJHBJHBEFCVH@CBTJDT@BQQ
  7. QVUTBCD 'PSNBU $PEFT TIFMMDPNNBOET MT IUUQMPDBMIPTU 63-

  8. )PXUPHFOFSBUFUIFUFTUBQQGPSUIJTUBML SBJMTOFXCPPLT@BQQ .BLFBTBNQMFBQQ DECPPLT@BQQ SBJMTHTDBGGPMECPPLTUJUMFNFNPUFYU CJOSBLFECNJHSBUF SBJMTT IUUQTHJUIVCDPNJHBJHBEFCVH@CBTJDT@BQQ 3BJMTWFSTJPO

  9. 8FCDPOTPMF

  10. 8FCDPOTPMFSVOT*/4*%&ZPVSCSPXTFS /PUJOUFSNJOBM 8FCDPOTPMF 8FDBOSVOBOZ3BJMTDPEFTJOXFCDPOTPMF

  11. )PXUPVTFXFCDPOTPMF (&5 HSPVQEFWFMPQNFOUEP HFNXFCDPOTPMF d FOE (FNpMF 5IFDPEFJTXSJUUFOCZEFGBVMUJO3BJMTBQQ 7JFX DPOTPMF

    *GXFXSJUFJUJOBQQWJFXTMBZPVUTBQQMJDBUJPOIUNMFSC  XFDBOVTFXFCDPOTPMFJOBOZQBHFT PSXFDBOFOBCMFDPOTPMFGPSBDPOUSPMMFSVTJOHCFGPSF@BDUJPODBMMCBDL CFGPSF@BDUJPO\DPOTPMF^ 8FDBOVTFXFCDPOTPMFWFSZFBTJMZ
  12. "OVTFGVMNFUIPEJOXFCDPOTPMF (&5 8FIBWFTPNFVTFGVMNFUIPEGPSEFCVH 3FUVSOTBOBSSBZPGJOTUBODFWBSJBCMFOBNFT 8FDBODIFDLWBSJBCMFTVTFEJOPVSWJFXT JOTUBODF@WBSJBCMF

  13. %PO`UVTFXFCDPOTPMFJOQSPEVDUJPO (&5 8FCDPOTPMFNVTUCFVTFEGPSEFWFMPQNFOU *GXFVTFJOQSPEVDUJPO BOZPOFDBOSVOBOZDPEFT *ODBTFZPVBDDJEFOUBMMZJODMVEFXFCDPOTPMFJOQSPEVDUJPO FOWJSPONFOU XFXJMMHFUUIFGPMMPXJOHFSSPS #FDBVTFXFCDPOTPMFHFNJT/05VTFEJOQSPEVDUJPO FOWJSPONFOUTCZEFGBVMU

  14. %FCVHHJOHJO'PSN

  15. CPPLTOFX 'PSNCBTJDT $MJDL l$SFBUF#PPLz #VUUPO CPPLT

  16. B&SSPSPDDVST #BTJDQSPCMFNQBUUFSO C/PFSSPS CVUOPUXPSL

  17. (&5 1045 *GXFHPUFSSPSʜ B&SSPSPDDVST

  18. 8FDBOHFUBMPUPGJOGPNBUJPO (&5 1045 FSSPSOBNF NFTTBHF MJOFOVNCFS SFRVFTU QBSBNFUFST XFCDPOTPMF *OUIJTDBTF

    UIFFSSPSPDDVSSFE CZXSPOHWBSJBCMFOBNF 8FDBOpOEJUGSPNUIFJOGPSNBUJPO
  19. 5IFSFBSFTPNFVTFGVMEFCVHQPJOU ʁ C/PFSSPS CVUOPUXPSL

  20. 8FC4FSWFS #SPXTFS 3FTQPOTF )5.- 3BJMT"QQ 3PVUFT $POUSPMMFS 7JFX 63-IUUQMPDBMIPTUCPPLT )551NFUIPEɿ1045

    1BSBNFUFST 'PSNEBUB ɿ CPPL<UJUMF>๘ຶ޾运૲ CPPL<NFNP>)POFZBOEDMPWFS 3FRVFTU 3FRVFTUJOGP 'PSNCBTJDT
  21. 8FC4FSWFS #SPXTFS 3FTQPOTF )5.- 3BJMT"QQ 3PVUFT $POUSPMMFS 7JFX 63-IUUQMPDBMIPTUCPPLT )551NFUIPEɿ1045

    1BSBNFUFST 'PSNEBUB ɿ CPPL<UJUMF>๘ຶ޾运૲ CPPL<NFNP>)POFZBOEDMPWFS 3FRVFTUJOGP 3FRVFTU ˒DIFDLQPJOU ˒DIFDLQPJOU ˒DIFDLQPJOU 'PSNCBTJDT
  22. 8FC4FSWFS #SPXTFS 3FTQPOTF )5.- 3BJMT"QQ 3PVUFT $POUSPMMFS 7JFX 63-IUUQMPDBMIPTUCPPLT )551NFUIPEɿ1045

    1BSBNFUFST 'PSNEBUB ɿ CPPL<UJUMF>๘ຶ޾运૲ CPPL<NFNP>)POFZBOEDMPWFS 3FRVFTUJOGP 3FRVFTU ˒DIFDLQPJOU ˒DIFDLQPJOU ˒DIFDLQPJOU 'PSNCBTJDT
  23. $ISPNFEFWFMPQFSUPPMDBO EJTQMBZSFRVFTUTGSPNGPSN 'PVOEJO.FOV5PPMT %FWFMPQFS5PPMT"OETFMFDUUIF /FUXPSLUBC *OQVUUJUMFBOENFNPpFMEBOE QVTIl$SFBUF#PPLzCVUUPO ‏JOQVU .FOV 5PPMT

    %FWFMPQFS5PPMT ‏JOQVU DIFDLQPJOU4FOEJOHSFRVFTUT $IPPTFUIF/FUXPSLUBC
  24. lCPPLTz UIFpSTUSFRVFTU JTUIFSFRVFTUXFTFOU $MJDLlCPPLTzMJOFBOETFFEFUBJM

  25. 63- )551NFUIPE ‑TDSPMMEPXO ‏'PSN%BUB ‏CPPL<UJUMF> ‏CPPL<NFNP> 5IFSFRVFTUJODMVEFTJOQVUEBUB 5IFSFJTOPQSPCMFNJOIFSF

  26. 8FC4FSWFS #SPXTFS 3FTQPOTF )5.- 3BJMT"QQ 3PVUFT $POUSPMMFS 7JFX 63-IUUQMPDBMIPTUCPPLT )551NFUIPEɿ1045

    1BSBNFUFST 'PSNEBUB ɿ CPPL<UJUMF>๘ຶ޾运૲ CPPL<NFNP>)POFZBOEDMPWFS 3FRVFTUJOGP 3FRVFTU ˒DIFDLQPJOU0, ˒DIFDLQPJOU ˒DIFDLQPJOU 'PSNCBTJDT
  27. 8FC4FSWFS #SPXTFS 3FTQPOTF )5.- 3BJMT"QQ 3PVUFT $POUSPMMFS 7JFX 'PSNCBTJDT 63-IUUQMPDBMIPTUCPPLT

    )551NFUIPEɿ1045 1BSBNFUFST 'PSNEBUB ɿ CPPL<UJUMF>๘ຶ޾运૲ CPPL<NFNP>)POFZBOEDMPWFS 3FRVFTUJOGP 3FRVFTU ˒DIFDLQPJOU ˒DIFDLQPJOU ˒DIFDLQPJOU0,
  28. 3BJMTMPH -PPLBU3BJMTMPHpMF 3BJMTPVUQVUTQBSBNFUFSTCZEFGBVMU CVUUIBU`TEJGpDVMUUPpOE 8FDBOpOEUIFNNPSFFBTJMZVTJOHMPHHFSNFUIPET $IFDLJOHQBSBNFUFSTJO3BJMTBQQ 4UBSUFE1045CPPLTGPSBU  1SPDFTTJOHCZ#PPLT$POUSPMMFSDSFBUFBT)5.- 1BSBNFUFST\VUG✓

     BVUIFOUJDJUZ@UPLFO8IH0W,$+%3F6(.)#W+SO3E,R$5I'#9C)M&%-R)2 J:XM9%XG%7Z41;"X:B&CQL*$#,TKH I#)7H CPPL\UJUMF๘ຶ޾运૲  NFNP)POFZBOEDMPWFS^ DPNNJU$SFBUF#PPL^ 6OQFSNJUUFEQBSBNFUFSNFNP  NT CFHJOUSBOTBDUJPO 42- NT */4&35*/50CPPLT UJUMF DSFBUFE@BU VQEBUFE@BU 7"-6&4    <<UJUMF ๘ຶ޾运૲> <DSFBUFE@BU > <VQEBUFE@BU  >>  NT DPNNJUUSBOTBDUJPO 3FEJSFDUFEUPIUUQMPDBMIPTUCPPLT $PNQMFUFE'PVOEJONT "DUJWF3FDPSENT  MPHTEFWFMPQNFOUMPH
  29. MPHHFS 8FDBOQSJOUTFOUFODFTUPMPHpMFXJUIMPHHFSNFUIPE UJQT 1SJOUNBSLTBSPVOETFOUFODFTUIBUZPVXPVMEMJLFUPMPPL DMBTT#PPLT$POUSPMMFS"QQMJDBUJPO$POUSPMMFS  ʜ EFGDSFBUF MPHHFSEFCVH 

    MPHHFSEFCVHQBSBNT<CPPL> MPHHFSEFCVH  !CPPL#PPLOFX CPPL@QBSBNT MPHTEFWFMPQNFOUMPH
  30. MPHHFS 8FDBOBMTPVTF&NPKJ *GZPVSUFSNJOBMDBOEJTQMBZ65'DIBST MPHHFSEFCVH MPHHFSEFCVHQBSBNT<CPPL> MPHHFSEFCVH

  31. MPHHFSJTVTFGVM CVUJUDBOPOMZTIPXEBUBGSPN UIBUXSJUUFOEFCVHDPEFTCFGPSFSVOOJOH QVUTTUZMFEFCVHHJOH $BOXFHFUNPSFqFYJCMFUPPM 8FIBWFNPSFqFYJCMFUPPMGPSEFCVHHJOH lCZFCVHzJOUSPEVDFTBGVMMGFBUVSFEEFCVHHFS -FU`TDIFDLJUGSPNOFYUQBHF

  32. CZFCVH %FCVHHFSTUPQQSPHSBNBOESVOBOZDPEFT DMBTT#PPLT$POUSPMMFS  "QQMJDBUJPO$POUSPMMFS  ʜ EFGDSFBUF CZFCVH !CPPL#PPLOFX

    CPPL@QBSBNT "EECZFCVHJOZPVSDPEFXIFSFZPVEMJLFUPBEEBCSFBLQPJOU 3VOZPVSQSPHSBN 1SPHSBNXJMMTUPQBOE XFDBOSVODPEFGSPN DPOTPMFBUUIJTQPJOU 4UPQ‎ $POTPMF‎ $IFDLPODPOTPMF CZFCVHJTBHFNXSJUUFOJO(FNpMFCZEFGBVMU HSPVQEFWFMPQNFOU UFTUEP HFNCZFCVH FOE
  33. $IFDLJOHEBUBXJUICZFCVH 4UPQ‎ $IFDL!CPPL OFYU PS ODPNNBOE SVOBDPEF MJOF $IFDLCPPL@QBSBNT O‑

    CPPL@QBSBNTJTXSPOH !CPPL#PPLOFX CPPL@QBSBNT !CPPLJTXSPOH
  34. $IFDLJOHEBUBXJUICZFCVH TUFQPSTDPNNBOESVOBDPEFMJOFBOEEJWFJOUPJOOFSNFUIPE DMBTT#PPLT$POUSPMMFS  "QQMJDBUJPO$POUSPMMFS ʜ EFGCPPL@QBSBNT QBSBNTSFRVJSF CPPL QFSNJU

    UJUMF NFNP  FOE $PSSFDU NFNPJTMBDLJOHJOTUSPOHQBSBNFUFS 'JYUIFDPEF
  35. 8FC4FSWFS #SPXTFS 3FTQPOTF )5.- 3BJMT"QQ 3PVUFT $POUSPMMFS 'PSNCBTJDT 63-IUUQMPDBMIPTUCPPLT )551NFUIPEɿ1045

    1BSBNFUFST 'PSNEBUB ɿ CPPL<UJUMF>๘ຶ޾运૲ CPPL<NFNP>)POFZBOEDMPWFS 3FRVFTUJOGP 3FRVFTU ˒DIFDLQPJOU ˒DIFDLQPJOU ˒DIFDLQPJOU0, 7JFX
  36. EFCVHIFMQFS "OEUIFSFJTBOPUIFSVTFGVMUPPMJOWJFX EFCVHQBSBNT CVJMUJOQSJOUJOHUPPMJOWJFX EFCVH!CPPL BQQWJFXTCPPLTTIPXIUNMFSC

  37. GPPUOPUFT (FNpMF HSPVQEFWFMPQNFOU UFTUEP HFNSBJMTGPPUOPUFT d FOE IUUQTHJUIVCDPNKPTFWBMJNSBJMTGPPUOPUFT SBJMTHFOFSBUFSBJMT@GPPUOPUFTJOTUBMM 3VOUIJTDPNNBOE

    %JTQMBZJOHVTFGVMJOGPSNBUJPOJOWJFXT %JTQMBZJOHQBSBNTBOETPNFJOGPSNBUJPOTBUUIFCPUUPN )PXUPVTF
  38. GPPUOPUFT %JTQMBZJOHJOGPSNBUJPO 1BSBNT 4FTTJPO 2VFSJFT 8FDBODIFDLRVFSZTUBUFNFOUTBOETQFFET

  39. GPPUOPUFT $MJDLl$POUSPMMFSzPSl7JFXzMJOL FEJUPSPQFOTPVSDFpMFPGUIJTQBHF :PVDBOTFUFEJUPSTGPS.BD7JNBOE4VCMJNF5FYU $IFDLJUPOUIFHJUIVCQBHF IUUQTHJUIVCDPNKPTFWBMJNSBJMTGPPUOPUFT %FGBVMUFEJUPSJT5FYU.BUF *GZPVVTFPUIFSFEJUPS ZPVDBOTFUZPVSTFUUJOH 5IFTFUUJOHpMFJTDPOpHJOJUJBMJ[FSTSBJMT@GPPUOPUFTSC

    GQSFpYFNBDTPQFO VSMpMFTMJOFEDPMVNOE ˞8FOFFEFNBDTIBOEMFSIUUQTHJUIVCDPNUZQFTUFSFNBDTIBOEMFS &YBNQMFDBTFGPS&NBDT
  40. 8FC4FSWFS #SPXTFS 3FTQPOTF )5.- 3BJMT"QQ 3PVUFT $POUSPMMFS 7JFX 63-IUUQMPDBMIPTUCPPLT )551NFUIPEɿ1045

    1BSBNFUFST 'PSNEBUB ɿ CPPL<UJUMF>๘ຶ޾运૲ CPPL<NFNP>)POFZBOEDMPWFS 3FRVFTUJOGP 3FRVFTU ˒DIFDLQPJOU ˒DIFDLQPJOU ˒DIFDLQPJOU 'PSNCBTJDT $ISPNFEFWUPPMT MPHHFS CZFCVH GPPUOPUFT
  41. 0UIFSVTFGVMUPPMT

  42. H (FNpMF HSPVQEFWFMPQNFOU UFTUEP HFNH HFNUFSNJOBMOPUJpFS FOE IUUQTHJUIVCDPNKVHZPH .BD UFSNJOBMOPUJpFSHFN

    -JOVYPS8JO SVCZ@HOUQHFN HIFMMPXPSME HQBSBNT<CPPL> QSJOUUPPMPOOPUJpDBUJPOMJLFlQz
  43. H QSPUJQT CFGPSF@BDUJPO\H\TFMGDMBTTOBNF^\BDUJPO@OBNF^^ BQQDPOUSPMMFSTBQQMJDBUJPO@DPOUSPMMFSSC %JTQMBZJOHDPOUSPMMFSBOEBDUJPOOBNFBUBDDFTT .BDMPPLJOHIJTUPSJFT JO/PUJpDBUJPO$FOUFS

  44. H%FNP

  45. 3BJMTDPOTPMF

  46. 3BJMTDPOTPMF -FU`TEFDPSBUFJU SVOBOZ3BJMTDPEFTPOUFSNJOBM SBJMTD

  47. 3BJMTDPOTPMFEFDPSBUJPO HSPVQEFWFMPQNFOU UFTUEP HFNQSZSBJMT HFNBXFTPNF@QSJOU FOE QSZSBJMTIUUQTHJUIVCDPNSXFOHQSZSBJMT BXFTPNF@QSJOUIUUQTHJUIVCDPNNJDIBFMEWBXFTPNF@QSJOU (FNpMF dQSZSD

    SFRVJSFBXFTPNF@QSJOU "XFTPNF1SJOUQSZ QSZSBJMTSFQMBDFJSCUPQSZBTSBJMTDPOTPMFQSZJTCFUUFSJSC .PSFQSFUUZQSJOU QQ QSZJTVTFEJOTUFBEPGJSC
  48. QSZSBJMT BXFTPNFQSJOU

  49. CZFCVHEFDPSBUJPO HSPVQEFWFMPQNFOU UFTUEP HFNCZFCVH HFNQSZCZFCVH HFNBXFTPNF@QSJOU FOE EFGDSFBUF CJOEJOHQSZ !CPPL#PPLOFX

    CPPL@QBSBNT   FOE %FDPSBUFEFCVHHFSXJUIQSZCZFCVH CPPLT@DPOUSPMMFSSC (FNpMF 6TJOHCJOEJOHQSZJOTUFBEPGCZFCVH QSZCZFCVHBEET TUFQ OFYU pOJTIBOEDPOUJOVFDPNNBOET BOECSFBLQPJOUTUP1SZVTJOHCZFCVH SBJMTTFSWFSUFSNJOBM
  50. )5514

  51. UPOOFMT 8FDBOUFTUSBJMTBQQCPUIIUUQIUUQTJOMPDBMIPTU 6TFGVMHFNGPSQPSUGPSXBSEJOH HFNJUVOOFMT IUUQTHJUIVCDPNKVHZPUVOOFMT *OTUBMM 3VO TVEPUVOOFMT 3VOSBJMTTFSWFSBTVTVBMPOBOPUIFSUFSNJOBM SBJMTT

    $BOBDDFTTCPUIIUUQTIUUQ IUUQTMPDBMIPTUCPPLT )5514 IUUQMPDBMIPTUCPPLT )551
  52. .BJM

  53. .BJMCBTJDT $BOQSFWJFXFNBJMXJUI3BJMTEFGBVMUUPPMT DMBTT&YBNQMF.BJMFS"QQMJDBUJPO.BJMFS EFGBVMUGSPNGSPN!FYBNQMFDPN EFGIFMMP NBJM UPUP!FYBNQMFDPN TVCKFDU4BNQMF&NBJM  FOE

    FOE $PNNBOEUPHFOFSBUF"DUJPO.BJMFSDIJMEDMBTT SBJMTHNBJMFSFYBNQMF@NBJMFS BQQNBJMFSTFYBNQMF@NBJMFSSC BQQWJFXTFYBNQMF@NBJMFSIFMMPIUNMFSC )FMMPXPSME UFTUNBJMFSTQSFWJFXTFYBNQMF@NBJMFS@QSFWJFXSC 1SFWJFXBMMFNBJMTBUIUUQMPDBMIPTUSBJMTNBJMFST FYBNQMF@NBJMFS DMBTT&YBNQMF.BJMFS1SFWJFX"DUJPO.BJMFS1SFWJFX EFGIFMMP@QSFWJFX &YBNQMF.BJMFSIFMMP FOE FOE IUUQMPDBMIPTUSBJMTNBJMFST FYBNQMF@NBJMFSIFMMP@QSFWJFX $BOQSFWJFXPOCSPXTFS .BJMJOHDPEFTBOEUFYU $PEFTGPS1SFWJFX
  54. .BJMCBTJDT 8FDBODIFDLNBJMTFOEJOHSFTVMUTJOMPHpMF 5IFMPHJTXSJUUFOXIFONBJMJTTFOU MPHEFWFMPQNFOUMPH &YBNQMF.BJMFSIFMMPEFMJWFS@OPX 4FOEBNBJMDPEF $BOCFGPVOEJOMPHpMF

  55. MFUUFSPQFOFS IUUQTHJUIVCDPNSZBOCMFUUFS@PQFOFS $IFDLJOHNBJMPOCSPXTFS HSPVQEFWFMPQNFOUEP HFNMFUUFS@PQFOFS FOE 3BJMTBQQMJDBUJPODPOpHVSFEP DPOpHBDUJPO@NBJMFSEFMJWFSZ@NFUIPEMFUUFS@PQFOFS FOE DPOpHFOWJSPONFOUTEFWFMPQNFOUSC

    (FNpMF 8IFONBJMIBTTFOU PQFOPUIFSCSPXTFSUBCBOETIPXUIFNBJM $IFDLJOHNBJMPOCSPXTFSXJUIMFUUFSPQFOFSHFN
  56. 4VNNBSZ

  57. *OUSPEVDFE5PPMT w8FCDPOTPMF w$ISPNF%FWFMPQFSUPPMT wCZFCVH wGPPUOPUFT wH wQSZSBJMT wBXFTPNFQSJOU wUPOOFMT wMFUUFSPQFOFS

    IUUQTHJUIVCDPNJHBJHBEFCVH@CBTJDT@BQQ 4BNQMFBQQ
  58. BUUPCF/:PGpDFIUUQTXXXqJDLSDPNQIPUPTBTPOBT ༗ݶެ࢘TQJDFMJGF

  59. UNJY 3BJMT

  60. .BLJOH$VTUPNJ[F5TIJSU

  61. 'JOBMMZ

  62. None
  63. ޒेཛྷ๜໌ ,VOJBLJ*("3"4)* TQJDFMJGF *OD$50 HJUIVCJHBJHB UXJUUFSJHBJHB GBDFCPPLLVOJBLJJHBSBTIJ ࣼ≾∄⚉ ۋ⇖նࡅ

  64. None