$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
My Ruby Progress at kawasaki rubykaigi
Search
rojiuratech
August 16, 2016
Programming
0
110
My Ruby Progress at kawasaki rubykaigi
kawasaki rubykaigi における発表資料(作成中)
rojiuratech
August 16, 2016
Tweet
Share
More Decks by rojiuratech
See All by rojiuratech
rubykaigi-verup-20160828
rojiuratech
0
670
kawasaki rubykaigi slide
rojiuratech
0
690
Other Decks in Programming
See All in Programming
TVerのWeb内製化 - 開発スピードと品質を両立させるまでの道のり
techtver
PRO
3
1.4k
How Software Deployment tools have changed in the past 20 years
geshan
0
28k
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
6
2k
All(?) About Point Sets
hole
0
280
DSPy Meetup Tokyo #1 - はじめてのDSPy
masahiro_nishimi
1
150
Microservices rules: What good looks like
cer
PRO
0
660
関数実行の裏側では何が起きているのか?
minop1205
1
620
ViewファーストなRailsアプリ開発のたのしさ
sugiwe
0
400
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
3
1.2k
20 years of Symfony, what's next?
fabpot
2
320
WebRTC、 綺麗に見るか滑らかに見るか
sublimer
1
150
Google Antigravity and Vibe Coding: Agentic Development Guide
mickey_kubo
2
140
Featured
See All Featured
Speed Design
sergeychernyshev
33
1.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Code Reviewing Like a Champion
maltzj
527
40k
Music & Morning Musume
bryan
46
7k
4 Signs Your Business is Dying
shpigford
186
22k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Transcript
1 ͜ͷ͘Β͍ͷ3VCZྗͷ৳ঢ়گ ʙͬͺΓجຊֶʹࢸΔʙ 4IJOJDIJ.*/04)*."
֓ཁ ̍ɿ͜ͷ̍͘Β͍ͷग़དྷࣄΛৼΓฦΔ ɹ3VCZͷಛੑʹঃʑʹ׳ΕɺଞͷݴޠͰ3VCZͬΆ͘ͳΔɻ ̎ɿΞτϓοτͷมԽʹ͢Δ ɹઃܭͷ͔ͨ͠ɺίʔυͷॻ͖ํʹେ͖ͳมԽ͕͋ͬͨ
͘͜͜Β͍ͷग़དྷࣄ • ՆɹղੳɾஔʁʂͳΒ3VCZͩʂ • ळɹϒʔτΩϟϯϓʹࢀՃɻεΩʔ߹॓Έ͍ͨͩɻ • ౙɹ͚ࣾΞϓϦέʔγϣϯͷ࡞ • य़ɹମܥతͳࣝͷඞཁੑΛ࠶ೝࣝɹ •
Նɹ1)1Ͱ3BJMTͬΆ͘ͳΔɹ
ղੳʁஔʁͳΒ3VCZͩʂ • εΫϨΠϐϯάɺஔॲཧ͕ඞཁʹͳͬͨɻ ɹʢͬ͟ͱ̐̌̌̌ϖʔδɺIUNMʣ • ͍ͭʹ3VCZͷग़൪ͩʂ • ࣝෆͰɺؒൈ͚ͳ͜ͱΛͯ͠·͕ͨ͠ɾɾɾ
ஏ͔ͣ͠ͳ͕Βɾɾɾ ͱΓ͋͑ͣಈ͔͘Β͍͍ɻͱɾɾɾ • ͍ϝιουɺϧʔϓͷೖΕࢠɺ ɹʢՄಡੑΛԼ͛ΔͷͰྑ͘ͳ͍ʣ • ϋʔυίʔσΟϯάͷଟ༻ ɹʢͦͷ͚ͩྑ͍͕ɺϝϯςφϯε͕େมʹͳΔʣ
ͱΓ͋͑ͣ3BJMTͰ • ࡢՆʹࢀՃͨ͠ϋοΧιϯͰɺࢦఆ͕ແ͘ͱࢀՃνʔϜ ͱΜͲ͕3VCZPO3BJMTΛ༻͍ͯͨ͠ɻ • 3P3 ͱࢥ͍·͕ͨ͠ʮಈ͘8FCΞϓϦΛૉૣ͘࡞Δʯͱ͍͏ ͔Βߟ͑Δͱదͳͷ͔ɻ ۀ͕͍͢͠ ར༻ऀਓޱ͕ଟ͍ʁ
3BJMʹΔͨΊʹϒʔτΩϟϯϓʹ • &MJUFT$BNQʹࢀՃɻ̏ؒͿͬ௨͠ɻ • 3BJMTڥͷઃఆ͔ΒσϓϩΠ·ͰҰ௨Γͷಈ࡞Λɺ ɹҰؾʹମݧͨ͠ εΩʔ߹॓Έ͍ͨͳײͩͬͨ͡
εΩʔ߹॓ɹͦͷ͜͜Ζʁ • ࠷ॳͷҰาΛ౿Έग़͢ɻ͜Ε͚ͩͰݩͱΕͨɻ ɹɹʢಈ࡞ͷΈΛҰؾʹҿΈࠐΉʣ • ʢࢲʹͱͬͯʣɹڥτϥϒϧͷ΄͏͕ਂࠁͩͬͨ • Α͍3VCZϓϩάϥϜͷॻ͖ํɹ·ͨผͷɻ ɹɹʢ͕͢͞ʹɺͦ͜·ͰΓࠐΊͳ͍ʣ
ͪΐͬͱͨ͠ͷΛ࡞ ͚ࣾʹɺใݕࡧΞϓϦΛ࡞ɻ • ཁٻ͞ΕΔػೳʁ ɹϢʔβผݖݶɺεϓϨουγʔτ͔Βͷσʔλૠೖ ɹ؆қݕࡧʢॅॴɺܖঢ়گͳͲʣɺϖʔδϯά • ͦͷଞཹҙʁ ɹࢢ۠ொଜͳͲͷʮݻఆϥϕϧܕσʔλʯ͕ଟ͍ɻ ɹσβΠϯແࢹͯ͠ྑ͍ʢॏཁʣ
(FNͷ༻Ͱ΄΅ؒʹ߹͏ (FNͰେํ࣮ݱՄೳ ࠷ޙͷ̍ɺ̎าͷ࡞ۀʹઐ೦ ࣮ݱ͍ͨ͠ػೳ ༻ͨ͠Gem ଳ࡞ۀ Ϣʔβཧ 1VOEJU ϩάΠϯɾݖݶͷ ఆॲཧ
දͷΠϯϙʔτ 3PP 4QSFBETIFFU ಡΈࠐΈ༰ͷ ఆɺܗॲཧ ϖʔδϯά LBNJOBSJ ϖʔδ͋ͨΓ ද੍ࣔޚ ݻఆ߲ BDUJWF@IBTI σʔλͷछྨ %#ܗࣜͷઃܭ Πϯϙʔτ TFFE@GV σʔλͷ४උ
σβΠϯύλʔϯେࣄ • ػೳΛ૿͍ͯͬͯ͠ɺ߹ੑ͕ͱΕΔγεςϜઃܭ • ಡΈ͘͢ॻ͖͘͢ɺվम͍͢͠ιʔείʔυ • ͜ΕΒΛ࡞Δʹɺਖ਼͍͠ܕΛʹ͚ͭΔඞཁ͕͋Δ ͲΜͳݴޠɺڥʹ͓͍ͯ ॏཁͳ͜ͱͰʁ
ޙճ͠ʹͳΓ͍͢ཧ༝Λߟ • ֶߍͰڭ͖͑Εͳ͍ ɹʢϓϩάϥϜʹΞϨϧΪʔΛىֶ͜͢ੜগͳ͘ແ͍ʣ ɹʢ͋͘·Ͱखஈɻ෭࣍తͳͷͰ͋Δέʔεଟ͍ʣ • ձࣾͰڭ͍͑ͯΔՋ͕ແ͍ʁ ɹʢೳಈతʹษڧ͠ͳ͍ͱʹ͖ͭʹ͍͘ʣ • ͦͷ͚ͩͳΒɺؒʹ߹ͬͯ͠·͏͜ͱ͕ଟ͍
ɹʢ͜Ε͕࠷େͷཧ༝͔ʣ
σβΠϯύλʔϯΛʹ͚ͭΔϝϦοτ • ݴޠΘͣɺීวతͳ෦͕ଟ͍ɻ ɹʢOOP͕Ͱ͖ΔͷͰ͋ΕɺྲྀΕࣅͯ͘Δʣ • ཁૉҰͭҰͭͷग़དྷ͕Α͘ͳΔ ɹʢंྠͷ࠶ൃ໌Λ͙͕ɺ͏ंྠͷग़དྷྑ͍ʣ
1)1Λͬͯ3BJMTͬΆ͘ͳΔ • ݱࡏɺੜPHPʴCybozu KintoneͰWebαʔϏεΛ࡞த ɹʢۀϑϩʔɺॾ݅Λߟྀ͜͠ͷߏΛར༻ʣ • .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 ɾɾɾɾ ˌιʔε ʢϦετΛऔಘ͢Δʣ ʢஔϝιουΛݺͼग़͢ʣ ˌஔϝιουʢQVCMJD੩తʣ ʢஔϝιουΛݺͼग़͢ʣ ̍ϝιου͋ͨΓͷίʔυߦɺذ͕େ෯ݮগɻ
ܧঝͱҠৡͷҧ͍ ܧঝʹΫϥεͷػೳΛҾ͖ܧ͙ ҠৡʹଞͷΫϥεͷػೳΛݺͼग़͢ w ܧঝͨ͠΄͏͕ศརʢ ɹΫϥεɿ%#ଓॲཧɹࢠΫϥεɿγʔϯผ
ܧঝͱҠৡͷҧ͍ ܧঝʹΫϥεͷػೳΛҾ͖ܧ͙ ҠৡʹଞͷΫϥεͷػೳΛݺͼग़͢ w ܧঝͨ͠΄͏͕ศར ɹΫϥεɿ"1*ΞΫηεͦͷͷͷॲཧ ɹࢠΫϥεɿγʔϯผΫΤϦ࡞ w Ҡৡͨ͠΄͏͕ศར ɹݺͼग़͠ݩɿೖྗσʔλड͚औΓ
ɹݺͼग़͠ઌɿσʔλόϦσʔγϣϯ
• λάܕσʔλͷѻ͍ • Ԟ͕ਂ͍ɻ • ݕࡧ࣌ͷΩʔʹΘΕ͍͢ɻ • දهϒϨ͕ൃੜ͍͢͠ɻʢɹΤϯδχΞతʹආ͚͍ͨʣ • มߋɺͦΕ΄Ͳසൟʹൃੜ͠ͳ͍ɻ
ɹྫɿʮϛϡʔβ࡚ʯɹͷࢪઃ۠ʁ ɾɹۀࢪઃɺΦϑΟεϏϧɺίϯαʔτձ ʢͲΕ͋ͯ·Δʣ
ͻͲ͍ίʔυ • ඇৗʹ͍ϝιου • ઃఆྨͷϋʔυίʔσΟϯά • 'BUͳίϯτϩʔϥʔɹ 3P3 ʮ͍ࣺͯʯҎ֎Ͱڟѱ͞Λൃش