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

How Developer Support Works

How Developer Support Works

「開発支援という仕事」
Battle Conference U30 登壇資料
https://battleconference-u30.connpass.com/event/49985/

Naoki Ainoya

March 11, 2017
Tweet

More Decks by Naoki Ainoya

Other Decks in Programming

Transcript

  1. ։ൃࢧԉͱ͍͏࢓ࣄ
    !OBPLJBJOPZB
    3FDSVJU.BSLFUJOH1BSUOFSTDP MUE

    View Slide

  2. w BJOPZB
    w dNJYJ
    w dOPXSFDSVJU
    w ΠϯϑϥͱΞϓϦ։ൃ͕

    ŧŔŕŪũƄŝſΤϯδχΞ
    BJOPZBJP

    View Slide

  3. View Slide

  4. γϯϓϧͳϏϧυύΠϓϥΠϯπʔϧXBMUFSΛϦϦʔε͠·ͨ͠c"EWBODFE5FDIOPMPHZ-BC
    IUUQBUMSFDSVJUUFDIDPKQCMPH
    8BMUFSWCFUBΛϦϦʔε͠·ͨ͠c"EWBODFE5FDIOPMPHZ-BC
    IUUQBUMSFDSVJUUFDIDPKQCMPH

    View Slide

  5. )PXUPQMBZ4DBMBPOEPDLFSJ[FEJOGSBTUSVDUVSF4QFBLFS%FDL
    IUUQTTQFBLFSEFDLDPNBJOPZBIPXUPQMBZTDBMBPOEPDLFSJ[FEJOGSBTUSVDUVSF

    View Slide

  6. IUUQTFJHPTBQVSJKQ

    View Slide

  7. ΪϦΪϦ6OEFS
    ͋ͱ̑ϲ݄Ͱ͍̏͞Ͱ͕͢
    ͕Μ͹Γ·͢

    View Slide

  8. ࠓ΍͍ͬͯΔ͜ͱ

    View Slide

  9. l։ൃࢧԉz

    View Slide

  10. 4JUF3FMJBCJMJUZ&OHJOFFSJOH
    %FWFMPQFS1SPEVDUJWJUZ&OHJOFFSJOH
    ηΩϡϦςΟରԠ
    ΤϯδχΞ࠾༻ɾਓࣄɾ૊৫׆ੑ
    ࣾ಺*5
    FUDʜ

    View Slide

  11. ࢧԉର৅
    ฐࣾ಺੡։ൃ૊৫಺ͷ
    ෳ਺ϓϩμΫτ܈

    View Slide

  12. l։ൃΛՃ଎ͤ͞ΔͨΊͷ։ൃz
    ͳΒ
    ͳΜͰ΋΍Δ

    View Slide

  13. ͳͥ΍Δͷ͔ʁ

    View Slide

  14. ΤϯδχΞʹ
    σΟʔϓɾϫʔΫ
    ͯ͠΋Β͏ͨΊ

    View Slide

  15. View Slide

  16. େࣄͳ͜ͱʹूத͢Δ

    ϢʔβʹՁ஋Λಧ͚Δ͜ͱ
    ͨͩҰ఺ʹूதͰ͖Δ
    ؀ڥͷͨΊʹ

    View Slide

  17. ϢʔβʹՁ஋Λಧ͚ΔͨΊʹ
    ຊ࣭తͰͳ͍ɺෆཁͳ
    ίετɾ࣌ؒɾ࣌ؒΛ࡟Δ

    γϟϩʔϫʔΫΛۃখԽ͢Δͷ͕໨త

    View Slide

  18. ྫ͑͹

    View Slide

  19. ϋΠύϫʔ$*ϚγϯಋೖͰ
    Ϗϧυ࣌ؒ୹ॖ

    View Slide

  20. Ϗϧυ࣌ؒͷ
    ୹ॖ
    4DBMBϓϩδΣΫτͷ
    ίϯύΠϧ
    ʴ
    ςετ
    ʴ
    EPDLFSJNBHFੜ੒
    ࣌ؒΛʹ

    View Slide

  21. Ϗϧυ࣌ؒͷ୹ॖ
    ʹ
    ࣌ؒ͸ۚͰങ͑Δ
    ʢ͔͔ͨͩ̎̌ສͰ

    View Slide

  22. ͱ͸͍͑ɺ
    ͓ۚͷແବݣ͍͸

    View Slide

  23. ྫ͑͹ɺ2"

    View Slide

  24. Ͱςελʔ͞ΜΛूΊͯ
    ࿑ಇू໿తʹςετ

    View Slide

  25. େྔͷςετ߲໨Λ
    ख࡞ۀͰ࣮ࢪ
    ϦϦʔε·Ͱ੾Ӌ٧·͍ͬͯΔͱ͋Γ͕ͪ

    View Slide

  26. ఆٛʹैͬͯػցతʹ
    ͜ͳͤΔ΋ͷ͸
    ࣗಈԽ͢Δ΂͖

    View Slide

  27. ςελʔ͞Μʹ͸
    ਓؒͰͳ͍ͱൃݟ͕
    ೉͍͠όάΛ୳͢͜ͱʹ
    ूதͯ͠΄͍͠

    View Slide

  28. εϚϗΞϓϦͷςετ
    ࣗಈԽج൫ͷಋೖ

    View Slide

  29. 0QFO45'ͷ
    ಋೖ
    ݕূ୺຤ͷςετϑΝʔϜߏங
    αΠόʔ͞Μ͓ੈ࿩ʹͳͬͯ·͢

    View Slide

  30. 0QFO45'ͷ
    ಋೖ
    ϦϞʔτϫʔΫ࣌΋
    ݕূ୺຤ར༻͕༰қʹ

    View Slide

  31. "QQJVNʹΑΔ
    ࣮ػFFςετ
    ݕূɾಋೖ
    0QFO45'4BVDFMBCTΛ
    ςετϑΝʔϜͱͯ͠
    ࣗಈԽج൫Λߏங
    <3.1Y2VJQQFSNFFUVQ>։ൃͷͨΊͷ։ൃdεϚϗΞϓϦ޲͚FFςετͷݕূಋೖࣄྫΛ௨ͯ͡d4QFBLFS%FDL
    IUUQTTQFBLFSEFDLDPNBJOPZBSNQYRVJQQFSNFFUVQOVNCFSLBJGBGBMTFUBNFGBMTFLBJGBTVNBIPBQVSJYJBOHLFFFUFTVUPGBMTFKJBO[IFOHEBPSVTIJMJXPUPOH[JUF

    View Slide

  32. "QQJVNʹΑΔ
    ࣮ػFFςετ
    ςετ࣮ߦͷ࢓૊ΈΛ
    ੔͑ͨ


    <3.1Y2VJQQFSNFFUVQ>։ൃͷͨΊͷ։ൃdεϚϗΞϓϦ޲͚FFςετͷݕূಋೖࣄྫΛ௨ͯ͡d4QFBLFS%FDL
    IUUQTTQFBLFSEFDLDPNBJOPZBSNQYRVJQQFSNFFUVQOVNCFSLBJGBGBMTFUBNFGBMTFLBJGBTVNBIPBQVSJYJBOHLFFFUFTVUPGBMTFKJBO[IFOHEBPSVTIJMJXPUPOH[JUF

    View Slide

  33. "QQJVNʹΑΔ
    ࣮ػFFςετ
    $IBMMFOHJOHͳ
    औΓ૊Έ΋
    Perceptual diffsʹΑΔσάϨͷݕग़཰ڧԽ

    https://github.com/uber/image-diff
    <3.1Y2VJQQFSNFFUVQ>։ൃͷͨΊͷ։ൃdεϚϗΞϓϦ޲͚FFςετͷݕূಋೖࣄྫΛ௨ͯ͡d4QFBLFS%FDL
    IUUQTTQFBLFSEFDLDPNBJOPZBSNQYRVJQQFSNFFUVQOVNCFSLBJGBGBMTFUBNFGBMTFLBJGBTVNBIPBQVSJYJBOHLFFFUFTVUPGBMTFKJBO[IFOHEBPSVTIJMJXPUPOH[JUF

    View Slide

  34. ࣗಈԽʹΑΔ࡟ݮ
    ͚ͩͰͳ͘ʜ

    View Slide

  35. 2"σΟϨΫγϣϯͷ
    ෛՙ࡟ݮ

    σΟϨΫλʔͷ
    γϟϩʔϫʔΫ࡟ݮ

    View Slide

  36. σΟϨΫλʔҎ֎ʹ΋ʜ
    ΤϯδχΞ୲౰֎ͷ࢓ࣄ
    γϟϩʔϫʔΫͩΒ͚

    View Slide

  37. ྫ͑͹
    ϚʔέςΟϯά୲౰
    σʔλूܭۀ຿

    View Slide

  38. ڪΔ΂͖
    ਓྗεΫϨΠ
    ϐϯά
    ച্ूܭγεςϜ
    σʔλग़ྗ"1*΍
    σʔλμϯϓػೳ͕ͳ͔ͬͨ
    ػೳ௥Ճͷ໨ॲ΋ͨͨͳ͍

    ˣ
    ଞࣾ؅ཧԼͷച্ूܭը໘Λ
    ̍ϖʔδͣͭΊͬͯ͘
    &YDFMʹసࣸʜ

    View Slide

  39. 4DSBQZʹΑΔ
    ͓खܰ
    εΫϨΠϐϯά
    ਓखͰ͸࣮ݱෆՄೳͩͬͨ
    ස౓Ͱͷച্ܭଌ͕
    Ͱ͖ΔΑ͏ʹ

    View Slide

  40. 4DSBQZʹΑΔ
    ͓खܰ
    εΫϨΠϐϯά
    4DSBQZΫϩʔϥ޲͚
    ϑϨʔϜϫʔΫ
    ਺ेߦॻ͚͹ͦͦ͜͜ಈ͘

    Ϋϩʔϥ͕ͭ͘ΕΔ

    ͓͢͢Ί
    http://asheesh.org/pub/scrapy-talk/#1

    View Slide

  41. ϧʔνϯϫʔΫ
    ଞʹ΋·ͩ·ͩͨ͘͞Μ͋Δ

    View Slide

  42. ձٞࣨ༧໿

    View Slide

  43. શࣾඪ४ͷձٞࣨ༧໿γεςϜ
    ͋ΒΏΔ*5Ϧςϥγɾۀ຿ܗଶͷશࣾһ ਺ສਓن໛
    ͕
    ౳͘͠࢖͑Δ΂͘࡞ΒΕͨݹͷγεςϜ

    View Slide

  44. ՄೳͳݶΓ࢖͍΍͘͢
    ม͑Δ͜ͱ͕೉͍͠΋ͷΛ
    ࣗ෼͕ͨͪม͑ΒΕΔൣғͰม͍͑ͯ͘
    ձٞࣨ༧໿ΞϓϦΛ
    ձٞࣨલʹઃஔ
    4MBDLJOUFHSBUJPO

    View Slide

  45. ଞʹ΋͍Ζ͍Ζ
    ίπίπࣗಈԽ

    View Slide

  46. w ϝʔϧͰ͔͠ల։͞Εͳ͍৘ใڞ༗ɻΤϯδχΞ
    औΓ͜΅͢

    4MBDLʹྲྀ͢࢓૊Έ࣮૷ .JDSPTPGUqPXΛར༻

    w QSJWBUFͳTMBDLDIBOOFMͷQVCMJDԽ

    DIBOOFMͷΞʔΧΠϒɾϦωʔϜͱ৽ن࡞੒Λ

    ߦ͏CPU࣮૷
    w ۀ຿πʔϧ܈ͷΞΧ΢ϯτਃ੥ɾ؅ཧ

    (PPHMF'PSN4MBDLͰDIBUPQTͳ෷͍ग़͠

    View Slide

  47. γϟϩʔϫʔΫ͸ΤϯδχΞ͔Β
    ௚઀ݟ͑ͳ͍ͱ͜Ζʹ΋
    ࢁ΄Ͳ͋Δ

    View Slide

  48. ίετͱ࣌ؒ͸
    ͪΓͭ΋ࣜʹ૿͑ͯ
    ϦϦʔε଎౓Λ஗ͤ͘͞Δ

    View Slide

  49. –Tom DeMarco, দݪ ༑෉༁ ʮϐʔϓϧ΢ΣΞʯ
    lձࣾͷϧʔνϯϫʔΫ͸ɺबۀ࣌ؒʹݟ߹͏ͱ
    ͜Ζ·Ͱ๲ு͢Δ܏޲͕͋Δz

    View Slide

  50. ΤϯδχΞྲྀͷղܾ๏Ͱ
    γϟϩʔϫʔΫΛ
    ௵͍͖ͯ͠·͠ΐ͏

    View Slide

  51. (4ͷهࣄ
    IUUQTXXXUFDIOPMPHZSFWJFXKQTBTHPMENBOFNCSBDFTBVUPNBUJPOFWFOUIFNBTUFSTPGUIFVOJWFSTFBSFUISFBUFOFE

    View Slide

  52. –Joel Spolsky ੨໦ ༃༁ ʮMore Joel on Softwareʯ
    l͝Έ͋Δͱ͜Ζʹۚ͸͋Δz

    View Slide

  53. –Eric Sink, ੨໦ ༃༁ ʮֵ৽తιϑτ΢ΣΞاۀͷ࡞Γํʯ
    lιϑτ΢ΣΞ։ൃऀ͸ձࣾͷதͰࣗ෼͕࠷΋ॏཁͳਓؒͩͱࢥ͍
    ࠐΉ܏޲͕͋Δɻ͍͋ʹ͘ͱ͜ͷଚେ͞ʹ͸͍ͬ΃Μͷਅ࣮͕͋Γɺ
    ։ൃऀ͕ଞͷਓͨͪͱ͏·͘ંΓ߹͏ͷΛ೉͍ͯ͘͠͠ΔɻͦΕͰ
    ΋ࢲͷओு͸มΘΒͳ͍ɻ։ൃऀͷεΩϧ͸ίʔσΟϯάҎ֎ͷ͞
    ·͟·ͳλεΫʹ΋ద༻Մೳͳͷͩɻ
    ɾΧελϚαʔϏε୲౰ͱͯ͠ɺ੡඼ͷ࢓૊ΈΛཧղ͍ͯ͠Δ
    ։ൃऀ͸໰୊ΛΑΓૣ͘ݟ͚ͭΔ͜ͱ͕Ͱ͖Δ
    ɾηʔϧεΨΠͱͯ͠ɺ੡඼ͷ࢓૊ΈΛཧղ͍ͯ͠Δ։ൃऀ͸
    ͦΕͰԿ͕Ͱ͖Δͷ͔ͱ͍͏࣭໰ʹ༰қʹ౴͑Δ͜ͱ͕Ͱ͖Δɻ
    ɾϚʔέςΟϯά୲౰ͱͯ͠ɺ։ൃऀ͸ϚʔέοτઓུʹӨڹ͢Δ
    ٕज़తͳબ୒͕͔͔ΘΔܾஅʹ໾ཱͭ͜ͱ͕Ͱ͖Δɻ
    اۀ͸͸։ൃऀ͕ιϑτ΢ΣΞߏஙҎ֎ͷ׆ಈʹ͔͔ΘΔ͜ͱΛ
    ڪΕΔ΂͖Ͱ͸ͳ͍ɻz

    View Slide