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

エンジニアのチーム開発入門 - 心技体を磨いて自身とチームをより良くしよう / Being geek in the team

エンジニアのチーム開発入門 - 心技体を磨いて自身とチームをより良くしよう / Being geek in the team

DevOps、スクラム開発、アジャイル、レビュー、ペアプログラミング…「チーム開発」というと様々な粒度で多くの視点からの作法やツールがありますが、ここでは「エンジニアがチームへ貢献するために心構え、使う道具、プライベート活動をより充実させる」という観点でお話します。

Yusuke Wada

April 14, 2017
Tweet

More Decks by Yusuke Wada

Other Decks in Programming

Transcript

  1. ΤϯδχΞͷνʔϜ։ൃ
    ϞόΠϧΞϓϦνʔϜ։ൃ࣮ફೖ໳

    View Slide

  2. ࣗݾ঺հ
    ࿨ా༞հ

    1987೥7݄6೔ര஀

    ෱Ԭݝ๺۝भࢢग़਎

    ͍͍ੜ׆ -> Ϋϥεϝιου

    αʔόαΠυΞϓϦέʔγϣ
    ϯ։ൃΛओ୲౰

    ࠷ۙͷڵຯ͸ Akka Streams

    View Slide

  3. ฏ௩໌ଠࢠͷັྗ
    ͋Δ౦ژਓʮ෱Ԭͷ໌ଠࢠ
    ͸ɺͲ͜ͷϝʔΧʔ΋ಉ͡
    ຯ͕͢Δʯ



    ൿ఻ͷλϨͱ10ஈ֊ͷຯ෇
    ͚ɾਏ͞ʹΑΓ൒͹ϠέΫ
    ιͳ͕Βѹ౗తࠩผԽʹ੒
    ޭ
    ฏ௩໌ଠࢠţŪŖžŖ http://www.hira-tsuka.co.jp/hpgen/HPB/entries/4.html

    View Slide

  4. νʔϜ։ൃεΩϧ͸ݸਓͷ΋ͷͩ͠ΑΓྑ͘Ͱ͖Δ

    View Slide

  5. ஫ҙ఺1
    ͍ͪ αʔόʔαΠυΤϯδχΞͷࢹ఺Ͱ͢

    ߟ͑ํͷ1αϯϓϧʹ͍ͯͩ͘͠͞

    View Slide

  6. ஫ҙ఺2
    ந৅త͔ͭײ৘ͷ࿩͕ଟΊͰ͢

    View Slide

  7. ຊ୊ͷલʹ

    View Slide

  8. IT༐ऀͷઓಆྗͬͯ
    ࣮੷ʁ

    ऩೖʁ

    ਓ຺ʁ

    View Slide

  9. ແݶʹࢦඪ͋Γ·͢ΑͶ

    View Slide

  10. ʩ
    ʩ
    ݸਓٕೳ
    νʔϜ։ൃεΩϧ

    View Slide

  11. ʩ
    ʩ
    ݸਓٕೳ
    νʔϜ։ൃεΩϧ
    νʔϜ։ൃεΩϧ͸ɺ

    ͋ΒΏΔೳྗͷϕʔεʹ

    ͳΔͱࢥ͍·͢

    View Slide

  12. ͡Ό͋ɺνʔϜ։ൃεΩϧͬͯԿʁ

    View Slide

  13. Slack
    ͙͢ʹฦࣄΛ͢Δ
    ϗϫΠτϘʔυ
    िҰͰҿΈʹߦ͘
    Cacoo
    ChatWork
    GitHub
    ϨϏϡʔίϝϯτΛ
    ਓΛ੹ΊΔͳίʔυΛ੹ΊΑ
    ࡶஊ
    ʮͰ͖·ͤΜʯ
    ϝʔϦϯάϦετ
    ʮҙਤʯΛίϝϯτʹॻ͘
    ࣗ෼ΑΓ༏लͳਓΛ࠾༻͢Δ

    ਖ਼௚Ͱ͋Ε
    ࣾ಺੓࣏൓ର
    ಀ͛Δ
    զຫ͢Δ
    ཱྀߦ΁ߦ͜͏
    ࡶஊ զຫ͠ͳ͍
    ʮ΍Γ·͢ʯ
    ͡Ό͋ɺνʔϜ։ൃεΩϧͬͯԿʁ

    View Slide

  14. Slack
    ͙͢ʹฦࣄΛ͢Δ
    ϗϫΠτϘʔυ
    िҰͰҿΈʹߦ͘
    Cacoo
    ChatWork
    GitHub
    ϨϏϡʔίϝϯτΛ
    ਓΛ੹ΊΔͳίʔυΛ੹ΊΑ
    ࡶஊ
    ʮͰ͖·ͤΜʯ
    ϝʔϦϯάϦετ
    ʮҙਤʯΛίϝϯτʹॻ͘
    ࣗ෼ΑΓ༏लͳਓΛ࠾༻͢Δ

    ਖ਼௚Ͱ͋Ε
    ࣾ಺੓࣏൓ର
    ಀ͛Δ
    զຫ͢Δ
    ཱྀߦ΁ߦ͜͏
    ͡Ό͋ɺνʔϜ։ൃεΩϧͬͯԿʁ
    ࡶஊ զຫ͠ͳ͍
    ʮ΍Γ·͢ʯ
    ཻ౓΋ࢹ఺΋͹Β͹Β

    ৺ɾٕɾମͷϨϕϧײ

    ΤϯδχΞࢹ఺

    View Slide

  15. ΤϯδχΞͷνʔϜ։ൃεΩϧ
    ײ৘Λίϯτϩʔϧ͢Δ

    ద੾ͳಓ۩Λ࢖͏

    ࣗ෼ͷੜ׆Λେࣄʹ͢Δ

    View Slide

  16. എܠͷڞ༗

    View Slide

  17. ϙΠϯταʔϏεͷ
    ϞόΠϧΞϓϦΛ࡞Δ

    View Slide

  18. ࣌ܥྻ
    2016೥3݄ : ࣮૷ϑΣʔζ͕ͩ࢓༷ॻ͕ͳ͍

    2016೥6݄ : Ұ࣍ϦϦʔε

    2016೥9݄ : جװγεςϜͷೖΕସ͑

    2016೥12݄ : ೋ࣍ϦϦʔε

    ݱࡏ : อक

    View Slide

  19. νʔϜߏ੒
    ͓٬༷

    ϓϩδΣΫτϚωʔδϟʔ

    σβΠφʔ

    iOSΤϯδχΞɺAndroidΤϯδχΞ

    CMSΤϯδχΞ

    ϞόΠϧAPIΤϯδχΞˎ

    View Slide

  20. ײ৘ͷ
    ίϯτϩʔϧ

    View Slide

  21. Why?
    ࣗ෼ͱνʔϜϝϯόʔ͸ҧ͏

    ߟ͑ํ΋ҧ͏ ʮΏͣΕͳ͍΋ͷʯ΋ҧ͏

    ΈΜͳͰҰ৺ಉମཧ૝ ͔͠͠ݱ࣮͸ແ৘

    ײ৘͕ੜ·ΕΔ

    ײ৘͸ύϑΥʔϚϯεʹӨڹ͢Δ

    View Slide

  22. Why?
    ࣗ෼ͱνʔϜϝϯόʔ͸ҧ͏

    ߟ͑ํ΋ҧ͏

    ΈΜͳͰҰ৺ಉମ ͱ͍͏Θ͚ʹ͸͍͔ͳ͍

    ײ৘͕ੜ·ΕΔ

    ײ৘͸ύϑΥʔϚϯεʹӨڹ͢Δ
    νʔϜ಺Ͱੜ͡Δײ৘Λ

    ࣗ෼ͷ੍ޚԼʹ͓͘

    शಘɾ஁࿉Մೳͳٕज़

    View Slide

  23. ײ৘ͷίϯτϩʔϧTips
    ଚܟ͔Β࢝ΊΔ

    ൱ఆܗΛճආ͢Δ

    ఆ࣌Ͱୀࣾ͢Δ

    View Slide

  24. ײ৘ͷίϯτϩʔϧTips
    ଚܟ͔Β࢝ΊΔ
    ൱ఆܗΛճආ͢Δ

    ఆ࣌Ͱୀࣾ͢Δ

    View Slide

  25. ଚܟ͔Β͸͡ΊΔ
    όά͕ग़ͨ

    ΍Δ΂͖λεΫ͕ऴΘ͍ͬͯͳ͍

    ϦϦʔεʹؒʹ߹Θͳ͍

    ॳظͷޙઌߟ͑ͳ͍࣮૷ʹΑΔٕज़తෛ࠴͕ਏ͍

    View Slide

  26. ଚܟ͔Β͸͡ΊΔ
    όά͕ग़ͨ

    ΍Δ΂͖λεΫ͕ऴΘ͍ͬͯͳ͍

    ϦϦʔεʹؒʹ߹Θͳ͍

    ॳظͷޙઌߟ͑ͳ͍࣮૷ʹΑΔٕज़తෛ࠴͕ਏ͍
    ୭ͷ੹೚΍ʂ

    νʔϜͷ੹೚Ͱ͢

    Θͨ͠ͷ੹೚Ͱ΋͋Γ·͢

    View Slide

  27. ҈෼͞Εͨ੹೚ΛͲ͏͸ͨ͢ʁ
    ஞҰ౰ࣄऀʹͳͬͯରԠ͢Δͷ͸ແཧ

    ϦεϖΫτۦಈίϛϡχέʔγϣϯͰɺඈͼަ͏
    ձ࿩ʹ৐Δײ৘Λ৺஍Α͍΋ͷʹ͢Δ

    ײ৘ͱ΍Δ΂͖͜ͱ͕ྑ͍ҙຯͰ੾Γ཭͞Εɺ͠
    ͔Δ΂͖༏ઌ౓Ͱରॲ͞ΕΔ

    View Slide

  28. ϦεϖΫτۦಈʹͨ͠ྫ
    όά͕ग़ͨ
    ΋ࣗ͠෼͕౰࣌ͷঢ়گͰ΍͍ͬͯͨΒɺ΋ͬͱͻͲ͍͜ͱ
    ʹͳ͍ͬͯͨͩΖ͏ͳɻ̋̋͞Μ͔ͩΒ͜ͷఔ౓ͰࡁΜͩ
    Μͩɻ
    ॳظϦϦʔεͷλΠτͳεέδϡʔϧͷதͰ̋̋͞Μ͕׬
    ੒ͤͯ͘͞Ε͓͔ͨ͛Ͱɺ։ൃඅ༻͕΋Β͑ͨͷͩ͠ɺࠓ
    ΋੒௕͍ͯ͠ΔΜͩɻ
    ٕज़తෛ࠴͕͋Δ

    View Slide

  29. ײ৘ͷίϯτϩʔϧTips
    ଚܟ͔Β࢝ΊΔ

    ൱ఆܗΛճආ͢Δ
    ఆ࣌Ͱୀࣾ͢Δ

    View Slide

  30. ൱ఆܗΛճආ͢Δ
    ؆୯ͳ࿩ͰɺߠఆΑΓ΋൱ఆͷ΄͏͕ҙຯ͕޿͘
    ͳΔ
    ࠨӈΛ֬ೝ͠·͠ΐ͏
    ඈͼग़͢ͳʂ
    ԣஅาಓͰͷ҆શ֬อ
    Ұ౓ࢭ·Γ·͠ΐ͏

    View Slide

  31. ൱ఆܗΛճආ͢Δ
    ؆୯ͳ࿩ͰɺߠఆΑΓ΋൱ఆͷ΄͏͕ҙຯ͕޿͘
    ͳΔ
    ࠨӈΛ֬ೝ͠·͠ΐ͏
    ඈͼग़͢ͳʂ
    ԣஅาಓͰͷ҆શ֬อ
    Ұ౓ࢭ·Γ·͠ΐ͏
    ਓؒͷӡಈਆܦ͸

    ൱ఆܗͷ໋ྩΛ΋ͱʹ͸

    ಈ͔ͤͳ͍ʢض͋͛ήʔϜʣ

    ݸʑਓͷ೴಺Ͱม׵͕૸Δ

    ղऍͷ༨஍͕ൃੜ͢Δ

    View Slide

  32. ൱ఆܗΛճආ͠ҙਤΛ໌֬ʹ
    ϝϯόʔʹ൱ఆܗΛ࢖ͬͯ͠·͏৔߹ɺࣗ෼ͱ͠
    ͯ΋Ͳ͏͢Ε͹͍͍͔Θ͔͍ͬͯͳ͍͜ͱ͕ଟ͍

    ྫ: όάΛग़͢ͳɺϦϦʔεʹ஗ΕΔͳɺ͓٬͞Μ
    ΛࠔΒͤΔͳ…

    ݁Ռɺࣗ෼ͷҙਤͱ૬खͷΞ΢τϓοτʹͣΕ͕
    ੜ͡ɺ͓ޓ͍ͷϞϠϞϠʹͭͳ͕Δ

    View Slide

  33. ൱ఆܗΛճආ͠ҙਤΛ໌֬ʹ
    ϝϯόʔʹ൱ఆܗΛ࢖ͬͯ͠·͏৔߹ɺࣗ෼ͱ͠
    ͯ΋Ͳ͏͢Ε͹͍͍͔Θ͔͍ͬͯͳ͍͜ͱ͕ଟ͍

    ྫ: όάΛग़͢ͳɺϦϦʔεʹ஗ΕΔͳɺ͓٬͞Μ
    ΛࠔΒͤΔͳ…

    ݁Ռɺࣗ෼ͷҙਤͱ૬खͷΞ΢τϓοτʹͣΕ͕
    ੜ͡ɺ͓ޓ͍ͷϞϠϞϠʹͭͳ͕Δ
    ൱ఆܗͷϝοηʔδ͕ग़ͯདྷ͖ͨΒ

    ૬ޓνΣοΫͯ͠۩ମԽ͠·͠ΐ

    View Slide

  34. ൱ఆܗม׵ྫ
    ɹ൱ఆܗ ߠఆܗ མͪண͍ͯߟ͑Δͱ
    όάΛग़͢ͳ ׬ᘳʹ͠Ζ
    ͔͜͜Β͞Βʹ඼࣭Λ্͛Δ
    ͨΊʹ͸ɺԿ͕ඞཁʁ
    Πέͯͳ͍ΑͶ φ΢͘͠Α͏
    ΋ͬͱϞμϯʹ͍ͨ͠ɻͦΕ
    Ͱ͓ಘʹͳΔ͜ͱͱ͍͑͹…
    ๊͑ࠐΉͳΑ ૬ஊ͠Α͏Α
    ͍͍ͬͨԿΛ๊͍͑ͯͯɺͳ
    ΜͰ๊͑ࠐΉͷͩΖ͏ʁ
    ϦεΫΛڪΕΔͳ ϦεΫ͸ແࢹ͠Ζ
    νʔϜΛϦεΫ͔Βղ์͢Δ
    ͨΊʹɺԶ͸ԿΛ͢Δʁ
    ײ৘తʹͳΔͳ ײ৘Λࡴͤ
    ͜ͷਓɺ͍·ɺ͜Μͳʹౖͬ
    ͯΔͷ͸ͳΜͰͩΖ͏ʁ

    View Slide

  35. ײ৘ͷίϯτϩʔϧTips
    ଚܟ͔Β࢝ΊΔ

    ൱ఆܗΛճආ͢Δ

    ఆ࣌Ͱୀࣾ͢Δ

    View Slide

  36. ఆ࣌Ͱୀࣾ͢Δ
    ײ৘ͱؔ܎͋Γ·͢ʁ => ͋Γ·͢

    ஗͘·Ͱ࢒ۀ͢Δͱɿ

    ͔ͤͬ͘Զ͕࢒ۀͯ͠ਐΊͨͷʹख໭Γ͔Α

    ͳΜͰԶ͸͓ͦ͘·Ͱ΍ͬͯΔͷʹ͍͋ͭͷ΄͏͕1
    ࣌ؒ͸΍͘ؼΔΜͩ

    ͋ʔ͋ࡢ೔4͔࣌ؒ͠৸ͯͳ͍Θʔ

    View Slide

  37. ఆ࣌Ͱୀࣾ͢Δ
    ఆ࣌Ͱୀࣾ͢Δश׳ͩͱɿ

    ख໭Γʁ·͋ࠓ೔͘Β͍࢒ۀ͢Δ͔

    ໺ٿ؍ઓͷͨΊୀࣾͰ͔͢ʁ͍͍Ͱ͢Ͷ

    ☺ 7࣌ؒ৸ͨ͠ମௐྑ͍

    View Slide

  38. ఆ࣌Ͱୀࣾ͢Δ
    ఆ࣌Ͱୀࣾ͢Δश׳ͩͱɿ

    ख໭Γʁ·͋ࠓ೔͘Β͍࢒ۀ͢Δ͔

    ໺ٿ؍ઓͷͨΊୀࣾͰ͔͢ʁ͍͍Ͱ͢Ͷ

    ☺ 7࣌ؒ৸ͨ͠ମௐྑ͍
    ࡉ͔͍ͱ͜Ζͷϝϯλϧϔϧε͕

    ͥΜͥΜ͕͍ͪ·͢ɻ

    ߹ࢉ͢Δͱ͔ͳΓͷࠩͰ͢ɻ

    ࢒ۀ͸ʮ࠷ऴखஈʯʹ͍ͨ͠

    View Slide

  39. Ͳ͏͙
    Λ ͔ͭ͏

    View Slide

  40. Why?
    νʔϜ΁ߟ͑Λ఻͑ΔͨΊʹ͸೔ຊޠ͚ͩͰ͸଍Γͳ
    ͍ͱ͖͕͋Δ

    ಛʹΞϓϦΤϯδχΞ - αʔόαΠυΤϯδχΞ ͷΑ
    ͏ʹϨΠϠ͕ҟͳΔϝϯόʔؒ

    ਤ΍σʔλߏ଄Ͱදݱ͠Α͏ͱ͢Δ΋ϑΥʔϚοτ͕
    ͹Β͹ΒͰ͸ϝϯςͰ͖ͳ͍

    ௠෗Խ͢Δ͠ݟΒΕͳ͘ͳΔ͠ϝϯς΋͞Εͳ͘ͳΔ

    View Slide

  41. νʔϜ΁ߟ͑Λ఻͑ΔͨΊʹ͸೔ຊޠ͚ͩͰ͸଍Γͳ
    ͍ͱ͖͕͋Δ

    ಛʹΞϓϦΤϯδχΞ - αʔόαΠυΤϯδχΞ ͷΑ
    ͏ʹϨΠϠ͕ҟͳΔϝϯόʔؒ

    ਤ΍σʔλߏ଄Ͱදݱ͠Α͏ͱ͢Δ΋ϑΥʔϚοτ͕
    ͹Β͹ΒͰ͸ϝϯςͰ͖ͳ͍

    ௠෗Խ͢Δ͠ݟΒΕͳ͘ͳΔ͠ϝϯς΋͞Εͳ͘ͳΔ
    Why?
    ΠϯλʔϑΣʔεΛ

    ౷Ұ͢Δ໨తͰ

    ಓ۩Λ࢖͏

    View Slide

  42. ద੾ͳಓ۩Λ࢖͏
    PlantUML

    API Blueprint

    Charles

    ※ϞόΠϧΞϓϦ։ൃલఏ

    View Slide

  43. ద੾ͳಓ۩Λ࢖͏
    PlantUML
    API Blueprint

    Charles

    View Slide

  44. PlantUML
    ओʹγʔέϯεਤͱΫϥεਤ

    γʔέϯεਤɿ࢓༷ͷղऍͷͨΊʹ࢖͏

    Ϋϥεਤɿιϑτ΢ΣΞઃܭͷཧղͷॿ͚ʹ͢Δ

    View Slide

  45. γʔέϯεਤ
    ϑϩϯτଆϝϯόʔ΍Ϛωʔ
    δϟʔʹݟͯ΋Β͏ͷʹ࠷


    ϒϥοΫϘοΫεʹͳΓ͕
    ͪͳόοΫΤϯυଆͷॲཧ
    ͷྲྀΕΛ໌֬ʹ͢Δ

    View Slide

  46. Ϋϥεਤ
    PRͷ͓ͱ΋ʹ

    GitHubͷPRͰݟΔdiff͸Ͳ
    ͏ͯ͠΋ύοέʔδߏ੒͕
    ϑϥοτʹͳΔ

    ϨϏϡΞʔͷॿ͚ʹͳΔ

    View Slide

  47. Ϋϥεਤ
    PRͷ͓ͱ΋ʹ

    GitHubͷPRͰݟΔdiff͸Ͳ
    ͏ͯ͠΋ύοέʔδߏ੒͕
    ϑϥοτʹͳΔ

    ϨϏϡΞʔͷॿ͚ʹͳΔ
    γʔέϯεਤ΍Ϋϥεਤͷ࡞੒ʹ

    PlantUMLΛ࢖͏Α͏ʹ͢Ε͹

    ࣗવͱϑΥʔϚοτͷϧʔϧΛ౷ҰͰ͖Δ

    ࢓༷ͷදݱͰ࡞ਤ͢Δೳྗ͕਎ʹͭ͘

    View Slide

  48. ద੾ͳಓ۩Λ࢖͏
    PlantUML

    API Blueprint
    Charles

    View Slide

  49. API Blueprint
    API ࢓༷ॻ࡞੒πʔϧ

    Markdown֦ுͰهࡌՄೳ

    ϑϩϯτϝϯόʔͱͷAPIͷ࢓༷
    ௐ੔͸API Blueprint υΩϡϝϯτ
    ͷ issue ΍ Pull Request Ͱߦ͏

    View Slide

  50. API Blueprint
    API ࢓༷ॻ࡞੒πʔϧ

    Markdown֦ுͰهࡌՄೳ

    ϑϩϯτϝϯόʔͱͷAPIͷ࢓༷
    ௐ੔͸API Blueprint υΩϡϝϯτ
    ͷ issue ΍ Pull Request Ͱߦ͏
    ࠷৽ͷI/F࢓༷Λڞ௨ೝࣝͷ΋ͱϝϯς

    ʮݴͬͨʯʮݴΘͳ͍ʯΛഉআͰ͖Δ

    API࢓༷ͷ࡞੒ํ๏͕਎ʹͭ͘

    View Slide

  51. GitHubͰͷ؅ཧ͕Մೳ
    PlantUML΋API Blueprint΋ςΩετϕʔε

    ͱ͍͏͜ͱ͸ιʔείʔυͱͯ͠؅ཧՄೳ

    GitHubͰυΩϡϝϯτ؅ཧɺ௥ه΍मਖ਼͸issue,
    Pull Request, tags ͱ͍ͬͨΤίγεςϜ͕ͦͷ··
    ద༻Մೳ

    View Slide

  52. ద੾ͳಓ۩Λ࢖͏
    PlantUML

    API Blueprint

    Charles

    View Slide

  53. Charles
    Mac OS Ͱར༻Ͱ͖Δ Proxy Server ͷπʔϧ

    ϞόΠϧΞϓϦ͔Βͷ௨৴Λ๣डͰ͖Δ

    ։ൃதͷҙਤ͠ͳ͍ϦΫΤετ಺༰ʹ͍ͭͯઆ໌
    ͨ͠Γɺෆ଍͍ͯ͠ΔϨεϙϯε৘ใʹ͍ͭͯٞ
    ࿦͢Δࡍʹ༗༻ʢ૬ख͕୭Ͱ΋ʣ

    View Slide

  54. Charles
    ϦΫΤετɾϨεϙ
    ϯεରԠ

    ϔομɺϘσΟͳͲ

    HTTPS΋OK

    View Slide

  55. ։ൃத΋ӡ༻த΋I/Fͷ֬ೝ͸ൃੜ
    ΞϓϦը໘ʹσʔλ͕දࣔ͞Εͳ͍ͷͰ͕͢ɺ

    Ϩεϙϯεͷܗͬͯ߹ͬͯ·͢ʁ
    ͲΜͳϦΫΤετૹͬͯ·͢ʁ
    αʔόʔଆͷΞϓϦέʔγϣϯϩά

    ݟ͍͚ͯͨͩ·ͤΜ͔ʁ
    ϩάಛఆ͢ΔͷͰձһ൪߸ڭ͍͑ͯͩ͘͞ɻ

    ֬ೝͳΜͰ͕͢ϦΫΤετ͸ਖ਼ৗʹૹΒΕͯ·͢ΑͶ

    View Slide

  56. ։ൃத΋ӡ༻த΋I/Fͷ֬ೝ͸ൃੜ
    ΞϓϦը໘ʹσʔλ͕දࣔ͞Εͳ͍ͷͰ͕͢ɺ

    Ϩεϙϯεͷܗͬͯ߹ͬͯ·͢ʁ
    ͲΜͳϦΫΤετૹͬͯ·͢ʁ
    αʔόʔଆͷΞϓϦέʔγϣϯϩά

    ݟ͍͚ͯͨͩ·ͤΜ͔ʁ
    ϩάಛఆ͢ΔͷͰձһ൪߸ڭ͍͑ͯͩ͘͞ɻ

    ֬ೝͳΜͰ͕͢ϦΫΤετ͸ਖ਼ৗʹૹΒΕͯ·͢ΑͶ
    Proxy Tools ࢖͍·͠ΐ͏

    αʔόʔαΠυΞϓϦͷ

    σόοάʹ΋࢖͑·͢

    View Slide

  57. ੜ׆͍ͩ͡ʹ

    View Slide

  58. Why?
    ৺਎ͷ݈߁ঢ়ଶ͸ύϑΥʔϚϯεʹ௚݁͢Δ

    اۀʹॴଐ͍ͯ͠ΔҎ্ɺձࣾʹɺνʔϜʹߩݙ
    ͢Δ͜ͱ͸ͱͯ΋େࣄ͕ͩɺτοϓϓϥΠΦϦςΟ
    ͸ࣗ෼Ͱ͋Δ͜ͱΛ๨Εͳ͍Α͏ʹ͢Δ

    ࣗ෼ͷϨϕϧ্͕͕Ε͹νʔϜͷϨϕϧ΋্͕Δ

    View Slide

  59. ࣗ෼ͷੜ׆Λେࣄʹ͢Δ
    ༗څٳՋΛͱΔ

    ேϥϯɺ໷δϜɺΧϑΣ࡞ۀ

    ࢓ࣄΛੜ׆ͷαϒλεΫʹ͢Δ

    View Slide

  60. ༗څٳՋΛͱΔ
    3݄຤ʹάΞϜ͍͖ͬͯ·ָ͔ͨͬͨ͠͠Ͱ͢

    View Slide

  61. ༗څٳՋΛͱΔ
    3݄຤ʹάΞϜ͍͖ͬͯ·ָ͔ͨͬͨ͠͠Ͱ͢
    ओ࡞༻ɿ৺਎ͷϦϑϨογϡ

    ෭࡞༻ɿݖརΛߦ࢖͢ΔΫηΛ͚ͭΔ

    View Slide

  62. ேϥϯɺ໷δϜɺΧϑΣ࡞ۀ

    View Slide

  63. ேϥϯɺ໷δϜɺΧϑΣ࡞ۀ
    ओ࡞༻ɿମྗ஌ྗUP

    ෭࡞༻ɿࣗ෼ͷͨΊͷ࣌ؒ࿮Λઃఆ͢Δ

    View Slide

  64. ࢓ࣄΛੜ׆ͷαϒλεΫʹ͢Δ
    Q. ͋ͳͨͷੜ׆ͱ࢓ࣄͷؔ܎͸ʁ
    ੜ׆ ࢓ࣄ ੜ׆ ࢓ࣄ
    ࢓ࣄ

    ੜ׆
    ੜ׆

    ࢓ࣄ

    View Slide

  65. ࢓ࣄΛੜ׆ͷαϒλεΫʹ͢Δ
    Q. ͋ͳͨͷੜ׆ͱ࢓ࣄͷؔ܎͸ʁ
    ੜ׆ ࢓ࣄ ੜ׆ ࢓ࣄ
    ࢓ࣄ

    ੜ׆
    ੜ׆

    ࢓ࣄ
    ͜Εʹ͠Α͏ʂ

    View Slide

  66. ࢓ࣄΛੜ׆ͷαϒλεΫʹ͢Δ
    Q. ͋ͳͨͷੜ׆ͱ࢓ࣄͷؔ܎͸ʁ
    ੜ׆ ࢓ࣄ ੜ׆ ࢓ࣄ
    ࢓ࣄ

    ੜ׆
    ੜ׆

    ࢓ࣄ
    ͜Ε͕͍͍ͱࢥ͍·͢
    ओ࡞༻ɿ͍ͨͣΒͳ࢓ࣄͷ༏ઌ౓্ঢΛ๷ࢭ

    ෭࡞༻ɿٳΉ͜ͱɺ༡Ϳ͜ͱʹશྗΛ஫͛Δ

    View Slide

  67. ·ͱΊ

    View Slide

  68. ײ৘ίϯτϩʔϧ ಓ۩Λ࢖͏ ੜ׆Λେࣄʹ
    ଚܟ͔Β࢝ΊΔ PlantUML ༗څٳՋΛͱΔ
    ൱ఆܗΛճආ͢Δ API Blueprint
    ேϥϯ໷δϜ

    ՋΧϑΣ
    ఆ࣌ͰؼΔ Charles
    ੜ׆λεΫ

    └ ࢓ࣄ

    View Slide

  69. ײ৘ίϯτϩʔϧ ಓ۩Λ࢖͏ ੜ׆Λେࣄʹ
    ଚܟ͔Β࢝ΊΔ PlantUML ༗څٳՋΛͱΔ
    ൱ఆܗΛճආ͢Δ API Blueprint
    ேϥϯ໷δϜ

    ՋΧϑΣ
    ఆ࣌ͰؼΔ Charles
    ੜ׆λεΫ

    └ ࢓ࣄ
    ͙࣮͢ફͰ͖ͦ͏ͳ΋ͷ͔Β

    “࡞ઓ”ʹऔΓೖΕͯΈ͍ͯͩ͘͞ʂ

    ΍Γ͍ͨ͜ͱΛͭͭ͠νʔϜྗUPʂ

    View Slide

  70. ࢀߟ
    PlantUML http://plantuml.com/

    API Blueprint | API Blueprint https://apiblueprint.org/

    Charles Web Debugging Proxy • HTTP Monitor / HTTP Proxy
    / HTTPS & SSL Proxy / Reverse Proxy https://
    www.charlesproxy.com/

    View Slide