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

達人プログラマーとわたし/PragProg and Me

達人プログラマーとわたし/PragProg and Me

2016-11-21 技術書の歩き方勉強会「達人プログラマー編」での資料です。 https://connpass.com/event/44500/

MOROHASHI Kyosuke

November 21, 2016
Tweet

More Decks by MOROHASHI Kyosuke

Other Decks in Programming

Transcript

  1. ୡਓϓϩάϥϚʔͱ

    Θͨ͠
    @2016-11-21 ٕज़ॻͷา͖ํษڧձʮୡਓϓϩάϥϚʔʯฤ
    @moro ॾڮګհ

    View Slide

  2. ॾڮګհ(@moro)
    Kyosuke MOROHASHI

    View Slide

  3. View Slide

  4. ࢲͷΩϟϦΞͷ͜ͱ

    View Slide

  5. ‣ ٕज़෦ ։ൃج൫άϧʔϓ
    ‣ ։ൃੜ࢈ੑΛ޲্ͤ͞Δ͜ͱ͕ϛογϣϯ
    ‣ ίʔυϨϏϡʔ΍ઃܭࢧԉ
    ‣ εςʔδϯά؀ڥ΍CI؀ڥͷҡ࣋ɾվળ
    ‣ ج൫ϓϥοτϑΥʔϜͷ੔උɺͳͲ
    ͍·: 2015-: ΫοΫύου

    View Slide

  6. ‣ RubyͱRailsͰ͓٬༷ͷιϑτ΢ΣΞΛ։ൃ͍ͯͨ͠ɻ
    ‣ ΞδϟΠϧͳडୗ։ൃ΍ɺαʔϏε։ൃͷࢧԉͳͲɻ
    ͦͷલ: 2006-2015: Ӭ࿨γεςϜϚωδϝϯτ

    View Slide

  7. ‣ “SE” ͱͯ͠ब৬ͨ͠ɻ
    ‣ 100ਓҎ্ͷϓϩάϥϚɺ1೥Ҏ্ଓ͘ϓϩδΣΫτ
    (1,000+ਓ݄!!)ͷϓϩδΣΫτʹΞαΠϯ͞Εͨɻ
    ‣ ϓϩδΣΫτͷ։ൃੜ࢈ੑ޲্ɺͱ͍͏ϛογϣϯ
    ͩͬͨΑ͏ͳɻ
    ͦͷલ: 2003-2006: େखిػϝʔΧʔ

    View Slide

  8. ‣ ઋ୆͸͍͍֗ͩͬͨɻ
    ‣ MacOS X public beta͕ॏ͗ͯ͢UNIX͞ΘΓ࢝ΊΔ
    ‣ ͦͷྲྀΕͰ “UNIXͱ͍͏ߟ͑ํ” ͳͲಡΜͰ͍ͨ
    ͦͷલ: -2003: จܥେֶੜ

    View Slide

  9. ΩϟϦΞͷதͰ

    ग़ձͬͨຊ

    View Slide

  10. ‣ “ࠇ͍ը໘”ͷഎޙʹ͋Δ

    ʮߟ͑ํʯʹಌΕͨ
    ‣ ٕज़తͳத਎͸͋·ΓΘ͔Βͳ
    ͔ͬͨΑ͏ͳɻ

    View Slide

  11. ‣ ࣾձਓͩ͠ҙ͔ࣝͨΊͯ͜?
    ‣ ਖ਼௚ɺΘ͔ͬͨΑ͏ͳΘ͔ΒΜΑ͏ͳ…

    View Slide

  12. ‣ “ϐʔϓϧ΢ΣΞ” ͱ͔ “ਓ݄ͷਆ࿩” ΛಡΜͰ

    (େن໛)ιϑτ΢ΣΞ։ൃʹ͍ͭͯߟ͑Δɻ
    ‣ େن໛ϓϩδΣΫτͷย۱ͰɺRubyΛ͞ΘΓͩ͢ɻ
    ‣ “RubyϨγϐϒοΫ”
    2003-2006: େखిػϝʔΧʔ

    View Slide

  13. ‣ וాͷຊ԰Ͱങͬͨ
    ‣ net/telnetͰSolarisʹϩάΠϯͯ͠
    ‣ γΣϧεΫϦϓτ࣮ߦͯ͠
    ‣ ग़དྷͨϑΝΠϧΛnet/ftpͰ࣋ͬͯ͘ΔεΫϦϓτʹ
    ‣ VisualuRubyͰUI͚ͭͯ
    ‣ exerbͰݻΊͯϙϯஔ͖

    View Slide

  14. ‣ “ϓϩάϥϛϯάRuby”
    ‣ ͷஶऀͷॻ͍ͨ “ୡਓϓϩάϥϚʔ”
    ‣ “Agile Web Development with Rails”
    2003-2006: େखిػϝʔΧʔ

    View Slide

  15. ‣ ʮUNIXͱ͍͏ߟ͑ํʯΛ࢓ࣄͰ࣮
    ݱ͢Δͱͨ͠Β͜͏͍͏ͷ͔ͳɻ
    ‣ DRYɺࣗಈԽɺϦϑΝΫλϦϯ
    ά… ʮ͜Μͳ;͏ʹಇ͚ͨΒ͍͍
    ͳ͋ʯ

    View Slide

  16. ‣ Rails 1.0͕ग़ΔલʹЌϒοΫͰ

    ೖखɻ
    ‣ ʮЌϒοΫɺͦΜͳ΋ͷ͕͋Δͷ͔ʯ
    ‣ ͜ͷಡॻձ͕Railsษڧձ@౦ژ

    View Slide

  17. View Slide

  18. ‣ ֯୩͞Μʹ༠ΘΕͯ(ԡ͔͚ͯ͠?)ೖࣾͨ͠ɻ
    ‣ 10+೥ؒɺ΄΅ͣͬͱRubyͷϓϩδΣΫτͩͬͨɻ
    ‣ ୡਓϓϩάϥϚʔͰಡΜͩͱ͜Ζͩ!!
    ‣ DRY, ࣗಈԽ, TDD, ϦϑΝΫλϦϯά…
    ‣ Rails΍TDDͷຊ΋ॻ͍ͨɻ
    2006-2015: Ӭ࿨γεςϜϚωδϝϯτ

    View Slide

  19. View Slide

  20. ‣ ࣾ಺֎ͷଟ͘ͷ Rubyist ͱ஌Γ߹͑ͨɻ
    ‣ Πϯλʔωοτͷਓͨͪͱ࢓ࣄΛ͢Δײ֮ʹͳͬͨɻ
    ‣ XࣾͷA͞ΜɺͰ͸ͳ͘

    A͞Μ͕͍·ಇ͍͍ͯΔɺXࣾ
    2006-2015: Ӭ࿨γεςϜϚωδϝϯτ

    View Slide

  21. ‣ ΞδϟΠϧ։ൃͷ͍ΖΜͳϓϥΫ
    ςΟεΛΪϡοͱ·ͱΊͨҰ࡭ɻ
    ‣ ൒෼͘Β͍͸ʮ;ͩΜ΍͍ͬͯΔ͜ͱʯ͕ମܥཱͯͯॻ
    ͍ͯ͋ͬͨɻ
    ‣ ೔ʑͷιϑτ΢ΣΞ։ൃʹɺͱͯ΋࣮ફ͖ͯʹ໾ཱͭɻ

    View Slide

  22. ‣ ϓϩάϥϚʔ͕ɺϓϩάϥϛϯ
    άΛੜۀʹ͢Δ࣌ͷ࢟੎ͱɺͦ
    ͷ࣮ફͷຊɻ
    ‣ ಡΉͨͼʹࢗ͞Δͱ͜Ζ͕มΘΔɻ

    View Slide

  23. The Recipe for
    the World’s Largest
    Rails Monolith
    Akira Matsuda
    https://speakerdeck.com/a_matsuda/the-recipe-for-the-worlds-largest-rails-monolith

    View Slide

  24. ‣ RubyϞϊϦεΛݟʹདྷͨɻ
    ‣ લલٕज़෦௕ͷߴҪ͞Μ΋Ruby/Railsͭͳ͕ΓͰ஌ͬͯͨɻ
    ‣ ͍͢͝ΤϯδχΞ͕ “ͪΌΜͱ” ΍͍ͬͯͨɻ
    ‣ ٕज़ϒϩάʹॻ͍ͯ͋Δ͜ͱɺ΄Μͱʹ΍͍ͬͯͯ͢͝w
    2015-: ΫοΫύου

    View Slide

  25. ղফͰ͖ͨෆ҆ (git add & git commit͓ͯ͜͠͏)
    http://techlife.cookpad.com/

    View Slide

  26. ‣ Ϣʔβʔͷຊ౰ͷχʔζΛߟ͑ଓ͚ΔσΟϨΫλʔ
    ‣ ࠷ߴͷϢʔβମݧΛߟ͑ଓ͚ΔσβΠφʔ
    ‣ Ϣʔβʔͷ੠Λड͚ࢭΊɺࠔΓ͝ͱΛղܾ͢Δ

    Ϣʔβʔαϙʔτ
    ‣ ͱ͍͏૊৫Λࢧ͑ΔόοΫΦϑΟε ͳͲͳͲ…
    “ϓϩάϥϜΛॻ͘”͜ͱͱ “Ձ஋Λఏڙ”͢Δ͜ͱͷࠩ෼

    View Slide

  27. ର৅γεςϜ
    ຊ൪؀ڥ
    ։ൃ
    طଘ
    γεςϜ
    Ϗδωεཁٻ
    ϏδωεՁ஋
    ֎෦੍໿
    ๏ ن੍

    lશମz
    Τϯυ
    πʔ
    Τϯυ
    https://speakerdeck.com/kakutani/agile-manifesto-decade

    View Slide

  28. ‣ ϓϩάϥϚʔ͕ɺϓϩάϥϛϯ
    άΛੜۀʹ͢Δ࣌ͷ࢟੎ͱɺͦ
    ͷ࣮ફͷຊɻ
    ‣ ಡΉͨͼʹࢗ͞Δͱ͜Ζ͕มΘΔɻ

    View Slide


  29. 91ͷϓϥΫςΟεͷνʔϜશମͱ͸ɺ༷ʑͳਓ͕૬
    ޓʹؔ࿈͠ͳ͕ΒҰॹʹ࢓ࣄΛͯ͠ɺϓϩδΣΫτ
    Λ͞ΒʹޮՌతʹ͢Δ΋ͷͰ͋Δɻ
    XPνʔϜશମ
    ΤΫετϦʔϜϓϩάϥϛϯά; ୈ10ষ XPνʔϜશମ

    View Slide


  30. Ϗδωε΍࢓ࣄ΋;͘ΊͨίϛϡχςΟʔͷதͰɺ
    ࣗ෼ͷډ৔ॴΛݟ͚ͭΔ͜ͱͩɻࣗݾ௒ӽͷϓϩη
    εͷ͜ͱͩɻͦͷϓϩηεͷதͰɺ։ൃऀͱͯ͠࠷
    ળΛͭ͘͢͜ͱͩɻϏδωεͷͨΊʹͳΔ༏Εͨίʔ
    υΛॻ͘͜ͱͩɻ
    XPͱ͸ͳʹ͔
    ΤΫετϦʔϜϓϩάϥϛϯά; ୈ1ষ XPͱ͸ͳʹ͔

    View Slide

  31. ͭͷखڧ͍࣭໰
    ࣗ෼͸Կ͕ಘҙͳͷ͔
    ࣗ෼͸Ͳ͏΍ͬͯߩݙ͢Δͭ΋Γ͔
    ࣗ෼͕େ੾ʹࢥ͏Ձ஋͸ͳʹ͔
    νʔϜϝϯόʔ͸ࣗ෼ʹͲΜͳ੒ՌΛ
    ظ଴͍ͯ͠Δ͔
    http://diary.shu-cream.net/2016/01/15/the-drucker-exercise-in-gmo-pepabo-inc.html

    View Slide

  32. ϓϩάϥϚʔʹͳΔ͜ͱ

    View Slide

  33. ຊॻ͸͋ͳ͕ͨΑΓྑ͍ϓϩ
    άϥϚʔʹͳΔͨΊͷ͓ख఻
    ͍Λ͢Δ΋ͷͰ͢ɻ
    (৽૷൛ͷग़൛͓ΊͰͱ͏͍͟͝·͢ &

    ͋Γ͕ͱ͏͍͟͝·͢)
    ୡਓϓϩάϥϚʔ; ·͕͖͑, ୈ1ষ

    View Slide

  34. Prepare to welcome
    new people
    ৽͍͠ਓʑΛܴ͑Δ
    ࢧ౓Λ͠Α͏
    http://jp.rubyist.net/RubyKaigi2007/Log0610-S5.html

    View Slide

  35. ‣ ʮ͜͏΍Γ͍ͨʯເ͡Όͳ͘ͳͬͨ
    ‣ ׂΕ૭ɺDRYɺࣗಈԽɺϦϑΝΫλϦϯά….
    ‣ ͪΌΜͱ΍Ε͍ͯΔͷͩΖ͏͔?
    2प໨ͷੈք

    View Slide

  36. ‣ http://nano.hatenadiary.com/entry/2016/10/27/132312
    ‣ ୡਓϓϩάϥϚʔΛಡΜͰ͍Δਏ͞ΛܰݮͰ͖Δ
    ‣ ༏͍͠ޱௐͰ͞ΒͬͱڪΖ͍͠ཧ૝࿦
    2प໨ͷੈք

    View Slide

  37. ·ͱΊ

    View Slide

  38. ‣ ࢥ͍ฦ͢ͱ͍͍ͱ͖ʹ͍͍΋ͷΛಡΜͩͷͩͳ͋ɻ
    ‣ ຊʹग़ձ͏ίϯςΩετ͸େࣄɻ
    ‣ PragProg: 1प໨͸ເɺ2प໨͸ݱ࣮
    ‣ XPe2nd: ϓϥΫςΟεࢀߟʹͳΔ 㱺 ιʔγϟϧνΣϯδͳΔ΄Ͳ…!
    ‣ େࣄ͚ͩͲɺ༧ଌ͸Ͱ͖ͳ͍ɻ
    ·ͱΊ

    View Slide

  39. moro (20161109-moronatural)
    ‣ lୡਓϓϩάϥϚʔzͷόϥϯε
    ‣ ΤϞ͍͚ͩͰͳ͘ςΫ͍
    ‣ ϓϨΠϯςΩετ, γΣϧ, DSL, ίʔυδΣωϨʔλ
    ‣ DbC, ද໌, ྫ֎ઃܭ, σϝςϧͷ๏ଇ…
    ‣ ςΫ͍͚ͩͰͳ͘ΤϞ͍
    ‣ େ੟ಊ, ੴͷεʔϓ, ఻ୡ͠Α͏
    ‣ ތΓͱѪண

    View Slide

  40. moro (20161109-moronatural)
    ୡਓϓϩάϥϚʔ͸ɺ؟લͷ໰୊Λߟ͑Δ
    ͚ͩͰͳ͘ɺৗʹͦͷ໰୊ΛΑΓେ͖ͳഎ
    ܠͷதͰଊ͑ɺৗʹΑΓେ͖ͳ໰୊Λݟͭ
    ͚ग़ͦ͏ͱ͢ΔͷͰ͢ɻཁ͢Δʹɺେ͖ͳ
    എܠΛଊ͑Δ͜ͱͳ͠ʹɺୡਓͨΓಘΔํ
    ๏͸͋Γ·ͤΜ͠ɺ஌తͳղܾɺݟࣝͷ͋
    ΔܾఆΛߦ͏ํ๏΋͋Γಘͳ͍ͷͰ͢ɻ

    View Slide


  41. I won't give up, no I won't give in

    'Til I reach the end and then I'll start again

    No I won't leave, I wanna try everything

    I wanna try even though I could fail
    ؆୯Ͱ͸ͳ͍
    Try Everything ; Shakira from Zootopia

    View Slide

  42. Ͱ΋͋Μ·Γਂࠁʹड͚ࢭΊ͗͢ͳ͍Ͱɻ

    ָ͠Έͳ͕Β΍͍ͬͯ͜͏
    Above all, make it fun
    ΞδϟΠϧαϜϥΠ; ؂༁ऀ͋ͱ͕͖

    View Slide