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
95
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
640
kawasaki rubykaigi slide
rojiuratech
0
640
Other Decks in Programming
See All in Programming
PHPカンファレンス名古屋2025 タスク分解の試行錯誤〜レビュー負荷を下げるために〜
soichi
1
190
2024年のWebフロントエンドのふりかえりと2025年
sakito
2
250
社内フレームワークとその依存性解決 / in-house framework and its dependency management
vvakame
1
560
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
110
負債になりにくいCSSをデザイナとつくるには?
fsubal
9
2.4k
もう僕は OpenAPI を書きたくない
sgash708
5
1.6k
ファインディLT_ポケモン対戦の定量的分析
fufufukakaka
0
710
GoとPHPのインターフェイスの違い
shimabox
2
190
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
900
WebDriver BiDiとは何なのか
yotahada3
1
140
さいきょうのレイヤードアーキテクチャについて考えてみた
yahiru
3
750
責務と認知負荷を整える! 抽象レベルを意識した関心の分離
yahiru
2
410
Featured
See All Featured
Speed Design
sergeychernyshev
27
790
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
A Philosophy of Restraint
colly
203
16k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
YesSQL, Process and Tooling at Scale
rocio
172
14k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
RailsConf 2023
tenderlove
29
1k
Why Our Code Smells
bkeepers
PRO
336
57k
Scaling GitHub
holman
459
140k
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 ʮ͍ࣺͯʯҎ֎Ͱڟѱ͞Λൃش