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
Work and OSS
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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.5k
Hanamiを支える技術 2023 / Asakusa.rb Hanami 2023
a_matsuda
2
760
Rails 7.1をn倍速くした話
a_matsuda
11
13k
RubyKaigi 2022 After Talk
a_matsuda
0
510
Coming Soon…💎 / coming soon
a_matsuda
12
8.4k
Rails Performance Issues and Solutions
a_matsuda
9
39k
Extending Rails for Real World App Development
a_matsuda
9
8k
A RubyKaigi Talk
a_matsuda
8
2.7k
Ginza Rails 1
a_matsuda
6
1.4k
Other Decks in Programming
See All in Programming
CSC307 Lecture 04
javiergs
PRO
0
660
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
330
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.6k
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
4k
AgentCoreとHuman in the Loop
har1101
5
240
組織で育むオブザーバビリティ
ryota_hnk
0
180
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
180
並行開発のためのコードレビュー
miyukiw
0
1.1k
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
1
120
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
390
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
140
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
Featured
See All Featured
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
55
For a Future-Friendly Web
brad_frost
182
10k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
58
50k
Why Our Code Smells
bkeepers
PRO
340
58k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
Building an army of robots
kneath
306
46k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
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 ίʔυॻ͜͏ͥ