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
Akira Matsuda
October 26, 2016
Programming
41
10k
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
13
4.6k
Hanamiを支える技術 2023 / Asakusa.rb Hanami 2023
a_matsuda
2
510
Rails 7.1をn倍速くした話
a_matsuda
11
12k
RubyKaigi 2022 After Talk
a_matsuda
0
400
Coming Soon…💎 / coming soon
a_matsuda
12
7.7k
Rails Performance Issues and Solutions
a_matsuda
9
35k
Extending Rails for Real World App Development
a_matsuda
9
7.3k
A RubyKaigi Talk
a_matsuda
8
2.3k
Ginza Rails 1
a_matsuda
6
1.2k
Other Decks in Programming
See All in Programming
プロジェクト新規参入者のリードタイム短縮の観点から見る、品質の高いコードとアーキテクチャを保つメリット
d_endo
1
880
リリース8年目のサービスの1800個のERBファイルをViewComponentに移行した方法とその結果
katty0324
2
2.6k
役立つログに取り組もう
irof
18
5.3k
GPU Hash Table | レイトレ合宿10
yknishidate
0
360
Prompt Engineering for Developers @ AWS Community Day Adria 2024
slobodan
0
110
Folding Cheat Sheet #8
philipschwarz
PRO
0
160
Content Security Policy入門 セキュリティ設定と 違反レポートのはじめ方 / Introduction to Content Security Policy Getting Started with Security Configuration and Violation Reporting
uskey512
0
270
Why Spring Matters to Jakarta EE - and Vice Versa
ivargrimstad
0
520
rtcamp 10 (vk-illuminati)
yumcyawiz
1
220
Go言語でターミナルフレンドリーなAIコマンド、afaを作った/fukuokago20_afa
monochromegane
2
130
RailsのPull requestsのレビューの時に私が考えていること
yahonda
4
1.5k
飲食業界向けマルチプロダクトを実現させる開発体制とリアルな現状
hiroya0601
1
350
Featured
See All Featured
Designing the Hi-DPI Web
ddemaree
280
34k
Making Projects Easy
brettharned
115
5.9k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
664
120k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
How to Ace a Technical Interview
jacobian
275
23k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
41
2.1k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
130k
Building an army of robots
kneath
302
42k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
280
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 ίʔυॻ͜͏ͥ