$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
チームをチームにするEM
hitode909
0
370
脳の「省エネモード」をデバッグする ~System 1(直感)と System 2(論理)の切り替え~
panda728
PRO
0
120
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
170
Cell-Based Architecture
larchanjo
0
140
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
410
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
280
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
160
TestingOsaka6_Ozono
o3
0
170
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
160
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
190
これならできる!個人開発のすゝめ
tinykitten
PRO
0
130
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
160
Featured
See All Featured
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
190
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
250
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
510
Automating Front-end Workflow
addyosmani
1371
200k
RailsConf 2023
tenderlove
30
1.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Into the Great Unknown - MozCon
thekraken
40
2.2k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Visualization
eitanlees
150
16k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
97
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 ʮ͍ࣺͯʯҎ֎Ͱڟѱ͞Λൃش