Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ruby06

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 ruby06

Avatar for MATSUOKA Kohei

MATSUOKA Kohei

May 14, 2014
Tweet

More Decks by MATSUOKA Kohei

Other Decks in Technology

Transcript

  1. ϓϩάϥϜͷେཁૉ  ৚݅൑அ JG VOMFTT ܁Γฦ͠ XIJMF MPPQ ഑ྻ "SSBZ

     ϋογϡ )BTI ੍ޚߏ଄ σʔλߏ଄ w ੍ޚߏ଄ͱσʔλߏ଄Λ࢖͑Ε͹ɺ͋Δఔ౓ͷ
 ϓϩάϥϜΛॻ͚ΔΑ͏ʹͳΓ·͢ w ഑ྻͱϋογϡ͸ɺΑ͘࢖ΘΕΔσʔλߏ଄Ͱ͢
  2. ϋογϡ )BTI ͷ֓೦ਤ w ϋογϡ͸Ωʔͱ஋ͷϖΞͰσʔλΛѻ͏ BEESFTT\OBNF)*30 BHF  NBJMIJSP!FYBNQMFDPN^ OBNF

    )*30 ڭՊॻQਤ΋ࢀর BEESFTT ม਺ )BTIΦϒδΣΫτ 4USJOH BHF NBJM  'JYOVN Ωʔ ஋ IJSP!FYBNQ MFDPN 4USJOH ͜ͷίϩϯʢɿʣͰ࢝·Δ จࣈྻ͸ͳΜͰ͠ΐ͏ʁ 
  3. ಛఆͷ஋Λࢀর͢Δ <>ͰΩʔΛࢦఆ͢Δ͜ͱͰɺಛఆͷ஋Λࢀর  OBNF )*30 BEESFTT BHF NBJM )BTIΦϒδΣΫτ 

    Ωʔ ஋ IJSP!FYBNQMF DPN ม਺ BEESFTT\OBNF)*30 BHF  NBJMIJSP!FYBNQMFDPN^ QBEESFTT<OBNF> BEESFTT<OBNF> BEESFTT<BHF> BEESFTT<NBJM>
  4. ࢖͍ํ·ͱΊ  ࢖͍ํ "SSBZ )BTI ॳظԽ JUFNT<POF UXP> BHFOU\ OBNF4NJUI

     BHF^ ௥Ճ JUFNTQVTIUISFF JUFNTGPVS BHFOU<NBJM> N!FYBNQMFDPN ܁Γฦ͠ JUFNTFBDIEPcJUFNc QVUTJUFN FOE BHFOUFBDIEPcLFZ WBMVFc QVUT\LFZ^\WBMVF^ FOE ಛఆཁૉ ͷࢀর JUFNT<> UXP BHFOU<OBNF> 4NJUI
  5. ഑ྻ "SSBZ ͷԋशղ౴ TVN OVNCFST<  > OVNCFSTFBDIEPcOVNCFSc TVNTVN OVNCFS

    FOE QVUT߹ܭ\TVN^ B഑ྻ<  >ͷશཁૉΛՃ͑ͨ݁ՌΛදࣔ͢Δ ίʔυΛॻ͍͍ͯͩ͘͞ɻ ώϯτ͋Δม਺ʹ਺/Λ଍͢ͷ͸YY /Ͱ͢ɻ͜Ε͸Y /ͱ΋ॻ͚·͢ɻ 
  6. ్தܦաΛදࣔ͢Δͱ ϓϩάϥϜͷಈ͖͕෼͔Γ·͢  OVNCFST<  > TVN OVNCFSTFBDIEPcOVNCFSc  QVUTTVN\TVN^

     OVNCFS\OVNCFS^  TVNTVN OVNCFS FOE QVUT߹ܭ\TVN^ ݁Ռ TVN OVNCFS ! TVN OVNCFS ! TVN OVNCFS ! ߹ܭ
  7. ղੳྫ ೔ ࣌ͷ݁Ռ  ϝΠϯϖʔδWJFXT ಛผ3BOEPNWJFXT υϩγʔɾϗδΩϯWJFXT ಛผ͓·͔ͤදࣔWJFXT ϰΟΫτϦΞ@ ΠΪϦεঁԦ

    WJFXT ౦৿ඒ࿨WJFXT ߥ໦ଜॏWJFXT ޻౻੩߳WJFXT ੢ౡलढ़WJFXT ػಈઓ࢜ΨϯμϜ6$WJFXT ࠇా޹ߴWJFXT ۃࠇͷϒϦϡϯώϧσWJFXT ԬాΕ͑ͳWJFXT ຐ๏Պߴߍͷྼ౳ੜWJFXT μ΢ϯτϯɾΞϏʔ@ʙو଒ͱϝΠυͱ૬ ଓਓʙWJFXT ϧʔζϰΣϧτɾήʔϜWJFXT ੢మόεδϟοΫࣄ݅WJFXT ൴ঁ͕ϑϥάΛ͓ΒΕͨΒWJFXT খࣉ੓৬WJFXT ҰिؒϑϨϯζɻWJFXT ͪΐ͏ͲେՏυϥϚʢ#4์ૹʣͷ࣌ؒଳͰͨ͠
  8. ΞΫηε਺σʔλͷத਎ FOCJBTFE@TBNQMF FOCJCCZ FOCJCFSOBUF FOCJCMF@ XSJUJOH  FOCJCMF@(SPWF FOCJCMJDBM@IFCSFX@QIPOPMPHZ FOCJCPVM

    FOCJCPX FOCJDBOF FOCJDIFSOBZ FOCJDJDMFUUBBQFEBMBUBBTTJTUJUB FOCJDLFSJOH FOCJDPSOVBUFVUFSVT FOCJDZDMF FOCJDZDMF@EBZ FOCJEGBSFXFMM  ͍ͬͯ͏σʔλ͕ ສߦ ೥݄࣌఺ 
  9. ϑΝΠϧΛಡΉ४උ w ͍͖ͳΓϑΝΠϧͷத਎ΛಡΉ͜ͱ͸Ͱ͖·ͤΜ w த਎ΛಡΉ४උΛ͢Δ͜ͱΛɺʮϑΝΠϧΛ։͘ʯͱ ͍͍·͢  ϑΝΠϧ ϓϩάϥϜ ϑΝΠϧΛ։͘

    ϑΝΠϧΛด͡Δ த਎ΛಡΉ ಡΈऴ͑ͨ͋ͱ͸ɺʮϑΝΠϧΛด͡ʯ·͢ ด͡ͳ͍ͱɺଞͷϓϩάϥϜ͕ಉ͡ϑΝΠϧΛ։͚ͳ͍৔߹͕͋Γ·͢ɻ
  10. ϑΝΠϧΛ։͘ PQFO TBNQMFUYU EPcpMFc ߦಡΈࠐΜͰը໘ʹදࣔ QVUTpMFHFUT ͜͜ͰϑΝΠϧ͕ด͡ΒΕΔ FOE ! ดͨ͋͡ͱͷϑΝΠϧ͸ಡΊͳ͍

    pMFHFUT ϑΝΠϧΛ։͘ ϑΝΠϧΛ։͘ʹ͸PQFOϝιουΛ࢖͍·͢ɻ
 ϒϩοΫΛൈ͚ΔͱɺϑΝΠϧ͸ࣗಈతʹด͡ΒΕ ·͢ɻ TBNQMFUYU ϑΝΠϧΛด͡Δ 
  11. த਎ΛಡΉʢߦʣ  PQFO TBNQMFUYU EPcpMFc ߦಡΈࠐΜͰը໘ʹදࣔ QVUTpMFHFUT ͜͜ͰϑΝΠϧ͕ด͡ΒΕΔ FOE ϑΝΠϧ͔Βߦ෼ͷจࣈྻΛಡΈࠐΉʹ͸


    HFUTϝιουΛ࢖͍·͢ TBNQMFUYU த਎ΛಡΈࠐΉ ˞ ߨٛୈ̏ճʢ#.*ܭࢉʣͰHFUTϝιουΛ࢖ͬͯ
 ΩʔϘʔυ͔Β̍ߦಡΈࠐΜͩͷͱಉ͡Ͱ͢
  12. த਎ΛಡΉ ෳ਺ߦ FBDIϝιουΛ࢖͏ͱɺϑΝΠϧͷத਎Λ
 ߦͣͭॱ൪ʹಡΈࠐΊ·͢ɻ഑ྻͱಉ͡Ͱ͢Ͷɻ  PQFO TBNQMFUYU EPcpMFc ߦͣͭ܁Γฦ͠ pMFFBDIEPcMJOFc

    QVUTMJOF FOE FOE ສߦͷϑΝΠϧͳΒ ສճ܁Γฦ͢ OVNT<  > OVNTFBDIEPcOVNc QVUTOVN FOE ࢀߟ഑ྻͷ܁Γฦ͠ IUUQEPDTSVCZMBOHPSHKBDMBTT&OVNFSBCMFIUNM ʲ্ڃʳϑΝΠϧ΋NBQ΍JOKFDUͳͲͷศརϝιου͕࢖͑·͢
  13. ೔ຊޠσʔλ͚ͩΛநग़ w ϑΝΠϧʹ͸શੈ քͷΞΫηε਺͕ ه࿥͞Ε͍ͯΔ w ೔ຊޠσʔλ͚ͩ Λൈ͖ग़͍ͨ͠ w ೔ຊޠσʔλ͸KB

    Ͱ࢝·Δߦ  FONJDIBFM@LJSCZ@ KVEHF  FONPPSFT@MBX FOOFX@KFSTFZ ɹɿ KB-J4" KB.0;6 KB.BZ@+ KB0/&@1*&$& KB4&,"*@/0@08"3* ɹɿ SV'BJSZ@5BJM SV(PPHMF SV(SBOE@5IFGU@"VUP@7 ɹɿ VL&NJOFN VL(PPHMF VL-PSEJ TBNQMFUYU
  14. JGMJOFNBUDI ?KB  PQFO TBNQMFUYU EPcpMFc pMFFBDIEPcMJOFc JGMJOFNBUDI ?KB 

    ઌ಄͕KBͰ࢝·ΔߦͷΈදࣔ QVUTMJOF FOE FOE FOE ઌ಄͕KBͰ࢝·Δߦ͔Ͳ͏͔Λ൑ఆɻ NBUDI͸จࣈྻ͕ύλʔϯʹҰக͢Δ͔Λௐ΂Δϝιουɻ ?KB͸ύλʔϯΛද͢ਖ਼نදݱͱ͍͏࢓૊ΈͰ͢ɻ JGMJOFd?KB ͷΑ͏ʹԋࢉࢠΛ࢖ͬͯ ॻ͘͜ͱ΋Ͱ͖·͢ɻ ࢲ͸NBUDIϝιουͷํ͕ ಡΈ΍ͯ͘͢޷͖Ͱ͢ɻ
  15. TQMJUϝιουͰ෼ׂ  KB.BZ@+ 4USJOH "SSBZ .BZ@+   KB TQMJU

    EBUBMJOFTQMJU MJOF EBUB TQMJU͸จࣈྻΛۭനจࣈͰ෼ׂ͠ɺ഑ྻʹม׵͠·͢
  16. ϋογϡͰ·ͱΊͯ؅ཧ  .BZ@+  Ωʔ ஋  )BTI KB.BZ@+ 4USJOH

    MBOH KB DPVOU UJUMF TJ[F EBUBMJOFTQMJU QBHF\ MBOHEBUB<>  UJUMFEBUB<>  DPVOUEBUB<>UP@J  TJ[FEBUB<>UP@J^ 4USJOH 4USJOH 'JYOVN 'JYOVN "SSBZ .BZ@+   KB TQMJU MJOF EBUB QBHF ਺ࣈͱͯ͠ѻ͍͍ͨ݅਺ ͱ༰ྔ͸UP@JϝιουͰ ੔਺ʹม׵
  17. ϋογϡͷ഑ྻ  QBHFT<> PQFO TBNQMFUYU EPcpMFc pMFFBDIEPcMJOFc JGMJOFNBUDI ?KB 

    EBUBMJOFTQMJU QBHF\ MBOHEBUB<>  UJUMFEBUB<>  DPVOUEBUB<>UP@J  TJ[FEBUB<>UP@J^ QBHFTQBHF FOE FOE FOE ۭͷ഑ྻΛ࡞੒ ഑ྻʹϋογϡΛ ௥Ճ ϋογϡΛ࡞੒
  18. ϋογϡͷ഑ྻͰอଘ w ϖʔδ݅෼ͷσʔλΛϋογϡʹม׵ w ϋογϡΛ഑ྻʹ௥Ճͯ͠ʢϝϞϦ্ʹʣอଘ UJUMF-J4"  DPVOU ɹ KB-J4"

    KB.0;6 KB.BZ@+ ɿ "SSBZ )BTI 'JMF TBNQMFUYU UJUMF.0;6  DPVOU UJUMF.BZ@+  DPVOU  
  19. QQͰ഑ྻͷத਎Λදࣔ  SFRVJSFQQ ! QBHFT<> PQFO TBNQMFUYU EPcpMFc pMFFBDIEPcMJOFc JGMJOFNBUDI

    ?KB  EBUBMJOFTQMJU QBHF\ MBOHEBUB<>  UJUMFEBUB<>  DPVOUEBUB<>UP@J  TJ[FEBUB<>UP@J^ QBHFTQBHF FOE FOE FOE QQQBHFT ࣮ߦ݁Ռɹɹ <\MBOHKB UJUMF&"& DPVOU TJ[F^  \MBOHKB  UJUMF)6/5&3$)6/5&3&"&&## &"#&#"#"&"  DPVOU  TJ[F^  \MBOHKB UJUMF,JO,J DPVOU TJ[F^  \MBOHKB UJUMF-J4" DPVOU TJ[F^  \MBOHKB UJUMF.0;6 DPVOU TJ[F^  \MBOHKB UJUMF.BZ@+ DPVOU TJ[F^  \MBOHKB UJUMF0/&@1*&$& DPVOU TJ[F^  \MBOHKB UJUMF4&,"*@/0@08"3* DPVOU TJ[F^ \MBOHKB UJUMF4LF DPVOU TJ[F^  \MBOHKB UJUMF8*9044 DPVOU TJ[F^> จࣈԽ͚ʁ ʢղফ͸͋ͱͷԋशͰʣ
  20. QͱQQͷҧ͍  <\MBOHKB UJUMFͷ DPVOU TJ[F^ \MBOHKB UJUMF΋΋ ͍ΖΫϩʔόʔ; DPVOU

    TJ[F^ \MBOHKB UJUMFೋ֊ಊ;Έ  DPVOU TJ[F^ \MBOHKB UJUMFҪށ઒ࠀོ DPVOU  TJ[F^ \MBOHKB UJUMFѥཬࠫ  DPVOU TJ[F^ \MBOHKB UJUMFԾ໘ϥΠμʔ <\MBOHKB UJUMFͷ DPVOU TJ[F^  \MBOHKB UJUMF΋΋͍ΖΫϩʔόʔ; DPVOU TJ[F^  \MBOHKB UJUMFೋ֊ಊ;Έ DPVOU TJ[F^  \MBOHKB UJUMFҪށ઒ࠀོ DPVOU TJ[F^  \MBOHKB UJUMFѥཬࠫ DPVOU TJ[F^  \MBOHKB UJUMFԾ໘ϥΠμʔ֙෢ DPVOU TJ[F^  \MBOHKB UJUMF೔ຊ DPVOU TJ[F^  QϝιουʢҰߦʹͣΒʔʔͱฒͿʣ QQϝιουʢ៉ྷʹ੔ܗͯ͘͠ΕΔʣ
  21. ࠓ೔ͷ·ͱΊͷԋश C8JLJQFEJBͷΞΫηε ਺ TBNQMFUYU Λղੳ͢Δ ίʔυΛ࣮ߦ͍ͯͩ͘͠͞ɻ SFRVJSFQQ ! QBHFT<> PQFO

    TBNQMFUYU EPcpMFc pMFFBDIEPcMJOFc JGMJOFNBUDI ?KB  EBUBMJOFTQMJU QBHF\ MBOHEBUB<>  UJUMFEBUB<>  DPVOUEBUB<>UP@J  TJ[FEBUB<>UP@J^ QBHFTQBHF FOE FOE FOE QQQBHFT 
  22. ࠓ೔ͷ·ͱΊͷԋश  CݩͷίʔυͰ͸೔ຊޠ ϖʔδ໊͕ਖ਼͘͠දࣔ͞Ε ·ͤΜɻʮ9999ʯ ͱ͍͏จࣈྻ͕දࣔ͞Ε· ͢ɻ ! ೔ຊޠϖʔδ໊͕දࣔ͞Ε ΔΑ͏ɺݩͷίʔυΛमਖ਼

    ͍ͯͩ͘͠͞ɻ ʢώϯτ͸࣍ϖʔδʣ \MBOHKB  UJUMF)6/5&3$)6/5&3 &"&&## &"#&#"#" &"  DPVOU  TJ[F^  \MBOHKB  UJUMF)6/5&3ʷ)6/5&3ͷొ৔ਓ෺  DPVOU  TJ[F^
  23. ্ڃԋश w ϑΝΠϧ΋഑ྻͱಉ͡ Α͏ʹ܁Γฦ͠ͷศར ϝιου͕࢖͑·͢ɻ w ೔ຊޠσʔλͷߦͷΈ Λର৅ʹ͢ΔίʔυΛɺ FBDIͱJGΛ࢖Θͣʹ ศརϝιουͰॻ͖ͳ

    ͓ͯ͠Έ·͠ΐ͏ɻ  QBHFT<> PQFO TBNQMFUYU EPcpMFc pMFFBDIEPcMJOFc JGMJOFNBUDI ?KB  ߦಡΈࠐΉॲཧ FOE FOE FOE ώϯτɿ'JMF͸"SSBZͱಉ͘͡FOVNFSBCMFϞδϡʔϧͷϝιου΋࢖͑·͢ɻ IUUQNJZBNBFHJUIVCJPSVCZEPDKBDMBTTFOVNFSBCMFIUNM