Slide 1

Slide 1 text

͸ͯͳʹ͓͚Δ ϓϩάϥϛϯάݴޠͷྺ࢙ ͱ͜Ε͔Β id:hakobe932

Slide 2

Slide 2 text

ࣗݾ঺հ ෬Ҫ ༸ฏ id:hakobe932 @hakobe νʔϑΤϯδχΞ
 ΞϓϦέʔγϣϯΤϯδχΞ

Slide 3

Slide 3 text

͸ͯͳϒϩά͸ͯͳϒοΫϚʔΫ .BDLFSFM͸ͯͳμΠΞϦʔ
 ͸ͯͳΩʔϫʔυ#,6."͸ͯͳελʔ ਓྗݕࡧ͸ͯͳ͸ͯͳϑΥτϥΠϑ
 ͏͝ϝϞ͸ͯͳ͸ͯͳίίϓϥοτϑΥʔϜ

Slide 4

Slide 4 text

͸ͯͳͷϓϩάϥϛϯάݴޠͱ͍͑͹? 1FSM͔ͳ

Slide 5

Slide 5 text

࣮ࡍͷ͸ͯͳͰͷ࠾༻ݴޠ

Slide 6

Slide 6 text

ࠓ೔ͷΞδΣϯμ ❖͸ͯͳͷϓϩάϥϛϯάݴޠ࠾༻ͷྺ࢙ • ֤ݴޠͷ࠾༻ͷܦҢͱධՁ ❖ϓϩάϥϛϯάݴޠબ୒ʹ͍ͭͯͷߟ͑ํ • બ୒ͷํ਑ͱ࠾༻ϓϩηε

Slide 7

Slide 7 text

͸ͯͳͷϓϩάϥϛϯάݴޠ ࠾༻ͷྺ࢙

Slide 8

Slide 8 text

ࠓ೔͸
 αʔόαΠυͷ࣮૷ݴޠ ͷ࿩Λ͠·͢ ϑϩϯτΤϯυͷ࿩͸͋ͱͰฉ͍͍ͯͩ͘͞ʂ

Slide 9

Slide 9 text

࠾༻೥ද • 2001೥ ૑ۀͱಉ࣌ʹPerlΛ࠾༻ • 2013೥ Mackerelͷ։ൃͰScalaͱGoΛ࠾༻ • 2015೥ ޿ࠂؔ࿈ϓϩμΫτͰPythonΛ࠾༻ ʙ 12೥ͷ͕࣌ྲྀΕΔ

Slide 10

Slide 10 text

1FSM

Slide 11

Slide 11 text

Perl ❖Web։ൃͷᴈ໌ظΛࢧ͑ͨεΫϦϓτݴޠ ❖೔ຊͷίϛϡχςΟ͕׆ൃ • YAPC::AsiaͳͲͷ఻આతΠϕϯτ΋ੜ·Εͨ ❖όʔδϣϯΞοϓ΋ܧଓͯ͠Δ ❖ISUCON্Ґ͸ৗʹPerlͩͬͨ࣌୅΋

Slide 12

Slide 12 text

͸ͯͳʹ͓͚ΔPerl ❖2001೥ʙ ❖࠾༻αʔϏε • ͸ͯͳϒϩά • δϟϯϓ+౳ϚϯΨܥ/ΧΫϤϜ • ͸ͯͳϒοΫϚʔΫ(BFFͱͯ͠) • ଞ΄ͱΜͲ͢΂ͯͷαʔϏε ❖جຊతʹಠࣗϑϨʔϜϫʔΫΛ࢖ͬͯ։ൃ

Slide 13

Slide 13 text

Perl ࠾༻ͷ͖͔͚ͬ ❖͸͡Ίʹ࢖ͬͨͷ͕Perlͩͬͨ • ౰࣌ͷWeb։ൃݴޠͱͯ͠੎͍͕͋ͬͨ • ߴ଎ʹࢼߦࡨޡ͠ͳ͕Β࢖͑Δݴޠͱͯ͠
 બ͹Εͨ ❖͸ͯͳ͸PerlίϛϡχςΟͷதͰҭͯͯ΋Βͬͨ

