Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Work and OSS
Search
Akira Matsuda
October 26, 2016
Programming
41
11k
Work and OSS
MoneyForward Meetup Vol. 6の発表資料
http://moneyforward.connpass.com/event/42287/
Akira Matsuda
October 26, 2016
Tweet
Share
More Decks by Akira Matsuda
See All by Akira Matsuda
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
15
7.2k
Hanamiを支える技術 2023 / Asakusa.rb Hanami 2023
a_matsuda
2
740
Rails 7.1をn倍速くした話
a_matsuda
11
13k
RubyKaigi 2022 After Talk
a_matsuda
0
510
Coming Soon…💎 / coming soon
a_matsuda
12
8.3k
Rails Performance Issues and Solutions
a_matsuda
9
38k
Extending Rails for Real World App Development
a_matsuda
9
7.8k
A RubyKaigi Talk
a_matsuda
8
2.6k
Ginza Rails 1
a_matsuda
6
1.3k
Other Decks in Programming
See All in Programming
Module Harmony
petamoriken
2
610
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
140
テストやOSS開発に役立つSetup PHP Action
matsuo_atsushi
0
140
251126 TestState APIってなんだっけ?Step Functionsテストどう変わる?
east_takumi
0
300
sbt 2
xuwei_k
0
190
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
6
1.2k
FluorTracer / RayTracingCamp11
kugimasa
0
180
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
570
ViewファーストなRailsアプリ開発のたのしさ
sugiwe
0
390
Media Capture and Streams: W3C仕様と現場での知見
nowaki28
0
130
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
110
WebRTC と Rust と8K 60fps
tnoho
2
1.9k
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.9k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Music & Morning Musume
bryan
46
7k
Context Engineering - Making Every Token Count
addyosmani
9
460
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
700
The Cult of Friendly URLs
andyhume
79
6.7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Unsuck your backbone
ammeep
671
58k
Building Applications with DynamoDB
mza
96
6.8k
Transcript
ࣄͰ044 @a_matsuda
RubyͱRailsͷ։ൃ ͬͯ·͢ w ϑϧλΠϜίϛολʔͱ͔Ͱͳ ͍ͷͰɺ·͊झຯͰ͢ w Ͱຊۀ͕͍Ζ͍Ζͱझຯʹ׆͔ ͤͯΔͷͰɺͦͷΜͷΛ͠· ͢
ۀϓϩάϥϚʔྺ 15͙Β͍
ࣄͰϓϩάϥϛϯά w 7# +BWB /&5 1)1 1FSMͳͲ ͳͲ
ࣄͰͬͨOSS w +BLBSUBͷ͋Ε͜Ε 4USVUT 4QSJOH 4FBTFS w όά͔֬ʹৗతʹ౿ΜͰͨ w υΩϡϝϯτෆͩͬͨ
w ͰࣗͰͳΜͱ͔ͯ͠Ζ͏ͱ͍͏ൃʹ ͳΒͳ͔ͬͨ w ϒϥοΫϘοΫεײ
ͦͯ͠Rails w ͪΐͬͱ͏ͱ͙͢ʹόάʹͿͪͨΔ w ͳΜͩ͜Ε w ࣗͰ͍Ζ͍ΖվળͰ͖Δ༨͕͋Δ w ͳΜͱ͔ͯ͋͛ͨ͘͠ͳͬͪΌ͏Կ͔͕͋Δ w
ҙਤతʹԋग़͞ΕͨܺͰ͋ΔՄೳੑ w Ҏ্ܦͬͯ·ͩ3BJMTͬͯΔ w ઓ͑ΔϑϨʔϜϫʔΫ
Ruby on Railsͱ͍͏ ϓϩμΫτͷڧΈ w పఈͨ͠ݱࢤ w Ͳ͔͜ͷେֶͷݚڀࣨͰϢʔεέʔεΛໝ͠ͳ͕Β࡞ΒΕ ͨͷͰͳ͍ w
ϦΞϧͳݱͰͦͷ··͑Δੜʑ͠͞ w ͱͲ·ΒͣʹมԽ͠ଓ͚Δ͜ͱ w ଞਓͷྗΛआΓͯΞϓϦέʔγϣϯ։ൃΛϒʔετ͢Δ͜ͱ͕ Ͱ͖ΔΤίγεςϜ w 3BJMTϓϥάΠϯɺ3VCZ(FNTɺ#VOEMFS
ΤίγεςϜ(= ଓ͖ײ) w ϑϨʔϜϫʔΫϥΠϒϥϦશ෦ΞϓϦέʔγϣϯͱ ಉ͡ͷͰॻ͔Ε͍ͯΔ w ίʔυಡΈ͚ͨΕಡΊΔ w ͜͜·ͰʮΦʔϓϯιʔεʯͷࣈٛͲ͓Γ w
࡞ͬͯΔਓͨͪͷإ͕ݟ͑Δ w ։ൃʹࢀՃ͚ͨ͠ΕؾܰʹͰ͖Δ w ʮϒϥοΫϘοΫε͡Όͳ͍ײʯ
ଓ͖ײͷݯઘ w 3BJMT͕ੜ࢈ੑͷߴ͞Λ୲อ͢Δߏ w ͦΕΛࢧ͑Δ(JU)VCͱ͍͏ஔ w ݱͷ044ϜʔϒϝϯτΛࢧ͑ΔϓϥοτϑΥʔϜ w 4/4 w
ࣄͰ͑Δ w ͦͷΑΓͲ͜ΖͱͳΔίϛϡχςΟ׆ಈͷ׆ൃ͞ w Ϣʔβʔͱ։ൃऀͷڑײͷۙ͞ w 7.։ൃऀ͕͔ࣗΒెาͷͱ͜ΖʹॅΜͰͨΓ͢Δ
Rails͕ੜ࢈ੑͷߴ͞Λ ୲อ͢Δߏ w 4IPVMEFSTPG(JBOUT
ݱͷϓϩάϥϚʔͷ ͓ࣄ w ͷલͷػೳ্͕खʹ࣮Ͱ͖ΕͦΕͰྑ͍ͱ͍͏࣌Ͱͳ͍ w ݱͷ3BJMTΞϓϦͬͱෳࡶ w ΞϓϦέʔγϣϯʹඞཁͳͷΛશͯࣗલͰ࣮͢Δʁ w ੜ࢈ੑY͡Όͳ͘ͳΔ
w ڊਓͷݞʹ͏·͘Δೳྗ͕ٻΊΒΕ͍ͯΔ w ࣗͰॻ͘ΞϓϦέʔγϣϯͷίʔυණࢁͷઌͬͪΐ w ණࢁͷԼͷ෦·ͰؚΊͨશମΛ͍͔ʹࣗͨͪͰίϯτϩʔϧͰ ͖Δ͔
Q: ʮRailsʹίϯτϦϏϡʔτ͍ͨ͠ʂ Ͳ͏ͬͨΒίϯτϦϏϡʔλʔʹͳΕ·͢ ͔ʁʯ w Ίͯ w ࣄͰΞϓϦΛ։ൃ͢Δ͍ͭͰʹ w ;ͭ͏ʹෆ۩߹Λݟ͚ͭͯ
w ;ͭ͏ʹύονॻ͍ͯ w ϑϨʔϜϫʔΫΞϓϦέʔγϣϯͷԆ w ࣮ݴޠಉ͡ w ͬͯΔಓ۩ಉ͡ (JU)VC
ΞϓϦ։ൃͷ͍ͭͰʹRails ։ൃ͢Ε͍͍͚ͩ
RailsϓϥάΠϯ w ͋ΓͷΛΈ߹ΘͤͯΞϓϦΛ ΈཱͯΔ
ϓϥΪϯ࡞ऀ͕શͯͷϢʔεέʔε Λఆͯ͠Δ͜ͱ͋Γ͑ͳ͍ w Կ͔͠ΒखΛՃ͑ͳ͕Β͏ w खݩͰϞϯΩʔύονʁ w Δ w ΞοϓετϦʔϜʹૹͬͯܰʹͳΔ
ࣄ vs OSS? w 044ΞϓϦέʔγϣϯͷҰ෦ w Ή͠Ζେ෦
ࣄͰOSS͢Δίπ w ϫʔΫ044ؒͷεΠονϯάίετ ΛԼ͛Δ w ͬͯΔϓϩμΫτͷιʔείʔυશͯ खݩʹஔ͍͓ͯ͘ w ίʔυΛݟΔΑΓਓؒΛݟΔ w
ڞଘڞӫΛࢦ͢
ϫʔΫ <=> OSSؒͷ εΠονϯάίετΛԼ͛Δ w 044։ൃͱಉ͡ಓ۩ΛͬͯࣄΛ͢Δ͜ͱ w .BD -JOVY (JU)VC
$* νϟοτ w ৗతʹӳޠͰಡΉɺӳޠͰॻ͘ w ίϛοτίϝϯτ͕ຊޠͱ͔֎ w ۀΞϓϦͩͱͳ͔ͳ͔͍͠
ͬͯΔϓϩμΫτͷιʔε ίʔυશͯखݩʹஔ͍͓ͯ͘ w όάΛ౿ΜͩΒ࣍ͷॠؒύον͕ॻ͚Δ Α͏ʹ w HFNTSD ͍·Ͳ͖ͬͯͳ͍ਓͳΜͯډͳ ͍ͱࢥ͏͚Ͳɺ೦ͷͨΊॻ͍ͱ͖·͢Ͷ
• % git clone https://github.com/amatsuda/ gem-src.git ~/.rbenv/plugins/gem-src
ίʔυΛݟΔΑΓਓΛݟΔ w ଞਓͷॻ͍ͨίʔυΛ৴༻͠ͳ͍ w ͏͚Ͳ৴༻͠ͳ͍ w ৴༻Ͱ͖ΔਓؒͱͰ͖ͳ͍ਓؒΛݟۃΊΔ w ৴༻Ͱ͖ΔίʔυΛॻ͘ਓؒ৴༻Ͱ͖Δਓؒ w
৴༻Ͱ͖Δਓ͕ؒॻ͍ͨίʔυ৴༻Ͱ͖Δίʔ υ
ͳΔ͘༑ୡͷϓϩμΫτ ͔͠Θͳ͍Α͏ʹ͢Δ w 3VCZ$POGͱ͔3BJMT$POGͱ͔ߦ͘ͱɺ͕ࣗΑ͘͏ϓϩμΫ τͷ࡞ऀͱ·͊Λ͠·͢ΑͶʁ w ༑ୡʹͳΓ·͢ΑͶʁ w ॻ͍ͨਓؒͷਓͱͳΓ͕Θ͔Δͱίʔυͷ͋ΔఔΘ͔Δ w
ϓϩμΫτͷΫη͕ಡΈ͘͢ͳΔ w Կ͔͋ͬͨͱ͖ʹ࣭͍͢͠ w ύονΛͶ͡ࠐΈ͍͢ w Βͳ͍ਓ͕ॻ͍ͨHFN͕CVOEMF͞ΕͯΔͱෆ҆
ίϛϡχςΟେࣄ w ΧϯϑΝϨϯεʹߦͬͯ༑ୡΛ࡞Ζ͏ w ίʔυॻ͍ͯΔਓʹ͔͚͠Α͏ w ༧शࡐྉ w ίʔυಡΉ w
ຊਓͳΒΔͼ·ͷΠϯλϏϡʔͱ͔͓͢͢Ί w 3VCZJTU)PUMJOLT w ͪΌΜͱίʔυॻ͍ͯΔਓ ৴༻Ͱ͖Δਓ ͔͠ग़ͯ͜ͳ͍ w ޱઌ͚ͩ͏·͍͜ͱݴͬͯͯશવίʔυࡽͯ͠ͳ͍ܳਓΈ͍ͨͳͷͱ͔ɺίʔυॻ͔ͣ ʹϒϩά͔ͬΓॻ͍ͯΔΑ͏ͳͷͱ͔͕ग़ͯ͜ͳ͍ w ʮษڧձ͡Όͳ͍ʯҬίϛϡχςΟʹإΛग़ͯ͠ΈΔͷ͓͢͢Ί
ίϛϡχςΟͰൃ৴͢Δ ͠͞ w ެ༻ޠӳޠ w ӳޠͰπΠʔτͯ͠ಡΜͰΒ͑ͳ͍ΑͶ w ΧϯϑΝϨϯεߦ͚ྑ͍ͬͯΜ͡Όͳ͍ w ͍͖ͳΓߦͬͯ΅ͬͪ
w ొஃ͢Δͱ͍͏γϣʔτΧοτ͋Δ͚Ͳɺ ߴ
͔ͩΒίʔυΛ ॻ͘ΜͰ͢Αʂ
ίʔυίϛϡχςΟʹ ࢀՃ͢ΔͨΊͷϓϩτίϧ w ͜ΕҎ্ʹ༗ޮͳखஈ ಛʹ͋Γ·ͤΜ
ڞଘڞӫΛࢦ͢ w ։ൃऀɺίϛϡχςΟɺاۀ w ऀʹͱͬͯ044׆ಈ͕Ͳ͏͍͏ ϝϦοτΛͨΒ͔͢ߟ͑ɺߦಈ ͢Δ
։ൃऀɺίϛϡχςΟɺاۀͷ Give & Takeؔ 企業 開発者 コミュニティ
։ൃऀɺίϛϡχςΟɺاۀͷ Give & Takeؔ 企業 開発者 コミュニティ څ༩ ࿑ಇ
։ൃऀɺίϛϡχςΟɺاۀͷ Give & Takeؔ 企業 開発者 コミュニティ څ༩ ࿑ಇ ίʔυ
ίʔυ
։ൃऀɺίϛϡχςΟɺاۀͷ Give & Takeؔ 企業 開発者 コミュニティ څ༩ ࿑ಇ ίʔυ
ίʔυ ? ?
ίϛϡχςΟاۀʹԿΛ ฦͤΔ͔ʁ w ʮʯͷఏڙ w 3VCZ,BJHJͱ͔ w ੜʑ͘͠ݴ͏ͱɺʮਓࡐϓʔϧʯ ͱͯ͠ͷׂɺ͔ͳ͊ʁ
اۀίϛϡχςΟʹԿΛ ฦͤΔ͔ʁ w ͋·Γٞ͞Ε͍ͯͳ͍Ͱʁ w ࣗͷݟղͱͯ͠ɺ ։ൃऀίϛϡχςΟͷϥΠϯͱ ͷଓ͖ײͷԋग़Λ͢ΔͱΑͦ͞ ͏ͳؾ͕͢Δ
ίϛϡχςΟͱاۀͱͷ ଓ͖ײ w ίϛϡχςΟͱͷڑͷ͕ۙͦ͜͞3VCZͷ ָ͠ΈɺڧΈ w اۀͱίϛϡχςΟͷڑ͕ͱͯॏཁ w ࣾʹ3VCZίϛολʔ͕ډΔ w
3VCZ,BJHJʹεϙϯαʔͯ͠Δ w ΧϯϑΝϨϯεࢀՃඅ༻Λग़ͯ͘͠ΕΔ
ͭ·Γۚ ͰղܾͰ͖Δ͜ͱ͕ଟ͍ w 3VCZ3BJMTͷΤίγεςϜʹ͔ͬͬ ͯചΛ͢ΔҎ্ඞཁෆՄܽͳίετ w 044λμͰ͑ΔͷͰɺͦͷͿΜු ͍͓ͨۚΛͦ͏͍ͬͨܗͰ׆༻Ͱ͖Δ
ͨͱ͑RubyKaigiͷ εϙϯαʔγοϓ w ͿͬͪΌ͚తͳεϙϯαʔϝϦοτͳΜͯ ఏڙͯ͠ͳ͍ͱݴ͑Δ w ٻਓࠂଧͭۚͩͱࢥͬͨΒʁ w స৬ΤʔδΣϯτʹࢧ͏͓ۚͩͱࢥͬͨΒʁ w
ͦͷΜ͕Θ͔ͬͯΔܦӦऀ͔Βɺֹ͕ۚ ҆͗͢ΔͱΑ͓ࣤ͘ΓΛ͍͍͍ͨͩͯ·͢
ͦΕ͔Βɺͬͺίʔυ w ίϛϡχςΟ͔ΒίʔυͰڗडͨ͠ԸܙίʔυͰฦ͍ͨ͠ w #BTFDBNQΛ࡞Δ͍ͭͰʹ3BJMTެ։ͪ͠Όͬͨ4JHOBMTࣾ w 0QFO4PVSDF "MNPTU &WFSZUIJOH (JU)VCࣾ
w ΫοΫύουࣾͷ044ϙϦγʔ w ϝϯόʔͷਓਓ͕ίϛϡχςΟͰഓͬͨ৴༻͕׆͖ͯ͘Δ w ྑ͍ίʔυॻ͚ͩ͘͡Όμϝ w ͲΜͳ৫ʹॴଐ͢Δ୭͕ॻ͍ͨίʔυ͔͕ॏཁ w ͏ͱ͖ʹ୭͕ॻ͍ͨίʔυ͔ݟΔͰ͠ΐʁ
ͨͱ͑MFࣾ w ίϛϡχςΟͷࢿ w ͜ͷ͙Β͍Ͱ͍ͩͿίϛϡχςΟͰͷ৴ ༻ͷஷ͕ۚ૿͖͑ͯͨͣ w ʮ͋ͷʯ.'ࣾൃͷϓϥάΠϯ͕ʂͱ͔ͳΔɺ ͔͠Εͳ͍ w
ΈΜͳͬͯ͘ΕΔɺ͔
։ൃऀɺίϛϡχςΟɺ اۀͷྑ͍ؔ w 044։ൃʹ͓͔͔ۚΔɻίϛϡχςΟ׆ಈʹ͓ۚ ͕ඞཁ w ։ൃऀίϛϡχςΟʹܨ͕Βͳ͍ͱઓ͑ͳ͍ w ଞਓͷྗΛ͏·͑͘ͳ͍։ൃऀਓྗ͔͠ग़ͤͳ͍ w
اۀ͕ίϛϡχςΟʹରͯ͠Կ͕Ͱ͖Δ͔ʁԿΛͯ͘͠ ΕΔͷ͔ʁ w զʑ։ൃऀͦ͜Λݫ͍͠Ͱ͔ͬ͠ΓධՁ͍ͨ͠
·ͱΊ w Βͷࣄ044ͱ͖߹͏͜ͱ w 044ίϛϡχςΟͷ׆ಈͷ࢈ w ։ൃऀίϛϡχςΟίʔυΛॻ͘ ਓؒͷू·Γ w ίʔυॻ͜͏ͥ