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

新米エンジニアがレガシーシステムを死に物狂いでグロースハックした話 #xpjug / 20170916

yuzutas0
September 16, 2017

新米エンジニアがレガシーシステムを死に物狂いでグロースハックした話 #xpjug / 20170916

XP祭り2017 の発表資料です。
https://yuzutas0.hatenablog.com/entry/2017/09/20/083000 に補足を記載しています。

yuzutas0

September 16, 2017
Tweet

More Decks by yuzutas0

Other Decks in Programming

Transcript

  1. ৽ถΤϯδχΞ͕ϨΨγʔγεςϜΛ

    ࢮʹ෺ڰ͍ͰάϩʔεϋοΫͨ͠࿩
    2017-09-16 (Sat)

    XPࡇΓ2017

    presented by @yuzutas0

    View Slide

  2. ɹSho Yokoyamaɹ@yuzutas0
    ɹɹ



    ● ϦΫϧʔτςΫϊϩδʔζ
    ● ೝఆεΫϥϜϚελʔ
    ● ࣮͸΋͏৽ถͰ͸ͳ͍

    View Slide

  3. ࣮͸΋͏৽ถͰ͸ͳ͍


    ౰࣌ΛৼΓฦΔͱ

    ʮ݁ՌతʹΞδϟΠϧϓϥΫςΟεΛ

    ద༻͍ͯͨ͠ͷͰ͸ʁʯ

    ↓

    ͜ͷػʹࡇΔ

    View Slide

  4. ɹຊ೔࿩͢಺༰

    ৽ถΤϯδχΞ

    ௿͍εΩϧϨϕϧ
    19νʔϜ͔Βಉ࣌ґཔ

    ଟ༷ͳεςʔΫϗϧμʔ
    10೥෺ɾେن໛

    ϨΨγʔγεςϜ
    4ϲ݄Ͱ120Ҋ݅Λ͞͹͘ ϢʔβʔΞΫγϣϯ਺2.8ഒ
    ࢼߦࡨޡ

    ϘτϧωοΫΛ1ͭ1۪ͭ௚ʹղফ x ݁ՌతʹΞδϟΠϧϓϥΫςΟε

    View Slide

  5. ੍໿͕ଟ͍ͱ͖ͦ͜
    ● ϘτϧωοΫͷಛఆͱղফ
    ● ෢ثʢΞδϟΠϧϓϥΫςΟεʣ
    → ୹ظؒͰ੒ՌΛ্͛Δ͜ͱ͕Ͱ͖Δ

    ɹ఻͍͑ͨ͜ͱ

    View Slide

  6. 1. ʲഎܠʳάϩʔεϋοΫͩʂ
    2. ʲ՝୊ʳεςʔΫϗϧμʔ͕Ϡό͍ʂ
    3. ʲ՝୊ʳ։ൃεΩϧ͕Ϡό͍ʂ
    4. ʲ՝୊ʳγεςϜ͕Ϡό͍ʂ
    5. ʲ·ͱΊʳΞδϦςΟͩʂ

    ɹΞδΣϯμ

    View Slide

  7. 1. ʲഎܠʳάϩʔεϋοΫͩʂ
    2. ʲ՝୊ʳεςʔΫϗϧμʔ͕Ϡό͍ʂ
    3. ʲ՝୊ʳ։ൃεΩϧ͕Ϡό͍ʂ
    4. ʲ՝୊ʳγεςϜ͕Ϡό͍ʂ
    5. ʲ·ͱΊʳΞδϦςΟͩʂ

    ɹΞδΣϯμ

    View Slide

  8. ɹϦϘϯϞσϧͷ๭ϝσΟΞ

    ΫϥΠΞϯτ
    اۀ
    ΧελϚʔ
    Ϣʔβʔ
    ޿ࠂΛग़͢
    ৘ใΛ୳͢

    ࡭ࢠɹ8αΠτʢ1$εϚϗΨϥέʔʣɹ
    ϞόΠϧΞϓϦʢJ04ɺ"OESPJEʣ
    IUUQGSFFJMMVTUSBUJPOTHBUBHOFUIUNM

    View Slide

  9. ڝ߹ͷ୆಄

    ୹ظؒͰϢʔβʔΞΫγϣϯ਺Λ૿΍ͦ͏

    ଟ਺ͷνʔϜ͕ಠࣗͰPDSαΠΫϧΛճ͢
    ɹάϩʔεϓϩδΣΫτ

    View Slide

  10. ɹAPج൫Λ୲౰

    ͜͜ͷ

    View Slide

  11. ɹAPج൫Λ୲౰

    ͜͜ͷ
    ͜͜ͷ

    View Slide

  12. ɹAPج൫Λ୲౰

    ͜͜
    ͜͜ͷ
    ͜͜ͷ

    View Slide

  13. ɹWebAPI։ൃ

    View Slide

  14. ɹ19νʔϜ͔Βґཔ͕ͳͩΕࠐΉ

    View Slide

  15. ɹWebAPI͕શγεςϜͷதܧ஍఺ͩͬͨ

    50+ ͷαϒγε 3500+ tables

    100,000+ columns
    ‘00೥୅ͷSEOରࡦͷ໊࢒

    ίϯςϯπྔͷଟ͞Ͱ্Ґදࣔ

    ෳ਺αΠτͷ಺༰Λޓ͍ʹܝࡌ͋͠͏࢓༷

    View Slide

  16. ɹࢪࡦΛࢧ͑Δ໾ׂ

    ࢪࡦ
    ࢪࡦ
    ࢪࡦ

    View Slide

  17. ɹࢪࡦྫ

    ౰࣌·ͩະख़ͩͬͨ

    ϞόΠϧΞϓϦʹը૾Λग़͢
    ϝϧϚΨͷ࠷దԽϨίϝϯυ
    ʢ഑৴όον → WebAPI → Solrʣ
    IUUQTTVQQPSUUNPCJMFDPNDPNNVOJUZQIPOFTUBCMFUTEFWJDFTBQQMFJQIPOF IUUQTQJYBCBZDPNFOMFUUFSNBJMNBJMJOHFNBJMNBJMCPY

    View Slide

  18. ɹԹ౓ײ

    1ՕॴͰ΋Өڹ֬ೝΛଵͬͯ

    ໰୊͕ى͖ͨΒɺؔ࿈γεςϜ
    શମ͕μ΢ϯ͠͏Δ
    1ͭͰ΋։ൃҊ͕݅஗ΕͨΒ

    ۄಥ͖ͰଞͷҊ݅·Ͱ஗Εͯ

    શνʔϜͷܭը͕஗Ԇ͢Δ
    ΫΦϦςΟ ΞδϦςΟ

    View Slide

  19. ɹॳ݄࣮੷

    6ରԠ /
    27ґཔ

    View Slide

  20. ɹͲͷνʔϜ΋ࢪࡦ͕ଧͯͳ͍

    ࢪࡦ
    ࢪࡦ
    ࢪࡦ
    Blocker

    View Slide

  21. 1. ʲഎܠʳάϩʔεϋοΫͩʂ
    2. ʲ՝୊ʳεςʔΫϗϧμʔ͕Ϡό͍ʂ
    3. ʲ՝୊ʳ։ൃεΩϧ͕Ϡό͍ʂ
    4. ʲ՝୊ʳγεςϜ͕Ϡό͍ʂ
    5. ʲ·ͱΊʳΞδϦςΟͩʂ

    ɹΞδΣϯμ

    View Slide

  22. ɹεςʔΫϗϧμʔ͕ଟ͗͢Δ໰୊

    View Slide

  23. νʔϜͰʮޒ݄Ӎߴ଎΢ΥʔλʔϑΥʔϧʯͱݺͿϓϩηε͕ࣗવͱߏங͞Εͨ
    ɹΰʔϧ
    ɹํ๏
    ɹ։ൃϓϩηεߏங

    ҆ఆԽ ߴ଎Խ
    ηϨϞχʔ
    يಓमਖ਼
    ΞΠςϜ
    ՄࢹԽ

    View Slide

  24. ɹࣾ಺ͷ։ൃඪ४ɾςϯϓϨ͸͋ͬͨ
    ● ๲େͳϧʔϧ܈ ʹ ͙͢ʹ࢖͑ͳ͍
    ɹɹɹɹɹɹɹɹɹʮ뱌ʯʹֻ͕͔࣌ؒΔ

    ● ͦͷ࣌ʑͰඞཁͳ΋ͷ ʹ ϓϧϕʔεͰ੔උ
    ɹɹɹɹɹɹɹɹɹʢͤ͟ΔΛಘͳ͔ͬͨʣ

    IUUQTQJYBCBZDPNFOMJCSBSZCPPLTNPOUFTTPSJTIFMG

    View Slide

  25. νʔϜͰʮޒ݄Ӎߴ଎΢ΥʔλʔϑΥʔϧʯͱݺͿϓϩηε͕ࣗવͱߏங͞Εͨ
    ɹΰʔϧ
    ɹํ๏
    ɹ։ൃϓϩηεߏங

    ҆ఆԽ ߴ଎Խ
    ηϨϞχʔ
    يಓमਖ਼
    ΞΠςϜ
    ՄࢹԽ
    ҆ఆԽ
    ΞΠςϜ
    ՄࢹԽ

    View Slide

  26. ɹ՝୊؅ཧ
    ● Excel্Ͱ՝୊ϦετΛ؅ཧ

    ɹɹগ͠Ͱ΋ʮ໰୊ͩʂʯͱࢥͬͨ͜ͱ͸ىථ
    ● εΫϥϜʹ͓͚Δো֐෺Ϧετ

    [email protected]

    View Slide

  27. ɹҊ݅؅ཧ
    ● ಉ༷ʹExcel্ͰҊ݅ϦετΛ؅ཧ

    ɹɹཁ݅ɺ޻਺ɺظݶɺ༏ઌ౓ɺଞνʔϜӨڹ
    ● εΫϥϜʹ͓͚ΔϓϩμΫτόοΫϩά

    View Slide

  28. ɹλεΫ؅ཧ
    ● νʔϜڞ༗ͷςΩετϑΝΠϧͰTODO؅ཧ

    ɹɹ“िͷλεΫҰཡ” ͱ “ணखத࡞ۀͷ୲౰ऀ” ΛՕ৚ॻ͖

    ● εΫϥϜʹ͓͚ΔεϓϦϯτόοΫϩά

    [email protected]

    View Slide

  29. ͙͢ಡΈʹ͘͘ͳΔ → KISSͷపఈ → ݁Ռͱͯ͠τϤλ΢ΣΠ
    ɹʲλεΫ؅ཧʳ
    “.txt” for Lean

    কདྷ·Ͱશ෦ॻ͘ͷ͸×

    = ͦͷिͷλεΫ͚ͩ
    ʢλΠϜϘοΫεͷ֓೦ʣ
    ϚϧνλεΫ͸×

    = ্͔Βॲཧ
    ʢWIP੍ݶɾҰݸྲྀ͠ʣ
    TODO
    TODO
    TODO
    TODO
    TODO

    View Slide

  30. νʔϜͰʮޒ݄Ӎߴ଎΢ΥʔλʔϑΥʔϧʯͱݺͿϓϩηε͕ࣗવͱߏங͞Εͨ
    ɹΰʔϧ
    ɹํ๏
    ɹ։ൃϓϩηεߏங

    ҆ఆԽ ߴ଎Խ
    ηϨϞχʔ
    يಓमਖ਼
    ΞΠςϜ
    ՄࢹԽ
    ҆ఆԽ
    ηϨϞχʔ
    يಓमਖ਼

    View Slide

  31. ɹҊ݅ͷ༏ઌॱҐ
    ● 19νʔϜͱͷݸผௐ੔ˍ఻ݴήʔϜ͸ΧΦεʹͳͬͨ
    ● શମϛʔςΟϯάͰिʹ1ճ͚ͩ༏ઌॱҐΛશһͰೖΕସ͑
    ɹɹɹ໨ۄҊ݅ ʼ ޻਺͕খ͍͞Ҋ݅ ʼ ޻਺͕େ͖͍Ҋ݅
    ● εΫϥϜʹ͓͚ΔόοΫϩάϦϑΝΠϝϯτ

    View Slide

  32. ɹνʔϜ಺ͷঢ়گڞ༗
    ● ͜·Ίʹ಺෦ڞ༗͍ͨ͠ 㱻 ໨ઌͷ࡞ۀʹूத͍ͨ͠
    ● ස౓͸৭ʑࢼͯ͠1೔1-2ճ͕ఆண
    ● εΫϥϜʹ͓͚ΔσΠϦʔϛʔςΟϯά

    [email protected]

    View Slide

  33. ɹଞγεςϜӨڹͷ֬ೝ
    ● ϦϦʔεલʹվम಺༰Λिʹ1ճͷԣஅϛʔςΟϯάͰ࠷ऴ֬ೝ
    ɹɹͦͷࡍʹؔ܎֤Ґ͔Βʮ͜ͷ఺Λҙࣝ͢ΔͱΑΓྑ͘ͳΔʯͷϑΟʔυόοΫ΋
    ● εΫϥϜʹ͓͚ΔεϓϦϯτϨϏϡʔ


    ϦϦʔεԆظ

    ͦͷ··Goʂ
    Өڹʹݒ೦͕͋Δʁ
    Yes
    No

    View Slide

  34. ɹϚΠϧετʔϯ੔ཧ
    ● ଞνʔϜͷܭը͕ࠞཚ → ീํ͔Βʮ͍ͭͰ͖ͦ͏Ͱ͔͢ʁʯ

    ● िʹ1ճ “ͦͷि΍Δ͜ͱ” ͱ “ࠓޙͷݟ௨͠” Λཱͯ௚ͨ͠
    ɹɹҊ݅ͷݟੵ΋Γ͸ࣗવͱʮ0.5೔ɺ1೔ɺ2೔…ʯͷ૬ର஋ʹͳͬͨ
    ● εΫϥϜʹ͓͚ΔεϓϦϯτϓϥϯχϯάʢୈ1෦ʣ

    0.5
    [email protected]
    1 2 3 5 8

    View Slide

  35. ɹʲϚΠϧετʔϯʳ
    ݟੵ΋Γ 㱻 ࣮ଶ
    ● ޻਺ϕʔεͷܭը͕໾ʹཱͨͳ͍
    ● ࡉ͔͘ϞχλϦϯάͨ͠ ʹ 1िؒͰѻ͑Δྔ͕ݟ͑ͨ
    ɹɹʲ݁ՌʳҊ݅։ൃʹ࢖͏࣌ؒ͸1೔ͷ2ׂʙ4ׂʹऩଋͨ͠
    ɹɹʲ׆༻ʳݟཱͯ޻਺͕2࣌ؒ → ޻ظ͸3ഒͷ6࣌ؒʢ㲈1೔ʣ
    ● εΫϥϜʹ͓͚ΔϕϩγςΟ

    [email protected]

    View Slide

  36. νʔϜ಺ͷશһͰ࠷ॳʹೝࣝΛἧ͑Δ
    ɹ“ख໭Γ” ໰୊ 1 / 4

    ੡଄
    ઃܭ ࢼݧ ϦϦʔε
    ཁ݅ఆٛ
    ཁ݅ఆٛ
    ● Ϟϒ ϓϩάϥϛϯά ϗϫΠτϘʔυίʔσΟϯά - “ઃܭํ਑” ΍ “ॻ͖ํ”
    ● Ϟϒ ϓϩάϥϛϯά TODOચ͍ग़͠ - 1ͭ໿20෼ఔ౓ͷ࡞ۀΛશͯՄࢹԽ

    View Slide

  37. લ޻ఔΛॏࢹ͢Δ
    ɹ“ख໭Γ” ໰୊ 2 / 4

    ੡଄
    ઃܭ ࢼݧ ϦϦʔε
    ཁ݅ఆٛ
    ● ޙ͔Βͷʮ͜ΕͳΜ͚ͩͬʁʯʮͲ͏͢ΔΜ͚ͩͬʁʯ → “΍Γ௚͠” ͸࠷ѱ
    ● ࣗ෼ͰεέδϡʔϧΛίϯτϩʔϧ͍ͯ͠Δ҆৺ײ
    ● εΫϥϜʹ͓͚ΔεϓϦϯτϓϥϯχϯάʢୈೋ෦ʣ

    View Slide

  38. ʢࠩ͠ࠐΈґཔͱಉ͡Ͱʣ૝ఆ֎࡞ۀ = ܭը͕ཚΕΔ
    ɹ“ख໭Γ” ໰୊ 3 / 4

    ੡଄
    ઃܭ ࢼݧ ϦϦʔε
    ཁ݅ఆٛ
    ϨϏϡʔ
    ʮͲΜͳҊ݅Ͱ͚ͨͬ͠ʁʯ

    ʮ΋ͬͱྑ͍ॻ͖ํ͕͋Γͦ͏ʯ
    ଞνʔϜͰγεςϜো֐

    ʮAPI࢓༷Λڭ͍͑ͯͩ͘͞ʯ
    όά͕ݟ͔ͭΔ

    → ࡞Γ௚͠
    ੡଄ ࢼݧ ϦϦʔε

    View Slide

  39. ૣ͘͢ΔͨΊʹɿલ޻ఔʹ࣌ؒΛֻ͚ͯ඼࣭୲อ - Doneͷఆٛ
    ɹ“ख໭Γ” ໰୊ 4 / 4

    ੡଄
    ઃܭ ࢼݧ ϦϦʔε
    ཁ݅ఆٛ ੡଄
    ઃܭ ࢼݧ
    ίʔυΛॻ͘લʹଞνʔϜڞ༗
    ো֐࣌ʮAPIͰ͸ͳ͍ʯ੾Γ෼͚
    ࢼݧϑΣʔζ͸μϝԡ͠
    1݅Ͱ΋όά͕ग़ͨΒ࠶ൃ๷ࢭ
    ίʔυΛॻ͖ͳ͕Β
    ೏͏ҟৗܥ·Ͱςετ

    View Slide

  40. νʔϜͰʮޒ݄Ӎߴ଎΢ΥʔλʔϑΥʔϧʯͱݺͿϓϩηε͕ࣗવͱߏங͞Εͨ
    ɹΰʔϧ
    ɹํ๏
    ɹ։ൃϓϩηεߏங

    ҆ఆԽ ߴ଎Խ
    ηϨϞχʔ
    يಓमਖ਼
    ΞΠςϜ
    ՄࢹԽ
    ߴ଎Խ
    ηϨϞχʔ
    يಓमਖ਼

    View Slide

  41. ɹ՝୊ϦετΛ΋ͱʹվળ
    ● िʹ1ճ͚ͩվળͷ࣌ؒΛઃ͚ͨ
    ● ໰୊͕ଟ͗͢Δ → 1͚ͭͩબͿ
    ɹɹʲ඼࣭ʳ࣌ؒΛֻ͚ͯ୲อࡁΈʢ୲౰ՕॴͷγεςϜো֐͸2݅ / 120Ҋ݅ʣ
    ɹɹʲ଎౓ʳ໰୊ - ϦʔυλΠϜΛ્֐͢ΔϜμΛऔΓআ͘
    ● εΫϥϜʹ͓͚ΔϨτϩεϖΫςΟϒ

    IUUQTXXXTDSVNBMMJBODFPSHDPNNVOJUZBSUJDMFTNBZTQSJOUJTNPSFUIBOKVTUBUJNFCPY

    View Slide

  42. ɹվળΞΫγϣϯʢྫʣ

    ʲBeforeʳূ੻ॏࢹͷಡΈ߹Θͤ༻จॻ
    ʲAfterʳ ཁ݅ಛԽͷϖϥ1ϑΥʔϚοτ
    ɹɹձٞΛ 60min → 5min ʹ୹ॖ
    ● ଞνʔϜͷσΠϦʔϛʔςΟϯάʹࢀՃ
    ● νʔϜؒͰޓ͍ͷίϯςΩετΛ೺Ѳ

    ɹɹؾܰʹ૬ஊ → ϦʔυλΠϜ୹ॖ
    [email protected]
    แׅతͳυΩϡϝϯτΑΓ΋

    ಈ͘ιϑτ΢ΣΞΛ
    ϓϩηε΍πʔϧΑΓ΋

    ݸਓͱର࿩Λ

    View Slide

  43. ͜ΕΒͷΞΠςϜ΍Πϕϯτ


    ͋ͬͯ “౰ͨΓલ” ʹࢥ͑Δʁ


    ࠷ॳ͔Β༻ҙ͢Δͷ͕ ”౰વ”ʁ

    View Slide

  44. ɹʮ౰ͨΓલʯΛ஝ੵͨࣾ͠಺ඪ४ɾςϯϓϨ
    ● ๲େͳϧʔϧ܈ ʹ ͙͢ʹ࢖͑ͳ͍
    ɹɹɹɹɹɹɹɹɹʮ뱌ʯʹֻ͕͔࣌ؒΔ

    ● ͦͷ࣌ʑͰඞཁͳ΋ͷ ʹ ϓϧϕʔεͰ੔උ
    ɹɹɹɹɹɹɹɹɹʢͤ͟ΔΛಘͳ͔ͬͨʣ

    IUUQTQJYBCBZDPNFOMJCSBSZCPPLTNPOUFTTPSJTIFMG

    View Slide

  45. ɹϓϧϕʔε
    ඞཁͳ΋ͷΛɺඞཁͳͱ͖ʹɺඞཁͳ͚ͩ
    ϘτϧωοΫͷಛఆͱղফΛ܁Γฦ͢

    ՝୊ղܾ
    ՝୊ൃݟ
    ݁Ռతʹ
    Pull
    ݁Ռతʹ
    Pull

    View Slide

  46. ɹޒ݄Ӎ΢ΥʔλʔϑΥʔϧ ͱνʔϜͰݺͿ΋ͷʹͳͬͨ

    ։ൃͷʮྲྀΕʯʹ৐ͤΔ
    ख໭Γ΍τϥϒϧʹΑΔʮٯྲྀʯʢʹϜμɾϜϥɾϜϦʣΛ๷͙
    1ݸྲྀ͠ʹΑΔϑΥʔΧεɹɹόοναΠζΛখ͘͞෼ׂɹɹ඼࣭Λલ޻ఔͰ୲อɹɹܧଓతͳʮྲྀΕʯͷվળ
    ޒ݄Ӎͷґཔ
    ґཔ
    ґཔ
    ґཔ
    ੡଄
    ઃܭ ࢼݧ ϦϦʔε
    ཁ݅ఆٛ
    [email protected] [email protected]

    View Slide

  47. ɹ19νʔϜ͔ΒͷґཔʹରԠ͢Δ

    View Slide

  48. WEBαΠτͷ੒ޭࢪࡦ
    ϞόΠϧΞϓϦͰ΋΍Ε͹͍͍ͷʹ
    ىҊ → ࢪࡦͱͯ͠࠾༻ʂ
    ʲ+αʳྲྀΕ͕ՄࢹԽ → ਫݯʹϑΟʔυόοΫ

    View Slide

  49. ɹຊ೔࿩͢಺༰ʢ࠶ܝʣ

    ৽ถΤϯδχΞ

    ௿͍εΩϧϨϕϧ
    19νʔϜ͔Βಉ࣌ґཔ

    ଟ༷ͳεςʔΫϗϧμʔ
    10೥෺ɾେن໛

    ϨΨγʔγεςϜ
    4ϲ݄Ͱ120Ҋ݅Λ͞͹͘ ϢʔβʔΞΫγϣϯ਺2.8ഒ
    ࢼߦࡨޡ

    ϘτϧωοΫΛ1ͭ1۪ͭ௚ʹղফ x ݁ՌతʹΞδϟΠϧϓϥΫςΟε

    View Slide

  50. ੍໿͕ଟ͍ͱ͖ͦ͜
    ● ϘτϧωοΫͷಛఆͱղফ
    ● ෢ثʢΞδϟΠϧϓϥΫςΟεʣ
    → ୹ظؒͰ੒ՌΛ্͛Δ͜ͱ͕Ͱ͖Δ

    ɹ఻͍͑ͨ͜ͱʢ࠶ܝʣ

    View Slide

  51. 1. ʲഎܠʳάϩʔεϋοΫͩʂ
    2. ʲ՝୊ʳεςʔΫϗϧμʔ͕Ϡό͍ʂ
    3. ʲ՝୊ʳ։ൃεΩϧ͕Ϡό͍ʂ
    4. ʲ՝୊ʳγεςϜ͕Ϡό͍ʂ
    5. ʲ·ͱΊʳΞδϦςΟͩʂ

    ɹΞδΣϯμ

    View Slide

  52. ɹ৽ถΤϯδχΞ
    WebAPIͷϨεϙϯεʹ

    ύϥϝʔλΛ1ͭ௥Ճ͢Δ͚ͩͷҊ݅
    ࠷ॳ͸1िؒ΋අ΍͍ͯͨ͠

    View Slide

  53. ɹʮॆ࣮ͨ͠ʯֶशϝχϡʔ͸͋ͬͨ
    ● 3ϲ݄ͰҰਓલʹͳΔڭࡐ ʹ ͙͢ʹ࢖͑ͳ͍
    ɹɹɹɹɹɹɹɹɹʢ3ϲ݄ޙ·Ͱઓྗ֎ʣ

    ● ͦͷ࣌ʑͰඞཁͳ஌ࣝ ʹ ϓϧϕʔεͰशಘ
    ɹɹɹɹɹɹɹɹɹʢͤ͟ΔΛಘͳ͔ͬͨʣ

    IUUQTQJYBCBZDPNFOMJCSBSZCPPLTNPOUFTTPSJTIFMG

    View Slide

  54. ɹTDDͷΑ͏ʹֶͿ

    ΞʔΩςΫτ
    ٕज़ྗ
    ϓϩμΫτΦʔφʔ
    ࢓༷ɾࢪࡦ
    Ϧʔμʔ
    νʔϜঢ়گ
    ͱͯ͠ৼΔ෣͏ - ςετίʔυ࣮ߦ
    ฉ͍ͨΓௐ΂ͨΓ
    Pullϕʔε
    ੺ͬஏΛ͔͘
    RED
    Θ͔ͬͨʂͰ͖ͨʂ
    GREEN

    View Slide

  55. ɹTDDͷΑ͏ʹֶͿ

    ΞʔΩςΫτ
    ٕज़ྗ
    ϓϩμΫτΦʔφʔ
    ࢓༷ɾࢪࡦ
    Ϧʔμʔ
    νʔϜঢ়گ
    ͱͯ͠ৼΔ෣͏ - ςετίʔυ࣮ߦ
    ฉ͍ͨΓௐ΂ͨΓ
    Pullϕʔε
    ੺ͬஏΛ͔͘
    RED
    Θ͔ͬͨʂͰ͖ͨʂ
    GREEN
    ΞʔΩςΫτ
    ٕज़ྗ

    View Slide

  56. ɹγεςϜઃܭ
    ΞʔΩςΫτͱͯ͠ࣄલʹઃܭ͕ݟ௨͍ͤͯΔʁ

    ˠ Noʂ

    ˠ ॲཧػೳهड़΍γʔέϯεਤΛॻ͘ͱ͜Ζ͔Βʂ

    View Slide

  57. ɹ࢓༷೺Ѳ
    ΞʔΩςΫτͱͯ͠ઃܭલʹαΠτ࢓༷Λ೺Ѳ͍ͯ͠Δʁ

    ˠ Noʂ

    ˠ ը໘ભҠਤΛ࡞ͬͯΈΔʂ

    View Slide

  58. ɹؔ࿈γεςϜ
    ஌Βͳ͍ٕज़ཁૉ → 30෼ͷษڧձΛ։͍ͯ΋Β͏
    ● Solrͱ͸ͳΜͧ΍

    ● ϩʔΧϧ؀ڥͰApacheͷઃఆΛ͍͡Ζ͏
    ● ࣾ಺ͷϞόΠϧΞϓϦج൫ʹ͍ͭͯ

    ● γεςϜશମͷσʔλϑϩʔʢӦۀͷݪߘೖྗ͔Βʣ

    View Slide

  59. ɹͱʹ͔͘ฉ͘
    ● ϗϫΠτϘʔυΛ1ͭ઎ڌ

    ● ʢຊ෺ͷʣΞʔΩςΫτʹֆͰͷղઆΛґཔ

    [email protected]

    View Slide

  60. ɹલఏ஌ࣝͷඞཁੑΛ࣮ײ
    ● ʮҰྲྀͷΞʔΩςΫτͳΒશ໰ਖ਼ղͰ͖Δ͸ͣʯͰৼΔ෣͏

    ● ςετۦಈֶशɿ໰୊Λղ͘ˠϛεˠ౴͑ΛݟΔˠͳΔ΄Ͳ

    View Slide

  61. ɹͲΜͲΜಡΉ - ؾ෇͘……οʂ͜Ε͸༗ӹ……οʂ
    ● ҰྲྀͷΞʔΩςΫτ͸͖ͪΜͱຊΛಡΉʢଟ෼ʣ

    ● ඞཁʹۦΒΕͯಡΉ → ͍΍Ͱ΋ཧղ͢Δ

    ࠨͭ͸ҰྲྀͷΞʔΩςΫτ͕ಡΉຊͬͯײ͡͠ͳ͍͚Ͳ
    IUUQCPPLJNQSFTTDPKQCPPLTɹɹIUUQCPPLJNQSFTTDPKQCPPLTɹɹIUUQTXXXPSFJMMZDPKQCPPLT

    View Slide

  62. ɹTDDͷΑ͏ʹֶͿ

    ΞʔΩςΫτ
    ٕज़ྗ
    ϓϩμΫτΦʔφʔ
    ࢓༷ɾࢪࡦ
    Ϧʔμʔ
    νʔϜঢ়گ
    ͱͯ͠ৼΔ෣͏ - ςετίʔυ࣮ߦ
    ฉ͍ͨΓௐ΂ͨΓ
    Pullϕʔε
    ੺ͬஏΛ͔͘
    RED
    Θ͔ͬͨʂͰ͖ͨʂ
    GREEN
    ϓϩμΫτΦʔφʔ
    ࢓༷ɾࢪࡦ

    View Slide

  63. ɹࣄۀߏ଄
    ϓϩμΫτΦʔφʔͱͯ͠Ϗδωεߏ଄Λ೺ѲࡁΈʁ
    → Noʂ
    → ϐΫτਤΛॻ͘ʂ

    View Slide

  64. ɹ਺ࣈɾن໛ײ
    ϓϩμΫτΦʔφʔͱͯ͠਺ࣈΛ೺ѲࡁΈʁ
    → Noʂ
    → ΞΫηεղੳπʔϧΛ࢖ͬͯΈΔʂ

    View Slide

  65. ɹࣄۀߏ଄
    ϓϩμΫτΦʔφʔͱͯ͠ӦۀͷചΓํΛ஌͍ͬͯΔʁ
    → Noʂ
    → Ӧۀࣾһͷ঎඼ݚमʹࠞͥͯ΋Β͏ʂ

    View Slide

  66. ɹϓϥΠϕʔτ·Ͱ৵৯……
    ϓϩμΫτΦʔφʔͱͯ͠ϓϩμΫτΛ͍࣋ͬͯΔʁ
    → Noʂ
    → ݸਓαʔϏεΛ࡞Δʂ

    View Slide

  67. ɹશ෦1ਓͰ΍Δ → શମ૾͕ݟ͑Δ
    ● ϓϩηεɿاը͔Βอकӡ༻·Ͱ
    ● ٕज़ཁૉɿϑϩϯτ͔ΒΠϯϑϥ·Ͱ

    View Slide

  68. ɹશ෦1ਓͰ΍Δ → ࡉ෦͕ݟ͑Δ

    ● αʔόઃఆ͸σϑΥϧτ஋Ͱ͍͍ͷ͔

    ● ձࣾͩͱར༻ن໿͸Ͳ͏ͳ͍ͬͯΔͷ͔

    IUUQHJIZPKQCPPL

    View Slide

  69. ɹϢʔβʔͷ੠ → ඇػೳཁ͕݅ؾʹͳΓͩ͢

    ʲύϑΥʔϚϯεʳ

    ● ઌഐʹฉ͖ͳ͕ΒJMeterΛࢼͯ͠ΈΔʂ

    ● ͜ͷΞΫηεྔͰ͜ͷॲཧ଎౓ͳͷ͔ʂ
    ʲηΩϡϦςΟʳ

    ● HTTPϔομʔͷઃఆɺେৎ෉͚ͩͬʂ

    ● େৎ෉ͩͬͨʂ͜͜Ͱઃఆ͍ͯ͠Δͷ͔ʂ

    View Slide

  70. ɹTDDͷΑ͏ʹֶͿ

    ΞʔΩςΫτ
    ٕज़ྗ
    ϓϩμΫτΦʔφʔ
    ࢓༷ɾࢪࡦ
    Ϧʔμʔ
    νʔϜঢ়گ
    ͱͯ͠ৼΔ෣͏ - ςετίʔυ࣮ߦ
    ฉ͍ͨΓௐ΂ͨΓ
    Pullϕʔε
    ੺ͬஏΛ͔͘
    RED
    Θ͔ͬͨʂͰ͖ͨʂ
    GREEN
    Ϧʔμʔ
    νʔϜঢ়گ

    View Slide

  71. ɹܗ͔ΒೖΔ
    ● ʮ͑ʁݺ͹Ε·͚ͨ͠ͲʁʯΈ͍ͨͳإͰձٞʹࢀՃ
    ● νʔϜϦʔμʔͷ୅ΘΓʹνʔϜͷใࠂΛ͢Δ

    [email protected]

    View Slide

  72. ɹѹ౗తϑΟʔυόοΫྔ
    ● ࿅शɿϦʔμʔʹ͓ࢼ͠ใࠂ → ؒҧ͍Λࢦఠͯ͠΋Β͏
    ● ࣮ફɿଞνʔϜͷϦʔμʔʹ΅͜΅͜ʹ͞ΕΔ

    [email protected]

    View Slide

  73. ɹϝϯλʔͱͷ1on1
    ● ҰྲྀͷϦʔμʔʹ͸ϝϯλʔ͕͍Δ΋ͷΒ͍͠ʢଟ෼ʣ
    ● ผ෦ॺͷઌഐʹ͓ئ͍ͯ͠ɺຖ೔30෼ͷ1on1Λߦ͏

    [email protected]

    View Slide

  74. Ϧʔμʔʢࣗশʣͱͯ͠νʔϜͷݱঢ়Λઆ໌͢Δ
    → Θ͔Βͳ͚Ε͹ௐ΂Δɾฉ͘
    ɹQ1. νʔϜ͸͍·ͲΜͳঢ়گ͔ʁ by ϝϯλʔ

    View Slide

  75. ɹQ2. ࠷΋େ͖ͳ໰୊͸Կ͔ʁ by ϝϯλʔ
    Ϧʔμʔʢࣗশʣͱͯ͠νʔϜ๊͕͑Δ໰୊Λઆ໌͢Δ
    → ຊ౰ʹͦΕ͕1൪ͷ໰୊ʁ by ϝϯλʔ
    → σΟεΧογϣϯͰ੔ཧ

    ໰୊ ໰୊
    ໰୊
    ໰୊
    ໰୊

    View Slide

  76. ɹQ3. ໰୊ʹରͯ͠Ͳ͏ͨ͠Β͍͍͔ʁ by ϝϯλʔ
    Ϧʔμʔʢࣗশʣͱͯ͠ղܾΞϓϩʔνΛఏҊ͢Δ

    → ຊ౰ʹͦΕ͕ϕετͷํ๏ʁ by ϝϯλʔ
    → աڈͷࢀߟࣄྫΛฉ͘ˍࠓճͷέʔε͸Ͳ͏͢΂͖͔ٞ࿦

    ໰୊

    View Slide

  77. ɹTDDͷΑ͏ʹֶͿ

    ΞʔΩςΫτ
    ٕज़ྗ
    ϓϩμΫτΦʔφʔ
    ࢓༷ɾࢪࡦ
    Ϧʔμʔ
    νʔϜঢ়گ
    ͱͯ͠ৼΔ෣͏ - ςετίʔυ࣮ߦ
    ฉ͍ͨΓௐ΂ͨΓ
    Pullϕʔε
    ੺ͬஏΛ͔͘
    RED
    Θ͔ͬͨʂͰ͖ͨʂ
    GREEN

    View Slide

  78. ɹʮॆ࣮ͨ͠ʯֶशܭը͚͕ͩਖ਼ղͰ͸ͳ͍
    ● 3ϲ݄ͰҰਓલʹͳΔڭࡐ ʹ ͙͢ʹ࢖͑ͳ͍
    ɹɹɹɹɹɹɹɹɹʢ3ϲ݄ޙ·Ͱઓྗ֎ʣ

    ● ͦͷ࣌ʑͰඞཁͳ஌ࣝ ʹ ϓϧϕʔεͰशಘ
    ɹɹɹɹɹɹɹɹɹʢͤ͟ΔΛಘͳ͔ͬͨʣ

    IUUQTQJYBCBZDPNFOMJCSBSZCPPLTNPOUFTTPSJTIFMG

    View Slide

  79. ɹʮ࠷ڧͷҭ੒ϝχϡʔʯ͸ଘࡏ͠ͳ͍ʁ

    ৽ถΤϯδχΞ͕뱌͖͠Εͳ͍஌ࣝ ʹ ·ͩඞཁͳ͍ػೳΛ࡞Δͷͱಉ͔͡΋

    IUUQXXXQSPKFDUDBSUPPODPN

    View Slide

  80. ɹ“࣮ફ” Λ௨ͯ͠ “ࣗ૸” ͢Δ
    Ұྲྀͱͯ͠ৼΔ෣͏

    ౰વ͏·͍͔͘ͳ͍

    ࠩ෼͕ݟ͑Δ

    Ұྲྀͷ໨ઢʹۙ෇͘

    IUUQTXXXQFYFMTDPNQIPUPDBSFGSFFDIJMEDIJMEIPPEDPVOUSZTJEF

    View Slide

  81. ɹΠϯΫϦϝϯλϧͳֶश
    ʮ෼͔Δ͜ͱʯ͕૿͑Δ౓ʹ
    ʮ෼͔Βͳ͍͜ͱʯ͕޿͕͍ͬͯ͘
    ͦΕΒΛશ෦ɺௐ΂Δʂࢼ͢ʂฉ͘ʂֶͿʂ

    IUUQTXXXQFYFMTDPNQIPUPCBMMTIBQFECMVSDMPTFVQGPDVT

    View Slide

  82. ɹຊ೔࿩͢಺༰ʢ࠶ܝʣ

    ৽ถΤϯδχΞ

    ௿͍εΩϧϨϕϧ
    19νʔϜ͔Βಉ࣌ґཔ

    ଟ༷ͳεςʔΫϗϧμʔ
    10೥෺ɾେن໛

    ϨΨγʔγεςϜ
    4ϲ݄Ͱ120Ҋ݅Λ͞͹͘ ϢʔβʔΞΫγϣϯ਺2.8ഒ
    ࢼߦࡨޡ

    ϘτϧωοΫΛ1ͭ1۪ͭ௚ʹղফ x ݁ՌతʹΞδϟΠϧϓϥΫςΟε

    View Slide

  83. ੍໿͕ଟ͍ͱ͖ͦ͜
    ● ϘτϧωοΫͷಛఆͱղফ
    ● ෢ثʢΞδϟΠϧϓϥΫςΟεʣ
    → ୹ظؒͰ੒ՌΛ্͛Δ͜ͱ͕Ͱ͖Δ

    ɹ఻͍͑ͨ͜ͱʢ࠶ܝʣ

    View Slide

  84. 1. ʲഎܠʳάϩʔεϋοΫͩʂ
    2. ʲ՝୊ʳεςʔΫϗϧμʔ͕Ϡό͍ʂ
    3. ʲ՝୊ʳ։ൃεΩϧ͕Ϡό͍ʂ
    4. ʲ՝୊ʳγεςϜ͕Ϡό͍ʂ
    5. ʲ·ͱΊʳΞδϦςΟͩʂ

    ɹΞδΣϯμ

    View Slide

  85. ɹϨΨγʔγεςϜͱ͍͔ʹ޲͖߹͏͔

    50+ ͷαϒγε 3500+ tables

    100,000+ columns
    ߴ଎։ൃʹ଱͑ΒΕΔ಺෦඼࣭Ͱ͸ͳ͍

    View Slide

  86. “ΠςϨʔγϣϯ” ͱ “ਖ਼͍͠ϑΥʔΧε”
    ɹϨΨγʔγεςϜ΋ಉ͡

    దԠ
    ݕࠪ

    View Slide

  87. σϑΝΫτελϯμʔυͷ։ൃελΠϧʹ͚ۙͮΔ
    ɹΠςϨʔγϣϯ - ܧଓతσϦόϦʔΛࢧ͑Δٕज़

    Git / Gitlabಋೖ

    ϚʔδϦΫΤετத৺ͷ։ൃ

    ϨϏϡʔ΍มԽΛ௥͍΍͘͢
    SonarQubeಋೖ

    Ξϯνύλʔϯͳॻ͖ํΛࢲత

    ιʔείʔυͷෳࡶ౓Λ਺஋Խ

    View Slide

  88. ɹɹɹɹɹɹ υΩϡϝϯτʁ
    ɹɹɹɹɹɹ ػೳཁ݅ʁ
    ɹɹɹɹɹɹ ྑ͍ઃܭʁ
    ɹਖ਼͍͠ϑΥʔΧε

    View Slide

  89. ɹ APIར༻ऀ޲͚ͷΤϥʔυΩϡϝϯτ

    ● ίʔυΛࣗવݴޠʹ͚ͨͩ͠

    ● ࡞Δͷʹ͕͔͔࣌ؒΔ
    ● ୭΋ಡΜͰ͍ͳ͔ͬͨ
    ● JSONΩϟϓνϟʢSwaggerతൃ૝ʣ

    ● ϦʔυλΠϜͷେ෯࡟ݮ

    ● ར༻ݩʮಡΊΔΑ͏ʹͳͬͨʯ

    View Slide

  90. ɹ ಺෦ઃܭυΩϡϝϯτ

    ● Excelͷϑϩʔνϟʔτʹ߹Θͤͯ
    ɹifจͩΒ͚ͷਂ͍ωετʴreturnࢄࡏ
    ● ͦͷׂʹ͸ίʔυͱExcelʹࠩ෼
    ● ֓؍ʢϩθολετʔϯʣҎ֎͸ഇࢭ
    ● όϦσʔγϣϯϒϩοΫΛ੾Γग़ͯ͠
    ʮιϑτ΢ΣΞͷอकੑʯΛॏࢹ
    ɹif …
    ɹɹif …
    ɹɹɹif …
    ɹɹɹɹreturn;
    ɹɹelse if …
    ɹɹɹif …
    ɹɹɹɹreturn;
    ɹ# validation
    ɹif …
    ɹɹreturn;
    ɹ
    ɹ# main logic
    ɹ……
    ɹ……
    No
    Docs

    View Slide

  91. ɹ υΩϡϝϯτ͸͋͘·Ͱิॿʂ
    ϑΥʔΧε͢΂͖͸
    ʮ࣮ࡍʹಈ͘ιϑτ΢ΣΞʯ

    View Slide

  92. ɹɹɹɹɹɹ υΩϡϝϯτʁ
    ɹɹɹɹɹɹ ػೳཁ݅ʁ
    ɹɹɹɹɹɹ ྑ͍ઃܭʁ
    ɹਖ਼͍͠ϑΥʔΧε

    View Slide

  93. ɹ ػೳཁ݅͸ຬͨͤΔ͚Ͳ
    ࣅͨΑ͏ͳػೳ → ಉ͡APIʹڞ௨Խ͢Ε͹OKʁ

    WEBαΠτձһ޲͚ͷ৽ணϝʔϧ εϚϗΞϓϦͷ৽ணϓογϡ௨஌

    View Slide

  94. ɹ NGʂҙຯ߹͍͕ҧͬͨʂ

    ΞϓϦͱWEBαΠτͰϢʔβʔ૚͕ҧ͏
    ↓ 

    ৽ண഑৴ͱͯ͠ར༻͢ΔϩδοΫ΋ҧͬͨ

    [email protected]

    View Slide

  95. ɹ ΦʔέετϨʔγϣϯ૚·͕͍ͷ΋ͷ
    Λઃ͚ͨ
    ɹɹɹ● ݺͼग़͠ݩʹΑΔίϯςΩετͷ੾Γ෼͚

    ɹɹɹ● ࠜͬ͜ʹ͋Δͷ͸ϚΠΫϩαʔϏεతͳൃ૝

    View
    View
    View
    Controller
    Controller
    Controller
    Model

    View Slide

  96. ɹ Ծઆݕূͱͯ͠ͷػೳ௥Ճ
    ʮޙ͔Βফ͠΍͍͢ʯ؍఺ͰίʔυΛ੾Γग़͢
    ֘౰ϒϩοΫ͚ͩফͤ͹ऴΘΓ

    ABςετ༻ϝιου ݺͼग़͠ॲཧ
    private xxx testAB(Hoge hoge) {
    ɹɹ……
    }
    public String mainController() {
    ɹɹ……
    ɹɹtestAB(hoge);
    ɹɹ……
    }

    View Slide

  97. ɹ ໨ઌͷػೳཁ͚݅ͩͰ͸ͳ͍ʂ
    ϑΥʔΧε͢΂͖͸
    ʮϓϩμΫτʹ͓͚Δҙຯʯ

    ʢυϝΠϯ஌ࣝʹґଘ͢Δ͜ͱ΋͋Δʣ

    View Slide

  98. ɹɹɹɹɹɹ υΩϡϝϯτʁ
    ɹɹɹɹɹɹ ػೳཁ݅ʁ
    ɹɹɹɹɹɹ ྑ͍ઃܭʁ
    ɹਖ਼͍͠ϑΥʔΧε

    View Slide

  99. ɹ “ྑ͍” ͷڞ௨ೝࣝ
    ݩͷιʔείʔυ͕Ԛ͍

    ʮԿ͕ Better ͳͷ͔ʯҙݟ͕όϥόϥ

    ϓϧϦΫͷϨϏϡʔͰᎍΊΔ

    View Slide

  100. ɹ ੈؒͰ “ྑ͍” ͱݴΘΕ͍ͯΔ΋ͷ
    ಡΉ → νʔϜ಺Ͱ࿩͠߹͏ → શવΘ͔ΒΜʂ → ಄ͷย۱ʹ࢒Δ

    IUUQTXXXPSFJMMZDPKQCPPLTɹɹIUUQXXXTIPFJTIBDPKQCPPLEFUBJMɹɹIUUQXXXTCDSKQQSPEVDUTIUNM

    IUUQXXXTIPFJTIBDPKQCPPLEFUBJMɹɹIUUQTUIMJHIUDPNCMPHVODMFCPCUIFDMFBOBSDIJUFDUVSFIUNMɹɹIUUQTNBSUJOGPXMFSDPNBSUJDMFTNJDSPTFSWJDFTIUNM

    View Slide

  101. ɹ গͣͭ͠ݟ͑ͯ͘Δ
    ໰୊ʹͿ͔ͭΔ

    → ରԠ͢Δ

    → ޙ෇͚Ͱʮ͜Ε͕XXύλʔϯͩͬͨͷͰ͸ʁʯ

    → ঃʑʹʢࣗ෼ͨͪͳΓͷʣೝࣝΛἧ͍͑ͯͬͨ

    IUUQTXXXQFYFMTDPNQIPUPCMBDLCPBSECVTJOFTTDIBMLCPBSEDPODFQU

    View Slide

  102. ɹ ՄೳͳൣғͰগͣͭ͠௚͢
    ྫʣશͯΛ୲͏CommonClass → ໾ׂͰ੾Γग़͢
    ϘʔΠεΧ΢τݪଇ

    ৮Δ͍ͭͰʹෳࡶ౓ΛԼ͛Δ

    IUUQTXXXQFYFMTDPNQIPUPBEVMUBEWFOUVSFCBDLQBDLEBZMJHIU

    View Slide

  103. “ΠςϨʔγϣϯ” ͱ “ਖ਼͍͠ϑΥʔΧε”
    ɹϨΨγʔγεςϜ΋ಉ͡

    దԠ
    ݕࠪ

    View Slide

  104. ɹ“ιϑτ΢ΣΞ” ʹ஫໨ͯ͠ؾ෇͘
    υΩϡϝϯτະ൓өͷ࢓༷ʢʹ޿ࠂͷදࣔॱϩδοΫʣ
    Λࣗओௐࠪ 

    → վળࢪࡦΛఏҊ

    ఏҊ಺༰ͦͷ··Ͱ͸ͳ͔͕ͬͨ ࢪࡦʹͭͳ͕ͬͨ

    [email protected]

    View Slide

  105. ɹຊ೔࿩͢಺༰ʢ࠶ܝʣ

    ৽ถΤϯδχΞ

    ௿͍εΩϧϨϕϧ
    19νʔϜ͔Βಉ࣌ґཔ

    ଟ༷ͳεςʔΫϗϧμʔ
    10೥෺ɾେن໛

    ϨΨγʔγεςϜ
    4ϲ݄Ͱ120Ҋ݅Λ͞͹͘ ϢʔβʔΞΫγϣϯ਺2.8ഒ
    ࢼߦࡨޡ

    ϘτϧωοΫΛ1ͭ1۪ͭ௚ʹղফ x ݁ՌతʹΞδϟΠϧϓϥΫςΟε

    View Slide

  106. ੍໿͕ଟ͍ͱ͖ͦ͜
    ● ϘτϧωοΫͷಛఆͱղফ
    ● ෢ثʢΞδϟΠϧϓϥΫςΟεʣ
    → ୹ظؒͰ੒ՌΛ্͛Δ͜ͱ͕Ͱ͖Δ

    ɹ఻͍͑ͨ͜ͱʢ࠶ܝʣ

    View Slide

  107. 1. ʲഎܠʳάϩʔεϋοΫͩʂ
    2. ʲ՝୊ʳεςʔΫϗϧμʔ͕Ϡό͍ʂ
    3. ʲ՝୊ʳ։ൃεΩϧ͕Ϡό͍ʂ
    4. ʲ՝୊ʳγεςϜ͕Ϡό͍ʂ
    5. ʲ·ͱΊʳΞδϦςΟͩʂ

    ɹΞδΣϯμ

    View Slide

  108. ɹॳ݄࣮੷

    6ରԠ /
    27ґཔ

    View Slide

  109. ɹͲͷνʔϜ΋ࢪࡦ͕ଧͯͳ͍

    ࢪࡦ
    ࢪࡦ
    ࢪࡦ
    Blocker

    View Slide

  110. ɹ࠷ऴ݄࣮੷

    43ରԠ /
    43ґཔ

    View Slide

  111. ɹࢪࡦ͕ಈ͖࢝ΊΔ

    ࢪࡦ
    ࢪࡦ
    ࢪࡦ

    View Slide

  112. ɹΞδϦςΟͷ޲্
    ɹɹɹɹɹx
    7.16

    6
    43

    View Slide

  113. ɹ19νʔϜ͔Βͷ120ґཔ / 4ϲ݄

    ґཔݩ Ҋ݅਺
    શମࢪࡦ
    ϞχλϦϯά
    8ू٬
    ηΩϡϦςΟ
    αΠτ#J[
    αΠτ%FW
    αΠτ0QT
    ΞϓϦ#J[
    ΞϓϦ%FT
    ΞϓϦ%FW
    ґཔݩ Ҋ݅਺
    όον#J[
    όον%FW
    σʔλαΠΤϯε
    Πϯϑϥ
    ج൫վળ
    αϒαΠτ"%FW
    αϒαΠτ##J[
    αϒαΠτ#%FW
    αϒαΠτ$%FW
    ߹ܭ

    View Slide

  114. ɹΞΫγϣϯ਺ 2.8ഒ

    View Slide

  115. ɹຊ೔࿩͢಺༰

    ৽ถΤϯδχΞ

    ௿͍εΩϧϨϕϧ
    19νʔϜ͔Βಉ࣌ґཔ

    ଟ༷ͳεςʔΫϗϧμʔ
    10೥෺ɾେن໛

    ϨΨγʔγεςϜ
    4ϲ݄Ͱ120Ҋ݅Λ͞͹͘ ϢʔβʔΞΫγϣϯ਺2.8ഒ
    ࢼߦࡨޡ

    ϘτϧωοΫΛ1ͭ1۪ͭ௚ʹղফ x ݁ՌతʹΞδϟΠϧϓϥΫςΟε

    View Slide

  116. ɹϘτϧωοΫʹϑΥʔΧε͢Δ 1/ 2
    ɹɹɹɹɹɹɹ1. ૊৫ɾϓϩηε

    ɹɹɹɹɹɹɹ2. ݸਓεΩϧ

    ɹɹɹɹɹɹɹ3. γεςϜɾٕज़
    ɹɹɹɹɹɹ1ͭ1ͭղফ͍ͯͬͨ͠

    View Slide

  117. ɹϘτϧωοΫʹϑΥʔΧε͢Δ 2 / 2
    ࠷΋େ͖ͳ໰୊ͷಛఆ
    සൟʹΠςϨʔγϣϯΛճ͢

    ↓

    ޮՌతͳղফࡦ
    ݁ՌతʹΞδϟΠϧϓϥΫςΟεʹͳΓ͏Δ

    View Slide

  118. ੍໿͕ଟ͍ͱ͖ͦ͜
    ● ϘτϧωοΫͷಛఆͱղফ
    ● ෢ثʢΞδϟΠϧϓϥΫςΟεʣ
    → ୹ظؒͰ੒ՌΛ্͛ΒΕΔ

    ɹ఻͍͑ͨ͜ͱ

    View Slide

  119. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
    presented by @yuzutas0

    View Slide