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
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
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
400
CSC307 Lecture 04
javiergs
PRO
0
650
CSC307 Lecture 02
javiergs
PRO
1
770
Grafana:建立系統全知視角的捷徑
blueswen
0
320
Basic Architectures
denyspoltorak
0
660
Fragmented Architectures
denyspoltorak
0
140
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
5.9k
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
4
210
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
160
高速開発のためのコード整理術
sutetotanuki
1
380
CSC307 Lecture 03
javiergs
PRO
1
490
Featured
See All Featured
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
190
Building an army of robots
kneath
306
46k
Statistics for Hackers
jakevdp
799
230k
Context Engineering - Making Every Token Count
addyosmani
9
640
Unsuck your backbone
ammeep
671
58k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.6k
Crafting Experiences
bethany
1
46
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
110
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 ίʔυॻ͜͏ͥ