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
My Ruby Progress at kawasaki rubykaigi
Search
rojiuratech
August 16, 2016
Programming
0
99
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
650
kawasaki rubykaigi slide
rojiuratech
0
660
Other Decks in Programming
See All in Programming
無関心の谷
kanayannet
0
180
Javaに鉄道指向プログラミング (Railway Oriented Pro gramming) のエッセンスを取り入れる/Bringing the Essence of Railway-Oriented Programming to Java
cocet33000
2
580
ReadMoreTextView
fornewid
1
450
Beyond Portability: Live Migration for Evolving WebAssembly Workloads
chikuwait
0
380
AIコーディング道場勉強会#2 君(エンジニア)たちはどう生きるか
misakiotb
1
240
Select API from Kotlin Coroutine
jmatsu
1
180
從零到一:搭建你的第一個 Observability 平台
blueswen
1
960
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
540
単体テストの始め方/作り方
toms74209200
0
510
Is Xcode slowly dying out in 2025?
uetyo
1
160
C++20 射影変換
faithandbrave
0
500
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
280
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
490
Scaling GitHub
holman
459
140k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Optimizing for Happiness
mojombo
379
70k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Designing for humans not robots
tammielis
253
25k
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 ʮ͍ࣺͯʯҎ֎Ͱڟѱ͞Λൃش