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

Ruby Is Nice so We Are Nice

Shintaro Kakutani
November 02, 2017
4.5k

Ruby Is Nice so We Are Nice

Keynote on RubyWorld conference 2017

Video:
📺1: https://youtu.be/NctyqVznddg
📺2: https://youtu.be/P7AunfXSOTQ

Shintaro Kakutani

November 02, 2017
Tweet

Transcript

  1. RUBY IS NICE
    SO WE ARE NICE
    ֯୩৴ଠ࿠ !LBLVUBOJ

    3VCZ8PSME$POGFSFODFجௐߨԋ

    View Slide

  2. .BU[JTOJDFTPXFBSFOJDF

    View Slide

  3. XF3VCZJTUɻ3VCZJTU
    ͱ͸ɺl3VCZʹରͯ͠
    ୯ͳΔ͓٬͞ΜҎ্ͷ
    ؾ࣋Λ͍࣋ͬͯΔਓz

    View Slide

  4. ࣗ෼Ҏ֎Ͱ3VCZΛ࢖͍ͬͯΔ
    ਓͷ͜ͱ͕ؾʹͳͬͯߦಈͯ͠
    ͍Δ͋ͳͨ͸͔ͳΓ3VCZJTUͷ
    ૉཆ͕͋Γ·͢ɻ͍·ͷٕज़Ϩ
    ϕϧ΍஌ࣝ͸ؔ܎ͳ͍ΜͰ͢ɻ

    View Slide

  5. Α͏ͦ͜

    View Slide

  6. .BU[JTOJDFTPXFBSFOJDF

    View Slide

  7. 3VCZJTOJDFTPXFBSFOJDF

    View Slide

  8. View Slide

  9. .BU[͕φΠεͳͷ͸Θ͔
    Δ .BU[ౕ͍͍
    ɻ͔͠͠
    3VCZ͕φΠεͱ͸ʜ ࡢ
    ೔ͷجௐߨԋΛώϯτʹ
    ߟ͑ͯΈ·͠ΐ͏ʜ

    View Slide

  10. l3VCZz͸ϓϩάϥϛϯάݴޠͩ
    ͚ʹݶΒͳ͍ɻϥΠϒϥϦ΍ϑ
    ϨʔϜϫʔΫɺπʔϧ΍ΞϓϦ
    έʔγϣϯʜΈΜͳͷ࣋ͪدͬ
    ͨl࢖͏ਓʹͱͬͯͷྑ͍ײ͡z
    ͷશମɺͦΕ͕3VCZͷφΠεɻ

    View Slide

  11. ΈΜͳ͕3VCZʹ࣋ͪدͬͨ੒Ռ͕φ
    Πε͔ͩΒࢲͨͪ3VCZJTU΋φΠεͰ
    ͍Α͏ʜ͋Ε ੒ՌΛ࣋ͪد͍ͬͯ
    Δͷ͸3VCZJTUͰ͸ 3VCZJTUͷ੒Ռ
    ͕φΠε͔ͩΒ3VCZJTU͸φΠε
    3VCZJTU͕φΠε͔ͩΒ3VCZ͕φΠ
    εʹͳΔ ແݶϧʔϓ͔ͳ

    View Slide

  12. 3VCZͷφΠε͞͸ɺ3VCZJTU
    ͷ࣋ͪدͬͨl͍͍ײ͡zͷશ
    ମͱͯ͠ɺ3VCZJTU͕ҭ͍ͯͯ
    ͘ɺͱ͍͏ಈతͰࣗݾݴٴత
    ͳऴΘΓͷఆ·Βͳ͍׆ಈʹɻ

    View Slide

  13. 3VCZ,BJHJͷ.BU[ͷ
    جௐߨԋ͸l.BU[JTOJDFz͔
    Βl3VCZJTOJDFz΁ͱ͍͏
    ͷ͕࣮ࡍʹ͸ͲΜͳ෩ܠͳͷ
    ͔Λ঺հͯ͘͠Ε͍ͯ·͢ɻ

    View Slide

  14. ʜͱ͸͍͑ɺͦΕ͸͜ͷ࿭੕Ͱ
    ࠷ڧΫϥεͷ΢σϚΤͷεΰΠ
    ڃϋοΧʔͷ࿩͡ΌΜͶʜͱ͍
    ͏ؾ࣋ͪ͸Θ͔Δɻ3VCZJTUʹ
    ٕज़ͷϨϕϧ͸ؔ܎ͳ͍ɺͱ͍ͬ
    ͯ΋ٕज़ͷ෼໺ͷ࿩ͩ͠Ͷʜɻ

    View Slide

  15. 3VCZJTOJDFTPXFBSFOJDF

    View Slide

  16. ೥Ҏ߱ ͜ͷ೥ؒ
    ʹɺ
    3VCZΛۀ຿Ͱ࢖͍࢝Ίͨɺlී
    ௨ͷzϓϩάϥϚʔͷΈͳ͞Μ
    ʹ΍ͬͯ΋Β͑Δͱ͍͍Μ͡Ό
    ͳ͍͔ͳͱࢥ͍ͬͯΔ͜ͱ

    View Slide

  17. ೔தʹɺ͓ޓ͍ʹܟҙΛ
    ΋ͬͯ཰௚ʹɺ࢓ࣄʹؔ
    Θ͍ͬͯΔlؾ࣋ͪzΛ࿩
    ͢ػձΛܧଓతʹ࣋ͱ͏

    View Slide

  18. lඇެࣜzͰ͍͍ɻ΍Γํ΋ͲͷΑ͏ͳ
    ΋ͷͰ΋ߏΘͳ͍ɻ·ͣ͸෼͔Β
    Ͱ΋ɻl;Γ͔͑ΓzɺPOɺࡶஊɺ
    ໘ஊɺϥϯνʜɻϓϩάϥϚʔಉ࢜Ͱ
    ࢝Ίͯ΋͍͍͠ɺ ࣗ෼ͨͪͰखԠ͑
    Λײͨ͡Γɺඞཁͦ͏ͳΒ
    ϓϩάϥ
    ϚʔͰดͣ͡ʹ΍ΕͨΒ͍͍͘͢͝ɻ

    View Slide

  19. 3VCZ͸ίϯϐϡʔλʔʹ࢓ࣄ
    Λͤ͞ΔͨΊͷϓϩάϥϛϯά
    ݴޠͰ͋Δͱಉ࣌ʹɺϓϩάϥ
    Ϛʔʹϓϩάϥϛϯά͕lͨͷ
    ͍͠zͱ͍͏ؾ࣋ͪΛ఻͑Δlݴ
    ޠzͰ΋͋Δ ͍͢͝

    View Slide

  20. ૹΓख͕ײ͍ͯ͡Δؾ࣋
    ͪΛड͚खͷ৺ʹ࠶ݱ͞
    ͤΔͨΊͷݴޠͷ࢖͍ํ
    ͸lࢻzͱݺ΂ΔͷͰ͸ 

    ϙΤϜ

    View Slide

  21. 3VCZ͕ϓϩάϥϛϯάݴޠΛ
    ϝσΟΞͱͯ͠ײ৘Λಧ͚͍ͯ
    ΔΑ͏ʹɺl࢓ࣄzΛϝσΟΞͱ
    ͯ͠ײ৘Λಧ͚ΒΕ͍ͯΔ͔ 

    ϙΤϜͱͯ͠ͷ࢓ࣄ

    View Slide

  22. Ͱ͖͍ͯΔͰ͖͍ͯ
    ͳ͍ɺڧ͍ऑ͍ɺࣗ
    ৴͕͋Δෆ҆ͩɺ೰Μ
    Ͱ͍Δ΋΍΋΍͢Δ

    View Slide

  23. 3VCZΛ࢖ͬͯۀ຿΍ࣄۀΛ͓͜
    ͳ͏ػձ͸ͱͯ΋ͱͯ΋૿͑·͠
    ͨ Α͍͜ͱ
    ɻ͔͠͠ɺ3VCZͷ
    Α͏ʹφΠεͳײ৘Λ࢓ࣄΛ௨͡
    ͯಧ͚͍ͯΔ৬৔͸ಉ͚ͩ͡͸૿
    ͑ͯ͸͍ͳ͍ɺͱײ͍ͯ͡Δɻ

    View Slide

  24. ͩͬͯ·͋೉͍͠
    ͔ΒͶ

    View Slide

  25. 3VCZ͸ίϯϐϡʔςΟϯάύϫʔ
    ͷ૿େͱΠϯλʔωοτͷීٴ
    ͷաఔͰੜ·Εҭͬͨɺࣗ༝ͳɺ
    ࣗવͷɺ໺ੜͷιϑτ΢ΣΞ

    3VCZ͸ϋοΧʔୡ͕ͭͬͨ͘

    View Slide

  26. lϏδωεzͱͯ͠ͷιϑτ
    ΢ΣΞͮ͘Γ͸Ͳ͏ͯ͠΋
    ਓ޻తͳ؀ڥʹͳΓ͕ͪɻ
    ๻ΒϋοΧʔ͡Όͳ͍͠ʜ
    ળѱͷ໰୊Ͱ͸ͳ͍
    ɻ

    View Slide

  27. ໺ੜͷιϑτ΢ΣΞͰ͋
    Δ3VCZͷφΠε͞Λਓ޻
    తͳ؀ڥͰ͋ΔϏδωε
    ͷੈքͰϋοΧʔͳΒ͵
    զʑ͕l࠶ݱz͢Δํ๏

    View Slide

  28. ͦ͜ͰΞδϟΠϧ
    ϦʔϯͰ͢Α

    View Slide



  29. ϋοΧʔͱΞδϟΠϧ

    "What!?! That's obvious!" closely
    followed by "But Fowler explains it better
    than Unix traditions do..."
    ,$#)

    *%'+
    )BDLJOHBOE3FGBDUPSJOHCZ&SJD43BZNPOE
    IUUQXXXBSUJNBDPNXFCMPHTWJFXQPTUKTQ UISFBE

    View Slide

  30. The New Methodology

    ৽͍͠ํ๏࿦
    • Adaptive > Predictive
    ࣄલͷਫ਼౓ΑΓ΋ݱ࣮΁ͷదԠΛ
    • People > Process
    “ਓؒ”͸ιϑτ΢ΣΞ։ൃͷ࠷ॏཁίϯϙʔωϯτ
    • Self-Adaptive Process
    ϓϩηε͸ϑΟʔυόοΫΛ௨ͯ͡ҭͭ
    https://www.martinfowler.com/articles/newMethodology.html

    View Slide

  31. ྫ͑͹4DSVNͱ͍͏ΞδϟΠ
    ϧͳ࢓ࣄͷਐΊํͷϑϨʔϜϫʔ
    Ϋ͕͋Δɻ͜ΕΛφΠεΛಧ͚
    ΔϝσΟΞͱͯ͠ϙΤϜԽ͢Δ

    ಁ໌ੑ ݕࠪ దԠ

    View Slide

  32. ྫ͑͹-&"/ΤϯλʔϓϥΠζͱ͍͏૖
    େͳߏ૝͕͋ΔɻlϛογϣϯίϚϯυz
    ͱlվળͷܕzΛφΠεΛಧ͚ΔϝσΟ
    Ξͱͯ͠ϙΤϜԽ͢Δ

    λʔήοτঢ়ଶɺ໨తɺ࠷খݶͷ੍໿

    View Slide

  33. 3VCZΛ࢖ͬͯlͨͷ͍͠zͱײ
    ͡ΒΕͨͱ͖ͷड͚खͱͯ͠ͷ
    ؾ࣋ͪΛɺࣗ෼͕࢓ࣄͷૹΓख
    ͱͳͬͨͱ͖ʹɺͦΕΛड͚ख
    ͷ৺ʹl࠶ݱz͢Δ͜ͱʹ͚ۙͮ
    ͍ͯΔͩΖ͏͔

    View Slide

  34. 3VCZͷφΠεΛಧ͚Δ
    ϝσΟΞͱͯ͠ϙΤϜԽ
    ͢Δͱ͍͏؍఺͔Βઌୡ
    ͷݴ༿ΛோΊͯΈΑ͏

    View Slide

  35. lࣃंͷͭʹͳͬͨਓؒ͸ɺ
    ࢓ࣄΛָ͘͠Ͱ͖ͳ͍ɻ࢓ࣄ
    ָ͕͘͠ͳΔͷ͸ɺ࢓ࣄͷશ
    ମ૾͕೺ѲͰ͖ɺ࢓ࣄશମͷ
    ࣭ʹ੹೚Λ࣋ͭ৔߹Ͱ͋Δɻ
    ΫϦετϑΝʔɾΞϨάβϯμʔʰύλϯɾϥϯήʔδʱ

    View Slide

  36. lʮָ͠͞ʯʹ΋ϏδωεՁ
    ஋͕͋Γ·͢ŠŠ݁ہɺϞν
    ϕʔγϣϯ͕ͦ͜ϓϩάϥϚ
    ͷੜ࢈ੑΛࠨӈ͢ΔͷͰ͢ɻ
    ϚʔςΟϯɾϑΝ΢ϥʔʮμΠφϛοΫλΠϐϯάʯ
    http://bliki-ja.github.io/DynamicTyping/

    View Slide

  37. http://modernagile.org/

    View Slide

  38. !LBLVUBOJ

    View Slide

  39. View Slide

  40. 3VCZJTUJTUɻ
    3VCZJTU͕޷͖ɻ

    View Slide

  41. Ұൠࣾஂ๏ਓ೔ຊ3VCZͷձͷཧࣄɻ
    ૲ͷࠜͷ೔ຊͷ3VCZJTUͷ׆ಈʹ๏ਓ
    ֨Λ༩͍͑ͯΔɻ3VCZϦϑΝϨϯε
    ϚχϡΞϧ 3VCZJTU.BHB[JOF
    3VCZ,BJHJ ஍Ҭ3VCZձٞ
    3BJMT(JSMT+BQBOͳͲͷ׆ಈΛࢧԉ
    ͢ΔࣄۀΛ͓͜ͳ͍ͬͯ·͢ɻ

    View Slide

  42. 3VCZΞιγΤʔγϣϯ͸Ұൠ
    ࡒஂ๏ਓɻࡒʹ๏ਓ֨Λ༩͑ͯɺ
    ͓ۚʹ͍͍ײ͡ʹಇ͍ͯ΋Βͬ
    ͯ3VCZͷීٴͱൃలͷͨΊͷ
    ࣄۀΛ΍͍ͬͯͯ͢͝

    ݸਓͷݟղͰ͢
    ɻ

    View Slide

  43. View Slide

  44. 3VCZͷφΠε͞͸ɺ3VCZJTU
    ͷ࣋ͪدͬͨl͍͍ײ͡zͷશ
    ମͱͯ͠ɺ3VCZJTU͕ҭ͍ͯͯ
    ͘ɺͱ͍͏ಈతͰࣗݾݴٴత
    ͳऴΘΓͷఆ·Βͳ͍׆ಈʹɻ

    View Slide

  45. 3VCZ͕ϓϩάϥϛϯάݴޠΛ
    ϝσΟΞͱͯ͠ײ৘Λಧ͚͍ͯ
    ΔΑ͏ʹɺl࢓ࣄzΛϝσΟΞͱ
    ͯ͠ײ৘Λಧ͚ΒΕ͍ͯΔ͔ 

    ϙΤϜͱͯ͠ͷ࢓ࣄ

    View Slide

  46. ೔தʹɺ͓ޓ͍ʹܟҙΛ
    ΋ͬͯ཰௚ʹɺ࢓ࣄʹؔ
    Θ͍ͬͯΔlؾ࣋ͪzΛ࿩
    ͢ػձΛܧଓతʹ࣋ͱ͏

    View Slide

  47. ͍·ɺͰ͖ΔΞδϟΠϧ ֯੐య

    https://www.slideshare.net/kdmsnr/20130808agilesapporo
    Further Reading
    https://www.slideshare.net/takahashim/how-to-become-a-rubyist
    3VCZJTUೖ໳೥൛ ߴڮ੐ٛ

    http://rubyonrails.org/doctrine/
    5IF3BJMT%PDUSJOF %))

    View Slide

  48. RUBY IS NICE
    SO WE ARE NICE
    ֯୩৴ଠ࿠ !LBLVUBOJ

    3VCZ8PSME$POGFSFODFجௐߨԋ

    View Slide