$30 off During Our Annual Pro Sale. View Details »

Software Development

Software Development

SHIBATA Hiroshi

May 14, 2019
Tweet

More Decks by SHIBATA Hiroshi

Other Decks in Technology

Transcript

  1. ιϑτ΢ΣΞ͸৺ͷதʹ
    ࣲాതࢤ(.01&1"#0JOD
    ৽ଔݚम࠲ֶ
    ιϑτ΢ΣΞ։ൃ

    View Slide

  2. Hiroshi SHIBATA @hsbt
    https://www.hsbt.org
    Executive Officer VP of Engineering
    Technical Director
    at GMO Pepabo, Inc. @pepabo

    View Slide

  3. self.introduce
    => {
    name: “SHIBATA Hiroshi”,
    nickname: “hsbt”,
    organizations: [“ruby”, “rubygems”, “asakusarb”, “pepabo”, …],
    commit_bits: [“ruby”, “rake”, “rubygems”, “bundler”, “rdoc”,
    “psych”, “ruby-build”, “railsgirls”, “railsgirls-jp”, …],
    sites: [“hsbt.org”, “ruby-lang.org”, “rubyci.org”, “railsgirls.com”,
    “railsgirls.jp”],
    }

    View Slide

  4. ιϑτ΢ΣΞͬͯͳΜͰ͔͢
    ࣗ༝هड़෼

    View Slide

  5. ιϑτ΢ΣΞ͸Ͳ͜ʹ͋Δͷ͔
    wιϑτ΢ΣΞ͸ਓʑͷ৺ͷதʹ͋
    Δ
    wιϑτ΢ΣΞ͸ਓʑͷίϛϡχ
    έʔγϣϯͷதʹ͋Δ
    ʰεΫϥϜ࣮ફೖ໳ʱٕज़ධ࿦ࣾɺ2016೥ɺp.10

    View Slide

  6. lιϑτz΢ΣΞ
    “ࢲ͸ɺιϑτ΢ΣΞߏஙʹ͓͍ͯࠔ೉ͳ෦෼͸ɺ͜ͷ
    ֓೦ߏ଄ମͷ࢓༷࡞੒ͱσβΠϯ͓Αͼςετʹ͋ͬ
    ͯɺͦΕΛදݱ͢Δ࢓ࣄ΍ͦͷදݱʹ஧࣮͔൱͔Λς
    ετ͢Δ࢓ࣄͰ͸ͳ͍ͱߟ͍͑ͯΔɻ”
    ʰਓ݄ͷਆ࿩ʲ৽૷൛ʳʱؙળग़൛ɺ2014೥ɺp.170

    View Slide

  7. ͋ΒΏΔιϑτ΢ΣΞ͕ਓͱਓͱͷର࿩Λ࣋ͭ
    wࣗ෼޲͚ͷιϑτ΢ΣΞˠ։ൃऀࣗ෼ར༻ऀࣗ෼
    wಛఆͷ૊৫͔ΒͷཁٻΛղܾ͢Διϑτ΢ΣΞˠ։ൃऀ։ൃνʔϜ·ͨ͸ࣗ
    ෼ݸਓར༻ऀಛఆͷ૊৫ʹॴଐ͍ͯ͠Δਓʑ
    wෆಛఆͷ૊৫ʹ޲͚ͨιϑτ΢ΣΞˠ։ൃऀ։ൃνʔϜ·ͨ͸ࣗ෼ݸਓར
    ༻ऀෆಛఆଟ਺

    View Slide

  8. ֓೦Խͱந৅Խ
    wιϑτ΢ΣΞ͕ਓͱਓͱΛհͯ͠ଘࡏ͢Δ֓೦্ͷଘࡏͰ͋Δ
    w֓೦্ͷଘࡏΛίϯϐϡʔλʹΑͬͯݱ࣮ͱͯ͠ಈ͔ͨ͢Ίʹ͸ɺෆཁͳ֓೦
    Λ࡟͗མͱ͢ந৅Խ͕ඞཁͰ͋Δ
    w੍ޚͷந৅Խ
    wσʔλͷந৅Խ

    View Slide

  9. ੍ޚͷந৅Խ
    wίϯϐϡʔλΛಈ͔ͨ͢Ίʹ͸ϝϞϦɺ$16ɺσΟεΫɺωοτϫʔΫͳͲΛ
    ػցޠʹΑͬͯهड़͢Δඞཁ͕͋Δ 8JLJQFEJBͷྫ

    10110000 01100001 ! B0 61 ! MOV AL, 61h
    wߴڃݴޠ $ɺ'PSUSBOɺFUDʜ
    Ͱ͸ΑΓந৅Խ͞Ε͍ͯΔ
    for(i=0; i<10; i++); …
    w೥ݱ୅Ͱ͸ʜ
    10.times{…}

    View Slide

  10. σʔλͷந৅Խ
    wྫ࡞ՈNJOOFͷར༻ऀ೔ຊࡏॅͷਓਓ
    wͲͷந৅ϨΠϠʔΛιϑτ΢ΣΞͱ࣮ͯ͠ݱ͢Δ͔ʹΑͬͯɺιϑτ΢ΣΞͷ
    ෳࡶ౓͕ҟͳΔ
    wந৅ϨΠϠʔΛ্͛Δ΄Ͳιϑτ΢ΣΞͱͯ͠ߟྀ͢΂͖ࣄ৅͕૿͑ΔͨΊɺ
    ιϑτ΢ΣΞͱͯ͠ਓͱਓ͕Πϝʔδ͍ͯ͠Δࣄ৅ʹԊͬͨσʔλΛݕ౼͢Δ
    ඞཁ͕͋Δ

    View Slide

  11. ιϑτ΢ΣΞ։ൃͷࠔ೉͞ʹཱͪ޲͔͏
    wιϑτ΢ΣΞύϥμΠϜ
    ˠߏ଄ԽϓϩάϥϛϯάɺΦϒδΣΫτࢦ޲ϓϩάϥϛϯάɺ($ɺܕਪ࿦ʜ
    wιϑτ΢ΣΞΞʔΩςΫνϟ
    ˠ(P'ͷσβΠϯύλʔϯɺ.7$ɺ.77.ɺ.JDSP4FSWJDFTʜ
    wιϑτ΢ΣΞ։ൃϓϩηε
    ˠ΢ΥʔλϑΥʔϧɺεύΠϥϧϞσϧɺ91ɺ4DSVNʜ

    View Slide

  12. ྑ͍ιϑτ΢ΣΞͬͯԿͩͱࢥ͍·͔͢
    ࣗ༝هड़෼

    View Slide

  13. γεςϜ޻ֶ
    wࣄ৅ΛΠϯϓοτɺܥ γεςϜ
    ɺΞ΢τϓοτͷࡾͭͰϞσϧԽ͢Δ
    wΠϯϓοτͱܥ͔Βੜ·ΕͨΞ΢τϓοτ͕ظ଴஋௨ΓͰ͋Δ͔Ͳ͏͔Λ඼࣭
    ͱݺͿ
    γεςϜ
    Πϯϓοτ Ξ΢τϓοτ

    View Slide

  14. ඼࣭ͱ͍͏ͷ͸ઈର஋Ͱ͸ͳ͘૬ର஋

    View Slide

  15. ඼࣭޻ֶͱ͸Կ͔
    wl։ൃɾઃܭஈ֊ͷ඼࣭޻ֶzʹΑΔఆٛ
    ඼࣭
    ػೳͷ͹Β͖ͭʹΑΔଛࣦ
    ࢖༻ίετ
    ฐ֐߲໨ʹΑΔଛࣦ

    wཧ૝ػೳͷ͹Β͖ͭʹΑΔଛࣦ
    ਓʹΑΔՁ஋ج४͸ਓʹΑͬͯҟͳΔͨΊɺ඼࣭ͱ͍͏΋ͷΛ޻ֶͱͯ͠ѻ͏
    ࣌ʹ͸ɺՁ஋ج४ʹরΒ͢ͷͰ͸ͳ͘ɺ࡞੒෺ͷཧ૝ػೳͱ࣮ࡍʹ༗͢Δػೳ
    ͱͷ͹Β͖ͭΛج४ͱ͢Δ

    View Slide

  16. ඼࣭޻ֶͷجຊతͳߟ͑ํ
    w։ൃઃܭஈ֊Ͱ඼࣭Λ࡞ΓࠐΉ
    ˠ੡଄ஈ֊Ͱ࡞ΓࠐΉ͔Βػೳͷ͹Β͖͕ͭൃੜ͢Δ
    wΑ͋͘Δޡղ
    ʮςετɾࢼݧͰ඼࣭޲্ʯ
    wςετͰΘ͔Δ͜ͱ͸࡞੒෺ͷ඼࣭͕Ͳͷఔ౓͔Ͱ͋Γɺ࡞੒෺ͦͷ΋ͷͷ඼
    ࣭͕มԽ͢ΔΘ͚Ͱ͸ͳ͍

    View Slide

  17. اըஈ֊ͷ඼࣭؅ཧ
    l඼࣭z͸Ϣʔβʔͷظ଴͢Δػೳͱ࣮ࡍʹఏڙ͍ͯ͠Δػೳͱͷဃ཭Ͱ͋Δ
    ߴ඼࣭
    wػೳͱཧ૝ػೳͱͷဃ཭ͷ͹Β͖͕ͭখ͍͜͞ͱ
    wϓϥεͷဃ཭͕ߴ͍͜ͱ͚͕ͩߴ඼࣭ͱ͸ݺ͹ͳ͍ ྫա৒඼࣭

    ௿඼࣭
    wػೳͱཧ૝ػೳͱͷဃ཭ͷ͹Β͖͕ͭେ͖͍͜ͱ
    wϚΠφεͷဃ཭͕େ͖͚Ε͹Ϣʔβʔͷຬ଍ײΛຬͨ͢͜ͱ͸Ͱ͖ͳ͍

    View Slide

  18. ౰ͨΓલ඼࣭ͱັྗత඼࣭
    ङ໺ ັྗత඼࣭ͱ౰ͨΓલ඼࣭
    ʹΑΔఆٛ
    ౰ͨΓલ඼࣭
    w඼࣭ج४Λຬͨ͞ͳ͍৔߹ɺϢʔβʔͷຬ଍౓Λ௿Լͤ͞ΔཁҼͱͳΔ͕ɺຬ
    ͍ͨͯͯ͠΋ຬ଍౓ͷ޲্͸ݟࠐΊͳ͍
    ັྗత඼࣭
    w඼࣭ج४Λຬͨͨ͠৔߹ɺϢʔβʔͷຬ଍౓Λ޲্ͤ͞ΔཁҼͱͳΔ͕ɺຬͨ
    ͯ͠ͳ͍৔߹Ͱ΋ຬ଍౓ʹ͸Өڹ͠ͳ͍

    View Slide

  19. εϚʔτϑΥϯͷ
    ౰ͨΓલ඼࣭ͱັྗత඼࣭Λߟ͑Α͏
    ࣗ༝هड़෼

    View Slide

  20. ౰ͨΓલ඼࣭ͱັྗత඼࣭
    IUUQTTJUFTHPPHMFDPNTJUFUFDIENCBLBOPNPEFM

    View Slide

  21. ·ͱΊ
    wιϑτ΢ΣΞ͸ΈΜͳͷ৺ͷதʹ͋Δ
    w඼࣭͸ςετʹΑͬͯಘΒΕΔ΋ͷͰ͸ͳࣗ͘෼͕ͨͪ࡞ΓࠐΉ΋ͷ
    wࣗ෼͕࡞͍ͬͯΔ΋ͷͷ඼࣭͸Կ͔Λҙࣝ͢Δ ౰ͨΓલ඼࣭ͱັྗత඼࣭

    wͦ΋ͦ΋ιϑτ΢ΣΞ։ൃ͸೉͍͠
    w೉͍͠ͷΛཧղ্ͨ͠ͰΑΓྑ͍ιϑτ΢ΣΞΛੜΈग़ͨ͢ΊʹؤுΓ·͠ΐ
    ͏

    View Slide