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

Software Development

Software Development

Eabad423977cfc6873b8f5df62b848a6?s=128

SHIBATA Hiroshi

May 14, 2019
Tweet

Transcript

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

  2. Hiroshi SHIBATA @hsbt https://www.hsbt.org Executive Officer VP of Engineering Technical

    Director at GMO Pepabo, Inc. @pepabo
  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”], }
  4. ιϑτ΢ΣΞͬͯͳΜͰ͔͢  ࣗ༝هड़෼

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

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

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

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

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

    ! MOV AL, 61h wߴڃݴޠ $ɺ'PSUSBOɺFUDʜ Ͱ͸ΑΓந৅Խ͞Ε͍ͯΔ for(i=0; i<10; i++); … w೥ݱ୅Ͱ͸ʜ 10.times{…}
  10. σʔλͷந৅Խ wྫ࡞ՈNJOOFͷར༻ऀ೔ຊࡏॅͷਓਓ wͲͷந৅ϨΠϠʔΛιϑτ΢ΣΞͱ࣮ͯ͠ݱ͢Δ͔ʹΑͬͯɺιϑτ΢ΣΞͷ ෳࡶ౓͕ҟͳΔ wந৅ϨΠϠʔΛ্͛Δ΄Ͳιϑτ΢ΣΞͱͯ͠ߟྀ͢΂͖ࣄ৅͕૿͑ΔͨΊɺ ιϑτ΢ΣΞͱͯ͠ਓͱਓ͕Πϝʔδ͍ͯ͠Δࣄ৅ʹԊͬͨσʔλΛݕ౼͢Δ ඞཁ͕͋Δ

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

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

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

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

  15. ඼࣭޻ֶͱ͸Կ͔ wl։ൃɾઃܭஈ֊ͷ඼࣭޻ֶzʹΑΔఆٛ ඼࣭  ػೳͷ͹Β͖ͭʹΑΔଛࣦ ࢖༻ίετ ฐ֐߲໨ʹΑΔଛࣦ  wཧ૝ػೳͷ͹Β͖ͭʹΑΔଛࣦ ਓʹΑΔՁ஋ج४͸ਓʹΑͬͯҟͳΔͨΊɺ඼࣭ͱ͍͏΋ͷΛ޻ֶͱͯ͠ѻ͏

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

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

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

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

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

  21. ·ͱΊ wιϑτ΢ΣΞ͸ΈΜͳͷ৺ͷதʹ͋Δ w඼࣭͸ςετʹΑͬͯಘΒΕΔ΋ͷͰ͸ͳࣗ͘෼͕ͨͪ࡞ΓࠐΉ΋ͷ wࣗ෼͕࡞͍ͬͯΔ΋ͷͷ඼࣭͸Կ͔Λҙࣝ͢Δ ౰ͨΓલ඼࣭ͱັྗత඼࣭  wͦ΋ͦ΋ιϑτ΢ΣΞ։ൃ͸೉͍͠ w೉͍͠ͷΛཧղ্ͨ͠ͰΑΓྑ͍ιϑτ΢ΣΞΛੜΈग़ͨ͢ΊʹؤுΓ·͠ΐ ͏