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

Rails な受託の会社でぼくがやっていること / What I do in a Rails consulting company

takkanm
March 22, 2019

Rails な受託の会社でぼくがやっていること / What I do in a Rails consulting company

RailsDM 201903 での発表

takkanm

March 22, 2019
Tweet

More Decks by takkanm

Other Decks in Technology

Transcript

  1. Rails ͳडୗͷձࣾͰ
    ΅͕͘΍͍ͬͯΔ͜ͱ
    ࡾଜ ӹོ a.k.a takkanm
    Ӭ࿨γεςϜϚωδϝϯτ ΞδϟΠϧࣄۀ෦ / Asakusa.rb

    View Slide

  2. Who am I
    • Ӭ࿨γεςϜϚωδϝϯτ ΞδϟΠϧࣄۀ෦
    • RubyΞδϟΠϧάϧʔϓ νʔϑϓϩάϥϚʔ
    • Asakusa.rb ϝϯόʔ
    • 1 of 6 ਓ͍ΔύʔϑΣΫτRubyஶऀ

    View Slide

  3. ࠂ஌

    View Slide

  4. View Slide

  5. https://esminc.connpass.com/event/123239/

    View Slide

  6. ࠓ೔ͷ࿩

    View Slide

  7. Θͨ͠ͱ Rails
    • Ruby ͸ֶੜͷͱ͖͔Β (2004)͙Β͍
    • Rails ͸ 0.6 ͙Β͍ʹ৮͚ͬͨͲɺ͓࢓ࣄͰ࢖͏Α͏ʹͳͬͨͷ
    ͸ 2008 ͷ Rails2 ͙Β͍ͷͱ͖
    • Railsษڧձ@౦ژͱ͍͏ษڧձͷ N ୅໨ͷ։࠵ऀ

    View Slide

  8. ࠓ೔ͷ಺༰
    ͦΜͳΘ͕ͨ͠Ӭ࿨γεςϜϚωδϝϯτͱ͍͏ Rails ʹΑΔγε
    ςϜ։ൃΛϝΠϯͱͨ͠डୗձࣾͰͲ͏࢓ࣄΛ͍ͯ͠Δ͔ͱ͍͏
    ࿩Λ͠·͢ɻʮ೔ʑϓϩδΣΫτͰͲ͏࢓ࣄΛ͍ͯ͠Δ
    ͔ʯɺʮ৽͍͠஥͕ؒདྷͨͱ͖Ͳ͏͍ͯ͠Δ͔ʯɺʮϓ
    ϩδΣΫτ֎ͷ׆ಈΛͲ͏͍ͯ͠Δ͔ʯͱ͍͏؍఺Ͱ͓఻
    ͑Ͱ͖Ε͹ͱࢥ͍·͢ɻ

    View Slide

  9. What is
    Ӭ࿨γεςϜϚωδϝϯτ
    ΞδϟΠϧࣄۀ෦ ?

    View Slide

  10. ESMΞδϟΠϧࣄۀ෦ͷྺ࢙
    • 2000 ೥͙Β͍ʹ฼ମͱͳΔࣄ຿ॴͷൃ଍
    • ݩ͸ɺXP ΍ΞδϟΠϧએݴʹײԽ͞Εͨਓؒͨͪͷू·Γ
    • 2006 ೥͙Β͍͔Β Ruby Ͱ࢓ࣄ͍ͯͧ͘͠એݴ

    View Slide

  11. ESMΞδϟΠϧࣄۀ෦now
    • Ruby ʹΑΔγεςϜ։ൃΛߦ͍ͬͯΔϝϯόʔ͸ 21 ໊
    • ϕςϥϯͱएख͕ࠞࡏ
    • ࣗ෼͸ϕςϥϯͱएखͷத͙ؒΒ͍(ͱ͓΋ͬͯΔ

    View Slide

  12. ೔ʑͷ࢓ࣄ

    View Slide

  13. Ӭ࿨ͷ࢓ࣄͱͯ͠΍Δ͜ͱ
    • Ҋ݅ަবͷஈ֊ͷଧͪ߹Θͤ΍ݟੵ΋Γ
    • νʔϜϝϯόʔͷબఆ
    • ϓϩδΣΫτͷӡӦɺ݉։ൃ

    View Slide

  14. ׂѪ

    View Slide

  15. ೔ʑͷϓϩδΣΫτͷ
    ։ൃͷࡍʹ΍͍ͬͯΔ͜ͱ
    ҙ͍ࣝͯ͠Δ͜ͱ

    View Slide

  16. ීஈ΍͍ͬͯΔ͜ͱ
    • ಋೖ͢ΔϥΠϒϥϦ΍ϛυϧ΢ΣΞͷબఆͱ൑அ
    • ίʔυϨϏϡʔ
    • ϓϩδΣΫτΛ௒͑ͯར༻Ͱ͖ΔΑ͏ʹ͢Δ

    View Slide

  17. ϛυϧ΢ΣΞ΍ϥΠϒϥϦͷબఆ
    • ӡ༻ɾอकΛ୭͕΍Δ͔Λߟ͑Δ
    • ՄೳͳݶΓܾఆΛ஗ΒͤΔ

    View Slide

  18. ྫ) background job ʹԿΛ࢖͏͔
    • sucker_punch Λ͍ΕͯɺՄೳͳݶΓ ActiveJob Ͱ࣮ݱͰ͖Δ
    ൣғͰϓϩδΣΫτΛਐΊΔ
    • γεςϜͷ͜ͱ͕Θ͔͖ͬͯͨ͋ͨΓͰɺ͜ͷ··͢͢ΊΔ͔ɺ
    DB ΛΩϡʔͱͯ͠࢖͏΋ͷʹ͢Δ͔ɺ

    View Slide

  19. ίʔυϨϏϡʔ
    • ߟྀ࿙Εͷέʔε΍ύϑΥʔϚϯεʹؔΘΓͦ͏ͳ఺͕ͳ͍͔
    Λ֬ೝ
    • ҙਤ͕ͪΌΜͱ఻ΘΔίϝϯτΛ৺͔͚Δ
    • ࣗ෼͕ड͚ೖΕΔ֮ޛ͕΋ͯΔ͔Ͳ͏͔

    View Slide

  20. ίʔυϨϏϡʔ͸ΏΔΊ
    • ઃܭ΍ํ਑͸ࣄલʹνʔϜͰ͢Γ͋ΘͤΔ
    • ίʔυϨϏϡʔͰݫ͍͠ײ͡ʹͳΔͷ͸ɺͦ͜·Ͱʹ໰୊͕͋
    Δͱࢥ͍ͬͯΔͷͰɺͦ͜Λ௚͍͚ͯ͠ΔΑ͏ʹ͢Δ
    • ҰఆྔͷࢦఠΛ͠ͳ͍ͱ͍͚ͳ͍ͱ൑அͨ͠ΒɺϨϏϡʔΛࣙ
    ΊͯҰॹʹ΍Δͱ͍͏͜ͱΛબ୒͢Δ

    View Slide

  21. ϓϩδΣΫτΛ௒͑ͯར༻Ͱ͖ΔΑ͏ʹ͢
    Δ
    • ϓϩδΣΫτͷίʔυΛॻ͖ͳ͕Βɺ൚༻తʹͰ͖ͦ͏ͳՕॴ
    Λgemʹ੾Γग़ͯ͠ΈΔ
    • ࣮ࡍɺ·ͨ࢖͏͔Ͳ͏͔͸ޒ෼ޒ෼
    • େ࡞͡Όͳͯ͘΋࡞Δ͜ͱΛ༏ઌ

    View Slide

  22. ͜͏͍͏ϨϕϧͰgemʹ͍ͯ͠Δ
    • esminc/operate_do
    • AS::CurrentAttributes Έ͍ͨͳͷΛ࣮ݱ͢Δ΍ͭ
    • esminc/jis_x_0401
    • JISX0401ͷͨΊͷϥΠϒϥϦ
    • esminc/s3_reproxy_download
    • S3 ʹ͋ΔϑΝΠϧΛ X-REPROXY-URL Λ࢖ͬͯฦͤΔΑ͏ʹ͢Δ

    View Slide

  23. ΍͍ͬͯͯͲ͏͔
    • ʮҙຯ͋ΔΜͰ͔͢ʯͱ͔ʮηϯεͳ͍ʯΈ͍ͨͳ͜ͱΛݴΘ
    ΕΔ͜ͱ͸͋Δ
    • ͜͏͍͏͜ͱ͕Ͱ͖ΔϑοτϫʔΫͷܰ͞Λࣗ෼Ͱ͸΋͍ͬͯ
    ͍ͨ
    • ෑډͷ௿͞Λԋग़ͯ͠ɺଞͷਓʹ΋΍ͬͯ΋Β͑ΔΑ͏ʹͨ͠
    ͍

    View Slide

  24. ৽͍͠஥͕͖ؒͨͱ͖

    View Slide

  25. Ӭ࿨ଜʹ͋ͨΒ͍͠஥͕ؒ΍͖ͬͯͨ
    • ΍ͬͯ͘Δස౓͸೥ 1, 2 ਓ͙Β͍(৽ଔআ͘
    • Ruby ͷ͓࢓ࣄܦݧ͸௿Ί
    • ҟۀछస৬΋

    View Slide

  26. ΦϯϘʔσΟϯάࣄ৘

    View Slide

  27. ΦϯϘʔσΟϯάࣄ৘
    "

    View Slide

  28. ܾΊΒΕͨ΋ͷ͕ͳ͍ཧ༝
    • ਓʹΑͬͯঢ়گ͕ҧ͏
    • ೖࣾλΠϛϯάʹΑͬͯࣾ಺ঢ়گ͕ҧ͏
    • Railsʹର͢Δڭҭࢿྉ͸ੈͷதʹ͋ΔͷͰࣗ࡞͢ΔϞνϕʔ
    γϣϯ͕௿͍

    View Slide

  29. Ͱ͸ɺͲ͏͍ͯ͠Δ͔
    • ೖࣾ౰೔΍Δ͜ͱ౳͸ܾ·͓ͬͯΓ์ஔ͍ͯ͠ΔΘ͚Ͱ͸ͳ͍
    • ϓϩδΣΫτͷঢ়گ΍ͦͷϓϩδΣΫτͷϝϯόʔΛΈͯɺ͜
    ͷਓ͕͍ΔͳΒ҆৺ͱ͍͏ϓϩδΣΫτͰͷ OJT

    View Slide

  30. Θ͕ͨ͠ΈΔͱ͖ͷํ਑
    • ଞͷνʔϜʹ഑ଐ͞Ε͔ͯΒɺ৽͍͠ϝϯόʔͱͦͷϓϩδΣ
    ΫτͷνʔϜ͕ࠔΒͳ͍Α͏ʹ͍ͨ͠
    • ද໘తͳٕज़ཁૉͳͲ͸ϓϩδΣΫτʹΑͬͯҧ͏ͷͰɺͦΕ
    ΒΛࢧ͑Δ౔୆ͱͳΔ஌ࣝ΍ߟ͑ํΛ·ͣ਎ʹ͚ͭͯཉ͍͠

    View Slide

  31. ϓϩδΣΫτʹೖͬͯࠔΔ͜ͱ
    • Ruby on Rails ͷίʔυ͕ॻ͚Δॻ͚ͳ͍͔ΑΓ΋ɺίϛϡχ
    έʔγϣϯ͕ͱΕͳ͍͜ͱ͕໰୊ͱͳΔ͜ͱ͕ଟ͍
    • ϕςϥϯ΍Ϧʔμʔͱͷ஌ࣝ΍ߟ͑ํͷΪϟοϓʹΑΓൃੜ͠
    ͯͦ͏

    View Slide

  32. ࠔΒͳ͍Α͏ʹͳΔͨΊʹ
    • Θ͔Βͳ͍͜ͱΛͪΌΜͱ఻͑ΒΕΔΑ͏ʹͳΔ
    • λεΫͷݟੵ΋Γͱܭը͕Ͱ͖Δ
    • ࢓ࣄΛָ͘͠Ͱ͖ΔΑ͏ʹͳΔ

    View Slide

  33. Θ͔Βͳ͍͜ͱΛ఻͑Δٕज़͸ॏཁ
    • Θ͔Βͳ͍͜ͱΛͪΌΜͱ఻͑Δͷ͸೉͍͠
    • Θ͔Βͳ͍͜ͱ͕͋ΔͱɺͦͷΘ͔Βͳ͍··૬ஊͯ͠͠·͏
    • ͦͷཻ౓͕େ͖͗͢Δͱɺฉ͖ख΋Կ͕Θ͔Βͳ͍ͷ͔Θ͔Β
    ͣରԠ͕Ͱ͖ͳ͍

    View Slide

  34. Θ͔Βͳ͍͜ͱΛཧղ͠఻͑ΒΕΔΑ͏ʹ
    • ໰୊Λ੔ཧͯ͠ɺ੾Γ෼͚ɺখ͘͞෼ղͰ͖ΔΑ͏ʹҙࣝͤ͞
    Δ
    • ࣭໰Λͯ͠ɺҙ͍ࣝͯ͠ͳ͔ͬͨͱ͜ΖΛ͋ͿΓͩ͢
    • ࢖͍ͬͯΔ༻ޠ͕ਖ਼͍͔͠ͷ֬ೝ

    View Slide

  35. λεΫͷݟੵ΋Γͱܭը͕Ͱ͖Δ
    • ݟੵ΋Γ͕Ͱ͖Δͱ͍͏͜ͱ͸ɺͦͷλεΫΛͲ͏͢Ε͹΍Ε
    Δ͔ͱ͍͏͜ͱ͕Θ͔Δͱ͍͏͜ͱ
    • ܭը͕Ͱ͖Δͱ͍͏͜ͱ͸ɺΞϥʔτΛ͋͛ΔλΠϛϯάΛࣗ
    ෼Ͱ൑அͰ͖Δ

    View Slide

  36. Կނݟੵ΋ΓͱܭըΛॏࢹ͢Δ͔
    • ࣌ؒ͸༗ݶͳͷͰɺظ଴͢ΔظؒͰऴΘΔ͔ͱ͍͏͜ͱʹେ͖
    ͍ؔ৺͕ΑͤΒΕΔ
    • ݟੵ΋ΓʹΑͬͯɺ΍Δ͜ͱ͕໌֬ʹͳͬͨΓɺଞͷਓͱͷҙ
    ࣝ͋Θ͕ͤͰ͖ΔΑ͏ʹͳΔ
    • ܭըʹΑͬͯɺࣗ෼͕Ͳ͜ʹ͍ͯɺຊདྷ͸Ͳ͜ʹ͍ͳ͍ͱ͍͚
    ͳ͍͔ΛҙࣝͰ͖ΔΑ͏ʹͳΔ

    View Slide

  37. ࢓ࣄ͸ָ͍͠ʁ
    • ΍Γ͍ͨͱࢥ͍ͬͯͨ͜ͱΛฏ೔னؒʹͰ͖ΔΑ͏ʹͳΔͷͰɺ
    ؤுΓ͗͢Δ
    • λεΫΛҰਓͰ׬ᘳʹ͜ͳ͢ͱ͍͏ҙࣝͰΞϥʔτ͕͋͛ΒΕ
    ๊ͣ͑ࠐΉ
    • ࢦఠ͞ΕΔ͜ͱ͕஍ຯ

    View Slide

  38. ଉൈ͖ͱܹࢗ
    • ద౰ͳλΠϛϯάͰ੠Λ͔͚ͯɺաूதΛආ͚Δ
    • Rails ΍։ൃํ๏ͳͲͷ෇࿥CͷΑ͏ͳ࿩Λҙࣝతʹ͢Δ
    • OSS ͷίϯτϦϏϡʔγϣϯνϟϯεΛڭ͑Δ
    • ϓϩδΣΫτͱؔ܎ͷͳ͍ίʔυΛॻ͍ͯ΋Β͏

    View Slide

  39. ࠷ۙߦͬͨड͚ೖΕ

    View Slide

  40. ۩ମతʹͲ͏͍͏͜ͱΛ΍͔ͬͨ(1)
    • ࡞ۀΛ෇ᝦͰλεΫ෼ղͯ͠΋Β͍ɺݟੵ΋ΓΛ͠ɺΧϨϯμʔ
    ʹϚοϐϯάͯ͠ɺຖ೔࣮੷Λ֬ೝ͠ɺݟੵ΋Γɺܭըͷ֬ೝ
    Λ͢Δ
    • ௨Γ͕͢ΓͷϝϯόʔʹΞδϟΠϧ΍ TDD ͳͲͷӬ࿨ͷΧϧ
    νϟʔͷՁ஋ʹͳ͍ͬͯΔ͜ͱͷࡶஊΛͯ͠΋Β͏

    View Slide

  41. ۩ମతʹͲ͏͍͏͜ͱΛ΍͔ͬͨ(2)
    • ଍Γͳͦ͏ͳ஌͕ࣝΘ͔͖ͬͯͨͱ͜ΖͰɺීஈͷ࡞ۀͱ͸ผ
    ͷ՝୊(ࠓճ͸ shell ࡞Γ)Λ༩͑Δ
    • ҧ͏ϓϩδΣΫτʹߦ͘લʹ;Γ͔͑ΓΛͯ͠ɺݱঢ়ͷ֬ೝͱ
    ࣍΁ͷظ଴Λ఻͑Δ

    View Slide

  42. ϓϩδΣΫτ֎ͷ׆ಈ

    View Slide

  43. WebγεςϜ։ൃ͸೉͍͠
    • ૿͑ଓ͚Δकඋൣғ
    • มΘΓଓ͚ΔτϨϯυ
    • ҠΓมΘΔࣗ෼ͷڵຯ

    View Slide

  44. ࣗ෼ͷ࢓ࣄʹର͢Δෆ҆
    • ࣗ෼ͷಘҙྖҬͰղܾ͍ͯ͠Δ͚ͩͰɺຊ౰ʹͦΕ͕ྑ͍ํ๏
    ͩͬͨͷ͔
    • Rails + ஌ݟͷͳ͍෼໺΁ͷϕετϓϥΫςΟε૬౰ͷ͜ͱ͕ਖ਼
    ͍͔͠ݕূͰ͖ͳ͍

    View Slide

  45. RailsʹಛԽͨ͠डୗձࣾͷδϨϯϚ
    • ઐ໳ՈΛޏ͑ΔΘ͚Ͱ΋ͳ͍
    • ϓϩδΣΫτʹϩοΫΠϯ͞ΕΔͱ৽͍͜͠ͱΛܦݧͰ͖ΔՄ
    ೳੑ͕Լ͕Δ
    • Կͷٕज़ͷϓϩδΣΫτʹ͋ͨΔͷ͔༧ଌ͕ͨͯΕͳ͍

    View Slide

  46. ԿނRailsΛࣙΊͳ͍ͷ͔(ݸਓͷݟղ)
    • ͓٬༷ͷ໰୊Λզʑ͕ૉૣ͘ղܾ͢Δಓ۩ͱͯ͠ fit ͔ͨ͠Β
    • RubyΛબΜͰ͘ΕΔ͓٬༷ͱ૬ੑ͕Α͍
    • RubyίϛϡχςΟ͕޷͖

    View Slide

  47. ࠓޙ΋RubyͰ࢓ࣄΛ͍ͯͨ͘͠Ίʹ
    ΑΓ͏·͘ͳ͍͚ͬͯΔΑ͏ʹ

    View Slide

  48. ͦ͜Ͱ࢝ΊͨऔΓ૊Έ
    • ۀ຿࣌ؒͷ 10% Λҧ͏࡞ۀʹׂΓ౰ͯΔ࢓૊Έ͕͋Δ
    • ϓϩδΣΫτ֎ͷϝϯόʔͰνʔϜΛ૊Ή
    • ࣗ෼ͷڵຯ͕͋Δٕज़ཁૉΛ༻͍ͯԿ͔Λ࡞Δ

    View Slide

  49. ͜ͷऔΓ૊Έͷࢥ࿭
    • Ұਓ͕શ෦஌͍ͬͯΔͱ͍͏ͷ͸೉͍͠ͷͰɺ୭͔͕Կ͔Λ஌ͬ
    ͍ͯΔͱ͍͏ঢ়گΛ࡞Δ
    • ϓϩδΣΫτͰͰ͖ͳ͍͜ͱΛ΍Δ͜ͱͰ೔ʑͷܹࢗΛ૿΍͢
    • ීஈҙࣝ͠ͳ͍ͱࢼͤͳ͍͜ͱΛࢼͯ͠ܦݧ஋ͱͯ͠஝͑ΒΕ
    ΔΑ͏ʹ͢Δ

    View Slide

  50. 1 ೥ଓ͚ͯΘ͔ͬͨ͜ͱ
    • ࠷ॳ͸ීஈͷ։ൃʹ͍͚ۙͲख͕·ΘΒͳ͍͜ͱΛҙ͕ࣝͨ͠ɺ
    ڵຯ͕ͦ͜·Ͱͷ΋ͷΛܧଓ͢Δͷ͸೉͍͠
    • औΓ૊ΈͷΰʔϧΛେ͖͗ͨ͘͢͠
    • ܖ໿ͱ͕ͯ࣌ؒ֬͠อ͞Ε͍ͯΔͱ͸͍͑ɺϓϩδΣΫτঢ়گ
    ʹΑͬͯ͸͕࣌ؒ֬อ͞Εͳ͍

    View Slide

  51. 1೥ଓ͚ͨ݁ՌΛ൓লͯ͠
    • ੒ՌΛٻΊͳ͍
    • ษڧͰऴΘΒͳ͍Α͏ʹ͢Δ
    • ڵຯͱۀ຿ͷڑ཭Λҙࣝ͢Δ

    View Slide

  52. 2೥໨ͷݱঢ়
    • 2 ਓνʔϜ͕ 2 ͭͱɺ 1 ਓνʔϜ͕ 1 ͭ
    • ΍͍ͬͯΔ಺༰͸ɺΠϯϑϥɺϑϩϯτΤϯυɺαʔόϨεͳ
    Ͳ༷ʑ

    View Slide

  53. ·ͱΊ

    View Slide

  54. ࣗ෼ͷࠜఈʹ͋Δ͜ͱ
    • ͪΌΜͱऴΘΒͤͭͭɺ͍͔ʹࣗ෼ָ͕͠ΊΔཁૉΛͭ͘Δ͔
    • ࣗ෼ΛԿ͔͠ΒΞοϓσʔτ͍͖͔͚ͯͬ͘͠Λ࡞Δ

    View Slide

  55. ͪΌΜͱऴΘΒͤͭͭɺָ͠ΊΔΑ͏ʹ
    • ݱ࣮Λݟͳ͕ΒऴΘΒͤΔ͜ͱ͕ɺΘͨ͠ͷ࢓ࣄ
    • ࢓ࣄͱ͸͍͑ɺָ͘͠ͳ͍͜ͱ͸͋·Γ΍Γͨ͘ͳ͍
    • ͜ΕΛཱ྆͢ΔͨΊʹɺࣗ෼ͷͰ͖Δ͜ͱΛ૿΍͍ͯ͘͠ඞཁ
    ͕͋Δ

    View Slide

  56. ΞοϓσʔτΛ͢Δ͖͔͚ͬΛҙࣝ͢Δ
    • ಉ͡΍ΓํΛ͍ͯ͠Δ͜ͱ͸ɺΑ͍͜ͱ͔ͩΒͳͷ͔ɺଦੑͳ
    ͷ͔Λߟ͑Δ
    • ࠓΑΓΑ͍΍Γํ͕͋Δ͔͸ɺҧ͏͜ͱΛ΍ͬͯΈͳ͍ͱΘ͔
    Βͳ͍

    View Slide

  57. େࣄͳ͜ͱ͸RubyɾRailsίϛϡχςΟ͔
    ΒֶΜͩ
    • Ruby΍Railsͷ·ΘΓʹ͍Δਓ͔ͨͪΒɺ͍ΖΜͳܹࢗΛ͏͚ղ
    ऍͯ͠ɺࣗ෼ͷ΍ΓํΛ໛ࡧ͍ͯ͠Δ
    • RubyɾRailsίϛϡχςΟͰ͏͚ͨ͜ͱΛฦ͍͚ͯ͠ΔΑ͏ʹࣗ
    ෼͸ͳ͍͖͍ͬͯͨ

    View Slide

  58. ࠷ޙʹ

    View Slide

  59. OedoRubyKaigi02
    • 2012/02 ʹߦΘΕͨ Asakusa.rb ͷ Meetup
    • جௐߨԋ͸ୡਓ Dave Thomas
    • ςʔϚ͸ϥϕϧʹ͍ͭͯ

    View Slide

  60. https://magazine.rubyist.net/
    /articles/0039/
    0039-MetPragdaveAtAsakusarb.html

    View Slide

  61. Ruby-ಓ(by Dave Thomas)
    • OOP ͚͕ͩ།Ұͷํ๏͡Όͳ͍
    • खଓ͖ܕ͚͕ͩϓϩάϥϜΛॻͨͬͨ͘Ұͭͷํ๏Ͱ΋ͳ͍
    • ”Α͍”ίʔυ͚͕ͩίʔυͳΘ͚͡Όͳ͍
    • Ruby͕࠷্ͷϓϩάϥϛϯάݴޠͬͯΘ͚͡Όͳ͍
    • ͦ΋ͦ΋࠷্ͷϓϩάϥϛϯάݴޠͳΜͯͳ͍

    View Slide

  62. Α͍ߦಈΛ͠Α͏ by Dave Thomas
    Έͳ͞Μɺ࿅श͸͍ͯ͠·͔͢ʁɹࣗ৴͸खΛಈ͔ͯ͠࿅श͢Δ͜
    ͱ͔Βੜ·Ε·͢ɻ஌͔ࣝΒ͸ੜ·Ε·ͤΜɻ͍ͭ΋Ͳ͏΍ͬͯ࿅श
    ͨ͠Β͍͍ͩΖ͏ͱߟ͑·͠ΐ͏ɻͦΜͳΘ͚ͰɺΤΩεύʔτͱ
    ݺ͹ΕΔਓ΍ϕετϓϥΫςΟεɺϥϕϧΛ໡৴͢Δ͜ͱ͸΍Ί·͠ΐ
    ͏ɻϥϕϧ͸͋ͳͨΛࢥߟఀࢭͤ͞·͢ɻϥϕϧ͸͋ͳͨΛ࿮ʹ͸Ί
    ·͢ɻϥϕϧ͕͋ͳͨΛڱΊΔ͜ͱʹͳΓ·͢ɻࣗ෼ࣗ਎ʹϥϕϧΛ
    షΔͷ͸΍Ί·͠ΐ͏ɻ͋ͳ͕ͨԿऀ͔͸͋ͳ͕ͨԿΛ͢Δ͔Ͱܾ
    ·Γ·͢ɻ໊ࢺͰ͸ͳ͘ಈࢺͰ͍·͠ΐ͏ɻΑ͍ߦಈΛ͠·͠ΐ͏ʂ

    View Slide