Slide 14

Slide 14 text

͸ͯͳΤϯδχΞͷݪ఺͚ͩͲ… ❖ڞ௨Ϟδϡʔϧ΍ڭҭ༻ࢿྉͳͲࢿݯ΋๛෋ ❖CPAN Author΍Perl͕޷͖ͳΤϯδχΞ͸ଟ͍ ❖৽ٕज़΁ͷ௥ैʹ՝୊ • JSON Schema/GraphQL/AWS Client ͋ͨΓͰۤ࿑ • ϥΠϒϥϦΛࣗ੡͢Δ͜ͱ΋ ❖৽͍͠ϓϩδΣΫτͰ͸ͦΜͳʹ࠾༻͞Εͳ͍͔΋..?

Slide 15

Slide 15 text

4DBMB

Slide 16

Slide 16 text

Scala ❖ߴػೳϚϧνύϥμΠϜͷJVMݴޠ ❖DDD౳ ۙ୅తΞʔΩςΫνϟΛදݱ͠΍͍͢ ❖Java༝དྷͷ๛෋ͳϥΠϒϥϦ ❖ίϛϡχςΟ΋׆ൃ

Slide 17

Slide 17 text

͸ͯͳʹ͓͚ΔScala ❖2013೥ʙ ❖࠾༻αʔϏε • Mackerel(αʔόαΠυ) • ͸ͯͳϒοΫϚʔΫ (ίΞ෦෼) • ͸ͯͳϒϩάͷ՝ۚγεςϜ ❖PlayFramework΍Scalatra + Slick

Slide 18

Slide 18 text

Scala ࠾༻ͷ͖͔͚ͬ ❖Mackerelͷ৽ن։ൃ • ৽ٕज़ͷಋೖͷ͠΍͢͞ • εΫϦϓτݴޠʹΑΔ։ൃͷେม͔͞Β͘Δ ੩తܕγεςϜ΁ͷಌΕ • ͋ΔΤϯδχΞͷHaskellॻ͖ͨ͗͢Δؾ࣋ ͕࣮ͪ݁ͨ͠ͱ΋ݴΘΕ͍ͯΔ

Slide 19

Slide 19 text

ෳࡶͳυϝΠϯΛର৅ͱ͢Δͱ͖ʹ࠾༻ ❖Mackerel΍͸ͯͳϒοΫϚʔΫͷϞσϧ͸ͱͯ΋ ෳࡶ ❖ߴػೳͳܕγεςϜ͕೉ղͳίʔυΛੜΉ͜ͱ΋ • ࣗ෼ͨͪͷίʔυͰ͋Ε͹஫ҙͰ͖Δ͕
 ϥΠϒϥϦίʔυΛಡΉ࣌ʹେม ❖ίϯύΠϧ࣌ؒ • ॲཧܥͷόʔδϣϯΞοϓͰߴ଎Խ͢Δ͜ͱ΋ʂ

Slide 20

Slide 20 text

@YAPC::Asia 2014 http://yapcasia.org/2014/talk/show/d557ddbe-fde4-11e3-b7e8-e4a96aeab6a4

Slide 21

Slide 21 text

