Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
rubykaigi-verup-20160828
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
rojiuratech
August 28, 2016
Programming
0
670
rubykaigi-verup-20160828
rojiuratech
August 28, 2016
Tweet
Share
More Decks by rojiuratech
See All by rojiuratech
kawasaki rubykaigi slide
rojiuratech
0
710
My Ruby Progress at kawasaki rubykaigi
rojiuratech
0
120
Other Decks in Programming
See All in Programming
生成 AI 時代のスナップショットテストってやつを見せてあげますよ(α版)
ojun9
0
220
エージェント開発初心者の僕がエージェントを作った話と今後やりたいこと
thasu0123
0
250
Ruby x Terminal
a_matsuda
7
600
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.1k
AI時代のソフトウェア開発でも「人が仕様を書く」から始めよう-医療IT現場での実践とこれから
koukimiura
0
150
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
13
8.1k
Docコメントで始める簡単ガードレール
keisukeikeda
1
120
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
500
米国のサイバーセキュリティタイムラインと見る Goの暗号パッケージの進化
tomtwinkle
2
590
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
550
Go Conference mini in Sendai 2026 : Goに新機能を提案し実装されるまでのフロー徹底解説
yamatoya
0
600
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
190
Featured
See All Featured
The Invisible Side of Design
smashingmag
302
51k
Amusing Abliteration
ianozsvald
0
130
Making Projects Easy
brettharned
120
6.6k
Building Applications with DynamoDB
mza
96
7k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
85
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
Paper Plane (Part 1)
katiecoart
PRO
0
5.6k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.4k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
150
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
60
42k
Transcript
͜ͷ1͘Β͍ͷRubyྗͷ৳ঢ়گ ʙΏ͕Έͳֶ͍ͷճؼʙ 4IJOJDIJ.*/04)*." ˏSPKJVSBUFDI
ࣗݾհ ໊લɹɹɹɹɹɹɿɹຸౡɹ৻Ұ ͓ࣄɹɹɹɹɹɿɹϔϧεέΞۀք ɹɹɹɹɹɹɹɹɹɹࣗࣾ8FCαΠτ։ൃɾӡӦ LBXBTBLJSCɹɿɹࠒ͔Β සग़ݴޠڥɹɹɿɹ1)1.Z42-+BWB4DSJQUɾɾɾ ͖ͳݴޠڥɹɿɹ3VCZɹ7BHSBOU ɹ ෦ॺ໊̐ɺ͏ͪΤϯδχΞ໊̍ʢࢲ͚ͩʂʣ ϑϧελοΫܕΤϯδχΞ
ɾɾɾͷΑ͏ͳͷʹͳΔɻ
ൃද֓ཁ ̍ɿ͜ͷ̍͘Β͍ͷग़དྷࣄΛৼΓฦΔ ɹػձΛૂ͍ͭͭ3VCZʹೃછΜͰ͍͘ɻ ɹ2JJUBͷߘΛৼΓฦΔɻ ̎ɿΞτϓοτͷมԽʹ͢Δ 3VCZʹݶΒͣɺීวతͳϓϩάϥϛϯάֶʹ ɹճؼ͍ͯͬͨ͠ʁ
͜ͷ̍͘Β͍ͷग़དྷࣄ • ̏2ɹղੳɾஔʁʂͳΒ3VCZͩʂ • ̐2ɹϒʔτΩϟϯϓʹࢀՃɻεΩʔ߹॓Έ͍ͨͩɻ • ̍2ɹ͚ࣾΞϓϦέʔγϣϯͷ࡞ • ̎2ɹମܥతͳࣝͷඞཁੑΛ࠶ೝࣝɹ •
̏2ɹ1)1Ͱ3BJMTͬΆ͘ͳΔɹ
2JJUBɺϒϩάͷಈͱରൺ • ̏2ɹղੳɾஔʁʂͳΒ3VCZͩʂ ɹɹɹɹɹɹɹˠύʔεॲཧɺϧʔϓॲཧͷॻ͖ͳ͙Γ • ̐2ɹϒʔτΩϟϯϓʹࢀՃɻεΩʔ߹॓Έ͍ͨͩɻ ɹɹɹɹɹɹɹˠZBNMɺ3BJMTͷجຊಈ࡞ • ̍2ɹ͚ࣾΞϓϦέʔγϣϯͷ࡞ ɹɹɹɹɹɹɹˠ3BJMTΞϓϦͷ։ൃ
• ̎2ɹମܥతͳࣝͷඞཁੑΛ࠶ೝࣝ ɹɹɹɹɹɹɹˠԾڥ • ̏2ɹ1)1Ͱ3BJMTͬΆ͘ͳΔ ɹɹɹɹɹɹɹˠΤϯδχΞ
ղੳʁஔʁͳΒ3VCZͩʂ • εΫϨΠϐϯάɺஔॲཧ͕ඞཁʹͳͬͨɻ ɹʢύλʔϯ͕ఆ·͍ͬͯͳ͍̐̌̌̌ϖʔδͷIUNMʣ • ͑ͬ͜ΕखಈͰΔͷʁϠμʔ • ۀࣗମͰ͖·ͨ͠ɻͻͲ͍ΓํͰ͕͢ɾɾɾɻ νϥγͷཪʹ͔͖ͳ͙ͬͨΑ͏ͳ ͻͲ͍ιʔεͷࢁ
ࡢՆͷࣄͰ͋ͬͨ
Ͳͷ͘Β͍ͻͲ͔͔ͬͨʁ • ϑΝΠϧ໊औಘGJOEͱDBUͷΈ߹Θͤ • ্هग़ྗ݁ՌΛಡΈࠐΈɺग़ྗ͢ΔϑΝΠϧҰཡ࡞ • ೖग़ྗϦετʹԊͬͯɺஔͨ͠ͷΛు͖ग़͢ • ஔύλʔϯ͕ϋʔυίʔσΟϯά ࣌ΛৼΓฦΔͱɾɾɾ
ͦΜͳιʔείʔυΛେྔʹస͕͍ͬͯͨ
̎̌̍̑̏2͜Ζͷɺ2JJUBͷߘ • ೖॻʹॻ͍ͯ༗ΔΑ͏ͳॲཧͷ࣮ԋ • 4IFMM4DSJQUͰ؆୯ͳεΫϦϓτͷ࣮ߦ • (FNΛೖΕΑ͏ͱͯۤ͠ઓͨ͠ • ΤΫηϧγʔτͷσʔλಡΈࠐΈ ͳΜͰ͜Μͳͷॻ͍ͨʁʂͱ͍͏Α͏ͳ
͔ͣ͘͠ͳΔΑ͏ͳͷ͕ଟ
͜ΜͳͷΛॻ͍͍ͯͨ Γ͍ͨ͜ͱΘ͔Δ͕ɺ̎̌ੈلͷ $ݴޠͷڭՊॻΈ͍ͨͩɾɾɾ
͡ΊͯͷϋοΧιϯʹͯ • ࢀՃνʔϜͷ΄ͱΜͲ͕3VCZPO3BJMTΛ༻͍ͯͨ͠ɻ • 3P3 ɹˡ͜Μͳײ͡ʹͳΓ·ͨ͠ Ұൠڭཆͳͷ͔ʁʂ
3BJMʹΔͨΊʹϒʔτΩϟϯϓʹ • &MJUFT$BNQʹࢀՃɻ̏ؒͿͬ௨͠ɻ • 3BJMTڥͷઃఆ͔ΒσϓϩΠ·ͰҰ௨Γͷಈ࡞Λɺ ɹҰؾʹମݧͨ͠ εΩʔ߹॓Έ͍ͨͳײͩͬͨ͡
εΩʔ߹॓ɹͦͷ͜͜Ζʁ • ࠷ॳͷҰาΛ౿Έग़͢ɻ͜Ε͚ͩͰݩͱΕͨɻ ɹɹʢಈ࡞ͷΈΛҰؾʹҿΈࠐΉʣ • ʢࢲʹͱͬͯʣɹڥτϥϒϧͷ΄͏͕ਂࠁͩͬͨ • Α͍3VCZϓϩάϥϜͷॻ͖ํɹ·ͨผͷɻ ɹɹʢ͕͢͞ʹɺͦ͜·ͰΓࠐΊͳ͍ʣ ࠷ॳͷҰาΛ౿Έग़ͨ͠
ͪΐͬͱͨ͠ͷΛ࡞ ͚ࣾʹɺใݕࡧΞϓϦΛ࡞ɻ औҾઌใΛҬɺܖͳͲͰݕࡧ ͋͘͘͝͝Γ͖ͨΓͷγεςϜͰ͕͢
͜ͷΑ͏ͳཁ͕ w ਓʹΑͬͯฤूݖݶ͕ҟͳΔɹ w ֎෦͔ΒσʔλΛΠϯϙʔτ͍ͨ͠ w ݕࡧ݁Ռ͕ଟ͘ͳΔͷͰɺϖʔδΘ͚͍ͨ͠ w ࢢ۠ொଜͳͲͷ͍۠ͬͺ͍ w
࠷ॳͷσʔλૠೖɺΤϯδχΞʹͤΔʁʂ ڊਓͷݞʹΖ͏ʂʂʂ
ڊਓͷݞɹ3VCZ(FNTͷ༻ (FNͰେํ࣮ݱՄೳ ࠷ޙͷ̍ɺ̎าͷ࡞ۀʹઐ೦ ࣮ݱ͍ͨ͠ػೳ ༻ͨ͠Gem ଳ࡞ۀ Ϣʔβཧ 1VOEJU ϩάΠϯɾݖݶͷ ఆॲཧ
දͷΠϯϙʔτ 3PP 4QSFBETIFFU ಡΈࠐΈ༰ͷ ఆɺܗॲཧ ϖʔδϯά LBNJOBSJ ϖʔδ͋ͨΓ ද੍ࣔޚ ݻఆ߲ BDUJWF@IBTI σʔλͷछྨ %#ܗࣜͷઃܭ Πϯϙʔτ TFFE@GV σʔλͷ४උ
͜ͷ࣌ۤ࿑ͨ͜͠ͱ w ҰׅΠϯϙʔτͷมॲཧ w K2VFSZͷڍಈ 5VSCPMJOLTͰෆ۩߹ʣ ˠ࣌ͷ2JJUBʹଟ w ʮ͍ํʯͷʢγεςϜҎ্ʹॏཁʣ ˠձࣾͷಛੑ্ඇৗʹॏཁ
σβΠϯύλʔϯେࣄ • ػೳΛ૿͍ͯͬͯ͠ɺ߹ੑ͕ͱΕΔγεςϜઃܭ • ಡΈ͘͢ॻ͖͘͢ɺվम͍͢͠ιʔείʔυ • ͜ΕΒΛ࡞Δʹɺਖ਼͍͠ܕΛʹ͚ͭΔඞཁ͕͋Δ ͲΜͳݴޠɺڥʹ͓͍ͯ ॏཁͳ͜ͱͰʁ
ޙճ͠ʹͳΓ͍͢ཧ༝Λߟ • ֶߍͰڭ͖͑Εͳ͍ ɹʢϓϩάϥϜʹΞϨϧΪʔΛىֶ͜͢ੜগͳ͘ແ͍ʣ ɹʢ͋͘·Ͱखஈɻ෭࣍తͳͷͰ͋Δέʔεଟ͍ʣ • ձࣾͰڭ͍͑ͯΔՋ͕ແ͍ʁ ɹʢೳಈతʹษڧ͠ͳ͍ͱʹ͖ͭʹ͍͘ʣ • ͦͷ͚ͩͳΒɺؒʹ߹ͬͯ͠·͏͜ͱ͕ଟ͍
ɹʢ͜Ε͕࠷େͷཧ༝͔ʣ
3P3Λಋೖ͢Δ্Ͱͷ՝ ։ൃνʔϜશମͰɹ RoRͷదԠίετɹʼɹੜPHPར༻ίετ w ԿΛฤू͢ΕΑ͍͔Θ͔Βͳ͍ ɹˠॳݟࡴ͕ͩ͠ɺ͔֬ʹށ͏ɻ w 1)1ͳΒɺσβΠφʔ͕͍ͬͯΔπʔϧʹରԠͯ͠Δ ɹˠ)5.-ίʔσΟϯάͳͲΛߟ͑Δͱɾɾɾ ެ։WebαΠτʹؔͯ͠ɺੜPHPΛ༻
1)1Λͬͯ3BJMTͬΆ͘ͳΔ σβΠφʔ͕৮Εͳ͍෦ʹؔͯ͠ɺ MVCϑϨʔϜϫʔΫͬΆ࣮͘ • .PEFMɺ7JFXɺ$POUSPMMFSͷιʔεΛ͚Δ • .PEFMʹґଘ͠ͳ͍ػೳNPEVMFԽɻ • 63-ͳͲͷઃఆใDPOGJHϑΝΠϧʹ 3BJMTͬΆ͘ͳΔʢۮવͩͧʣ
,JOUPOF"1*ͱͷଓ͕େม • $36%ॲཧʹ૬͢Δ෦"1*Λར༻ɻ ɹʢ3VCZ 1)1 1ZUIPOͳͲͷ4%,͋Γʣ • 8FCαΠτ෦Λൈ͖ग़͢ͱɺ,JOUPOFΛ ɹ%#ͷΑ͏ʹѻ͍ͬͯ·͢ɻ •
͔͠͠ɺૹड৴͢ΔσʔλΛՃ͢Δ ɹ෦͕େมɻʢ͜͜Ͱۤ࿑ʣ ࠓճɺ4%,ʹ૬͢Δࣗ࡞͠·ͨ͠ɻ
όονॲཧͳͲ3VCZΛར༻༧ఆ • 3VCZ൛4%,ʢHFNʣ͍ͦ͢͏ɻ ɹɹυΩϡϝϯτ͕ॆ࣮͍ͯ͠Δ • ߦͷεΫϦϓτͰ$36%ॲཧ͕Մೳ ɹΫΤϦੜײతʹͰ͖Δɻ QFSMͷΑ͏ͳͷͱͯ͠ར༻ • ,JOUPOF"1*Λඪ४ೖྗPS4IFMM4DSJQU͔Β
ɹར༻͢Δ͜ͱ͍͠ɻ
"DUJWF3FDPSEͬΆ͑͘Δ SFRVJSFbLJOUPOF` BQJ,JOUPOF"QJOFX lFYBNQMFDZCP[VDPN lBVUIUPLFOz ΞϓϦʹର͠"1*ଓΛੜ ΞϓϦ൪߸*%ͷϨίʔυΛऔಘͱԾఆ BQJSFDPSEHFU
Ϩίʔυ൪߸Ͱऔಘ ΞϓϦ൪߸ʹର͠σʔλΛ༩͑Δ SFDPSE\lOBNFz\lWBMVFzl,BXBTBLJ3VCZLBJHJz^^ BQJSFDPSESFHJTUFS Ϩίʔυͷ৽نՃ
ΞτϓοτͷมԽ RubyʹݶͬͨͷͰͳ͍Ͱ͕͢ɾɾɾ • ۃྗϞδϡʔϧԽ࣮ͯ͢͠Δɻ • ΫϥεͷܧঝΑΓҠৡΛ͏ɻ • ઃఆͱϩδοΫ͚Δɻ ޠΓܧ͕Ε͖ͯͨ ϓϩάϥϚֶʹḷΓͭ͘
ۃྗϞδϡʔϧԽ͢Δ ྫ͑ɺରϦετͷςΩετϑΝΠϧʹର͠ ஔॲཧΛߦ͏Α͏ͳ߹ɾɾɾɻ w ରͱ͢ΔϑΝΠϧϦετΛऔಘ͢Δػೳ w ରϑΝΠϧͷ༗ແΛఆɺ̍݅ͣͭಡΈࠐΉػೳ w ஔ߲ͱর߹͠ɺஔ͖͑ॲཧΛߦ͏ػೳ w
ஔͨ͠ͷΛॻ͖ग़͢ػೳ ͱ͍ͬͨΑ͏ʹɺղͰ͖Δɻ
هड़ͷश׳ʹมԽ͕ग़͖ͯͨ ྫ͑ɺϧʔϓͷதͰෳͷॲཧΛߦ͏ͱ͖ GPSFBDI ඞཁͳͷಡΈࠐΈʣ ஔॲཧଞଟ ॻ͖ग़͠ॲཧʣ
FOE ɾɾɾɾ ॲཧͷ֓ཁ͕̍ը໘ʹऩ·Δʢॏཁʣˍ গͳ͍ίʔυͰଟ͘ͷͷ͕࣮ݱͰ͖ΔΑ͏ʹͳΔ ैདྷͷ߹ ̍̌̌ߦҎ্ͷϝιουβϥ ݱࡏͷ߹ GPSFBDI ػೳผΦϒδΣΫτʣ FOE ಡΈࠐΈʣ ஔ͖͑ʣ ʢॻ͖ग़͠ʣ ̍ϝιου͋ͨΓ ̏̌ʙ̒̌ߦఔ
ܧঝͱҠৡͷҧ͍ ܧঝʹΫϥεͷػೳΛҾ͖ܧ͙ ҠৡʹଞͷΫϥεͷػೳΛݺͼग़͢ 8FCΞϓϦέʔγϣϯΛઃܭ͍ͯ͠Δͱɺ ܧঝΑΓҠৡ͕దͳ͜ͱ͕ଟ͍ͱײͨ͡ɻ
ܧঝΑΓҠৡʁ ܧঝʹΫϥεͷػೳΛҾ͖ܧ͙ ʢԼͷΑ͏ͳπϦʔߏʣ εϥΠϜ ਫణܕ ӷঢ়ܕ ͘Β͛ܕ ϗΠϛεϥΠϜ ϕϗϚεϥΠϜ ͠ͼΕ͘Β͛ʁ
Ϋϥεͱͷؔ࿈ʹໃ६͕ʁʂ
ࣅ͍ͯΔΑ͏ͰҟͳΔಛੑ ϗΠϛεϥΠϜ ɾճ෮ߦಈ ɹɾϗΠϛ ɾυϩοϓ ɹɾߴ֬ w ͠ͼΕ͘Β͛ճ෮ߦಈΛߦΘͳ͍ ɹˠແ༻ػೳʹͳΔ ϕϗϚεϥΠϜ
ɾճ෮ߦಈ ɹɾϕϗϚ ɾυϩοϓ ɹɾத֬ ͠ͼΕ͘Β͛ ɾՃ߈ܸ ɹɾຑᙺ ɾυϩοϓ ɹɾ֬ ͘Β͛ܕεϥΠϜશ෦ճ෮Ωϟϥͱࢥͬͨʁ
ܧঝΑΓҠৡʁ ҠৡʹଞͷΫϥεͷػೳΛݺͼग़͢ ʢԼਤͷΑ͏ͳؔ࿈ੑʹͳΔʣ Ϣʔβʔ ΞΠςϜ Φʔμʔ "1*ଓ Πϯϙʔτ ΤϦΞ Ϟσϧͱ֦ுػೳҰରπϦʔͰͳ͍
Ϟσϧͱ֦ுػೳͷ୲ྫ ֤Ϟσϧ ɾΞΫγϣϯผॲཧ ɾೖग़ྗϑΟϧλʔ ɾ$36%ॲཧ ໘ʹΑͬͯɺΫΤϦͷ༰͕ҟͳΔ͕ ଓॲཧͷϑϩʔมΘΒͳ͍ "1*ଓɺϓϩηε΄΅͓ͳ͡ ֦ுػೳʢ"1*ଓʣ ɾΫΤϦͷ༻ҙ
ɾૹ৴ɺ݁Ռऔಘ ɾσʔλड͚͠
ઃఆͱϩδοΫΛ͚Δ લ৬ͰϋʔυίʔσΟϯάېࢭͳϓϩδΣΫτ͕͋Γ ʢσʔλղੳ࡞ۀͷ୯७ͳεΫϦϓτͰʂʂʣ ઃఆɹɹɹɿɹঢ়گʹԠͯ͡มߋൃੜ ɹɹɹɹɹɹɹʢස·ͪ·ͪʣ ϩδοΫɹɿɹঢ়گʹΑΔมߋ͕গͳ͍ ઃఆʹؔͯ͠ɺมߋසʹԠͯ͡ ιʔεϑΝΠϧΛׂ͢ΔͳͲͷ͕ඞཁ
ͦͷಓͷΓʹͻͲ͍ίʔυ͕ • ඇৗʹ͍ϝιου • ઃఆྨͷϋʔυίʔσΟϯά • 'BUͳίϯτϩʔϥʔɹ 3P3 ͜ΕΒΛஏ͔͍ͣ͠ͱ͓ͬͨ ͔ͩΒͦ͜ࠓ͕͋Δ
̍લͷॲཧΛ࣮ࢪͨ͠Β ྫ͑ɺରϦετͷςΩετϑΝΠϧʹର͠ ஔॲཧΛߦ͏Α͏ͳ߹ɾɾɾɻ ैདྷɿ̏ʙ̐ͷιʔεϑΝΠϧʹ͔Εɺ ɹɹɹԆ̑̌ʙ̒̌εςοϓҎ্ ݱࡏɿҰཡऔಘؚΊɺ̎̌εςοϓఔ ͠ͳ͘ͱྑ͔ͬͨॲཧ͕ݮͬͨ͜ͱ͕ओཁҼ
ࢀߟจݙɾϖʔδͳͲ ɾٕज़ධࣾɹύʔϑΣΫτ3VCZ ୈ̏ষ͋ͨΓʣ ɹʢΦϒδΣΫτࢤΛٵऩͰ͖ͨʣ ɾΦϥΠϦʔɾδϟύϯɹ࣮ફ7BHSBOU17BHSBOUಓ ɹʢඞཁʹԠͨ͡ڥมߋ͕Ͱ͖Δʣ ɾ3VCZʹΑΔσβΠϯύλʔϯ̑ݪଇ ɹIUUQRJJUBDPNLJEBDIJUFNTCEFBEBDD ɹʢ೦ͳ͕Βग़యݩઈ൛ʹͳͬͯ·͢ʣ ɹ