(P

Slide 22

Slide 22 text

Go ❖࢖͍΍͘͢ਓؾͷ੩తܕ෇͚ݴޠ ❖γϯϓϧͳจ๏ͱॆ࣮ͨ͠πʔϧͰ։ൃ͠΍͍͢ ❖GoroutineʹΑΓαʔό΍ϛυϧ΢ΣΞʹ΋࠷ద • ϚΠΫϩαʔϏεͷྲྀߦʹ΋ϑΟοτ ❖࠷ۙͷISUCONͷ༗๬ג

Slide 23

Slide 23 text

͸ͯͳʹ͓͚ΔGo ❖2013೥ʙ ❖࠾༻αʔϏε • Mackerel ‣ ؂ࢹΤʔδΣϯτ/֎ܗ؂ࢹϛυϧ΢ΣΞ ‣ ࣌ܥྻσʔλϕʔε • ͸ͯͳϒοΫϚʔΫ(δϣϒΩϡʔ) • ಺෦޲͚ϚΠΫϩαʔϏε • Πϯλʔϯγοϓͷڭҭʹ΋ར༻(2018೥͔Β)

Slide 24

Slide 24 text

Go࠾༻ͷ͖͔͚ͬ ❖Mackerelͷ৽ن։ൃ • ؂ࢹΤʔδΣϯτͷ࣮૷ͷͨΊ ‣ mackerel-agent ‣ ఆظతʹαʔόͷϝτϦΫεΛऔಘͯ͠
 αʔόʹૹ৴ • ౰࣌ͷCTOʹGo͔RubyͰͬͯݴΘΕͨͷͰ
 (๻͕)

Slide 25

Slide 25 text

ϛυϧ΢ΣΞ΍ϚΠΫϩαʔϏε։ൃͰਓؾ ❖ύϑΥʔϚϯεͱγϯϓϧ͕͞ٻΊΒΕΔ৔໘ • ΠϯϑϥνʔϜͷCLIπʔϧͳͲͰ΋ ❖ࣾ಺ʹϑΝϯ͕ଟࣗ͘વͱ஌ݟ͕ू·͖ͬͯͯศར • CTOͷmotemen͞Μ΋େ޷͖ ❖WebΞϓϦέʔγϣϯ։ൃͷ஌ݟ͸͋·Γͳ͍ • ࠓ೥ͷΠϯλʔϯͰࢼͯ͠Έͨ

Slide 26

Slide 26 text

1ZUIPO

Slide 27

Slide 27 text

Python ❖γϯϓϧͰॻ͖΍͍͢εΫϦϓτݴޠ ❖ػցֶश΍σʔλ෼ੳͷϥΠϒϥϦͷॆ࣮Ͱਓؾʹ ❖ਓ͕د͖͍ͬͯͯͯͦͷଞͷϥΠϒϥϦ΋ॆ࣮ • ࠷৽ٕज़͕ར༻͠΍͍͢(ྫ: GraphQL) ❖΋͏Python3࢖͍͍ͬͯ

Slide 28

Slide 28 text

͸ͯͳʹ͓͚ΔPython ❖2015೥ʙ ❖࠾༻αʔϏε • BrandSafe ͸ͯͳ • ࣾ಺޲͚޿ࠂઃఆ؅ཧπʔϧ • εύϜ൑ఆπʔϧ(։ൃத) • ͦͷଞඇެ։ͷϓϩδΣΫτͰ΋ ❖FlaskΛར༻͍ͯ͠ΔαʔϏε͕େ൒

Slide 29

Slide 29 text

Python࠾༻ͷ͖͔͚ͬ ❖ػցֶशͱσʔλ෼ੳ • ΤίγεςϜ͕׬੒͞Ε͍ͯΔ • PerlͰॻ͖௚͢ϝϦοτ͕͋·Γͳ͍ ❖GoogleܥϥΠϒϥϦ • ޿ࠂܥͰ͸ར༻Ͱ͖Δͱศར

Slide 30

Slide 30 text

͸ͯͳʹ͓͚ΔPython ❖ػցֶश΍σʔλ෼ੳؔ࿈Ͱͷ࠾༻͕جຊ • ͱ͸͍͑෇ਵ͢ΔWebΞϓϦέʔγϣϯ෦෼΋
 ݁ߏॻ͔Ε͍ͯͯ஌ݟ͕ཷ·͖͍ͬͯͯΔ ❖ࠓޙPerlͷ୅ΘΓʹ࠾༻͢Δ৔໘΋૿͑ͦ͏ ❖ݸਓతʹ͸ Type hint͕΋ͬͱ੝Γ্͕ͬͯཉ͍͠ • TypeScript ͷ typesʹൺ΂Δͱॆ࣮౓͸௿͍

Slide 31

Slide 31 text

@͸ͯͳࣾ಺ษڧձ https://hakobe932.hatenablog.com/entry/2017/11/03/190000

Slide 32

Slide 32 text

Ruby ❖Perlͱ͸͔ͭͯϥΠόϧؔ܎ͩͬͨ͜ͱ΋͋ͬͯ
 ࣾ಺Ͱͷ࠾༻ʹ͸͍ͨΒͳ͔ͬͨ ❖͸ͯͳͷਓ͸͍͍ͩͨॻ͚Δ͠ɺ͍͍ͩͨ޷͖ • ๻΋޷͖Ͱ͢ ❖࠾༻γʔϯ • Chef, Capistrano

Slide 33

Slide 33 text

͜͜·Ͱͷ·ͱΊ ❖͸ͯͳ͸10೥Ҏ্PerlͷձࣾΛ΍͍ͬͯΔ ❖ۙ೥͸ඞཁʹԠͯ͡৽ͨͳݴޠΛ࢖͍ͬͯΔ • Scala: ෳࡶͳυϝΠϯ΍ઃܭ • Go: ϛυϧ΢ΣΞ΍ϚΠΫϩαʔϏε • Python: ػցֶशͱσʔλ෼ੳ

Slide 34

Slide 34 text

ϓϩάϥϛϯάݴޠબ୒ʹ
 ͍ͭͯͷߟ͑ํ

Slide 35

Slide 35 text

ݴޠબ୒ͷࢹ఺͸มΘͬͨ ❖ੲ͸Web։ൃͷͨΊͷݴޠΛҰͭબ΂͹ྑ͔ͬͨ ❖ࠓ͸Web։ൃͷྖҬ͕޿͕Γɺదࡐదॴʹ • WebΞϓϦέʔγϣϯ͚ͩͰ͸ͳ͘… • ϛυϧ΢ΣΞ • ϚΠΫϩαʔϏε • αʔόʔϨε • ػցֶश

Slide 36

Slide 36 text

͸ͯͳͷϓϩάϥϛϯάݴޠʹର͢Δ࢟੎ ❖ඞཁͰ͋Ε͹৽͍͠ݴޠΛͲΜͲΜ࢖͍ͬͯ͘ • ϓϩδΣΫτ͝ͱʹݕ౼ • σϑΥϧτ͸Perlͱ͍͏͜ͱʹͳ͍ͬͯΔ ❖ͱ͸͍͑ɺݴޠ͕૿͑͗͢ΔͱࠔΒͳ͍͔?

Slide 37

Slide 37 text

ݴޠͷ૿ՃͷσϝϦοτ ❖ڭҭίετ/ΤϯδχΞͷՄൖੑͷ௿Լ • ͸ͯͳͷΤϯδχΞ͸೚ҙͷݴޠ͕࢖͑Δͱ ͍͏લఏͷ΋ͱͳΜͱ͔ͳ͍ͬͯΔ • ϓϩδΣΫτʹඞཁͳٕज़ͷҧ͍͸େ͖͘ͳͬ ͖͍ͯͯΔ ❖஌ݟ΍ࢿ࢈ͷ෼ࢄ • ผͷ͜ͱΛ΍ͬͯΔͱڞৼ͕ੜ·Εʹ͍͘

Slide 38

Slide 38 text

৽ݴޠಋೖͰؾΛ͚͍ͭͯΔ͜ͱ ❖໰୊Λղܾ͢ΔͨΊʹຊ౰ʹඞཁ͔? ❖νʔϜ͕ड͚ೖΕΒΕΔ͔? • Ұ࣌తʹ૿Ճ͢ΔίετΛड͚ೖΕΒΕΔ͔? • Ϧʔυ͢Δਓ͕͍Δ͔? ϑΥϩϫʔ͕͍Δ͔? ‣ ձࣾʹఆணͤ͞Δͱ͜Ζ·ͰΛݟਾ͑Δ

Slide 39

Slide 39 text

৽ݴޠಋೖͰؾΛ͚͍ͭͯΔ͜ͱ ❖ݴޠͷίϛϡχςΟ͸׆ൃ͔? • ϝϯςφϯε͢Δͻͱ͕͍Δ͔? • ϥΠϒϥϦ͸ॆ࣮͍ͯ͠Δ͔? • ͸ͯͳ͕ߩݙ͍͚ͯ͠Δ͔?

Slide 40

Slide 40 text

৽ݴޠ࠾༻ͷϓϩηε ❖ٕज़άϧʔϓ͕൑அ • ٕज़άϧʔϓ = ΤϯδχΞԣ۲ͷ૊৫ • ར༻͍ͨ͠ਓ͕ٕज़άϧʔϓʹਃ੥ • CTO΍νʔϑ͕ώΞϦϯά͠ͳ͕Βܾఆ • ݴޠ x ༻్͝ͱʹར༻ͯ͠Α͍͔ఆΊΔ • ඞཁҎ্ʹ਺͕രൃ͢ΔͷΛ๷͙

Slide 41

Slide 41 text

εϜʔζʹݴޠΛಋೖ͢ΔͨΊʹ ❖ΤϯδχΞͷதͰ஌ݟ΍ධՁΛूΊ͓ͯ͘ • ݴޠͷษڧձΛ։࠵ • झຯ΍ΠϯλʔϯɺϥϘϓϩδΣΫτͰධՁ ❖ࣗવʹಋೖ͍͚ͯ͠Δ͔Ͳ͏͔ͷ౔৕Λ࡞Δ • ແཧͦ͏ͳΒࣗવͱཱͪফ͑Δ

Slide 42

Slide 42 text

ࠓޙ΋৽ݴޠ͸ಋೖ͍͔ͯ͘͠? ❖ඞཁʹԠͯ͡࠷΋దͨ͠ݴޠΛ࢖͍͖͍ͬͯͨ • Web։ൃͷఆٛ͸ࠓޙ΋֦େ͍͖ͯͦ͠͏ • ৽͍͠ݴޠ΋ొ৔͢ΔͩΖ͏ ❖ͱ͸͍͑૿͑͗͢Δͷ΋ࠔΔ • ΤϯδχΞͷ஍ྗΛͲΜͲΜߴΊΔ? ݴޠ͝ͱͷڭ ҭ੍౓Λॆ࣮͢Δ? • ͦͦ͜͜ࠔΓͭͭ͋ΔͷͰ͍ΖΜͳ͓࿩Λฉ͖͍ͨ

Slide 43

Slide 43 text

ݸਓతؾʹͳΓݴޠ ❖Node • ϦΞϧλΠϜੑ͕ඞཁͳͱ͖ʹ ❖Elixir • ଱ো֐ੑ͕ΊͪΌͪ͘Όඞཁͳͱ͖ʹ ❖Rust • γεςϜϨϕϧͷϓϩάϥϛϯά͕ඞཁͳͱ͖ʹ

Slide 44

Slide 44 text

·ͱΊ

Slide 45

Slide 45 text

͸ͯͳͱϓϩάϥϛϯάݴޠ ❖࿩ͨ͜͠ͱ • ͸ͯͳͷϓϩάϥϛϯάݴޠͷྺ࢙ • ݴޠબ୒ͷࢹ఺΍ϓϩηε΍ࠓޙʹ͍ͭͯ ❖Web։ൃͷ޿͕ΓʹదԠ͍ͯͨ͘͠Ίʹ • ৽ͨͳݴޠͷಋೖ͍ͯ͘͠ • ͜Ε·ͰͷલఏͰ͸೉͘͠ͳΓͦ͏
 ޻෉Λ͍͖͍ͯͨ͠ ❖࠙਌ձͰͥͻօ͞Μͷ͓࿩΋͖͔͍ͤͯͩ͘͞ʂ