Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ソフトウェアエンジニアの入力と出力
Search
Satoshi Tagomori
July 18, 2024
Technology
1
110
ソフトウェアエンジニアの入力と出力
Classmethod ODYSSEY Day 7
Satoshi Tagomori
July 18, 2024
Tweet
Share
More Decks by Satoshi Tagomori
See All by Satoshi Tagomori
Unboxing Ruby Box
tagomoris
4
110
Namespace and Its Future
tagomoris
6
790
さくらのクラウドにおけるCloudNativeのいまとこれから
tagomoris
5
1.1k
State of Namespace
tagomoris
5
8.5k
クラウドサービス事業者におけるOSS
tagomoris
4
2.1k
パブリッククラウドのプロダクトマネジメントとアーキテクト
tagomoris
4
1.3k
2000年てづくりキーボードの旅
tagomoris
1
270
Namespace, Now and Then
tagomoris
0
390
Namespace on read
tagomoris
2
570
Other Decks in Technology
See All in Technology
フィッシュボウルのやり方 / How to do a fishbowl
pauli
2
390
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
0
290
Amazon Bedrock Knowledge Bases × メタデータ活用で実現する検証可能な RAG 設計
tomoaki25
6
2.4k
事業の財務責任に向き合うリクルートデータプラットフォームのFinOps
recruitengineers
PRO
2
230
ESXi のAIOps だ!2025冬
unnowataru
0
390
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
9.9k
SQLだけでマイグレーションしたい!
makki_d
0
1.2k
AgentCore BrowserとClaude Codeスキルを活用した 『初手AI』を実現する業務自動化AIエージェント基盤
ruzia
7
1.6k
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
14k
M&Aで拡大し続けるGENDAのデータ活用を促すためのDatabricks権限管理 / AEON TECH HUB #22
genda
0
260
Building Serverless AI Memory with Mastra × AWS
vvatanabe
0
610
Bedrock AgentCore Memoryの新機能 (Episode) を試してみた / try Bedrock AgentCore Memory Episodic functionarity
hoshi7_n
2
1.9k
Featured
See All Featured
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
32
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
59
Prompt Engineering for Job Search
mfonobong
0
130
Leadership Guide Workshop - DevTernity 2021
reverentgeek
0
170
Rebuilding a faster, lazier Slack
samanthasiow
85
9.3k
Paper Plane (Part 1)
katiecoart
PRO
0
2.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
51
So, you think you're a good person
axbom
PRO
0
1.8k
Odyssey Design
rkendrick25
PRO
0
440
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Transcript
ιϑτΣΞΤϯδχΞͷ ೖྗͱग़ྗ Satoshi Tagomori 2024/07/18 Classmethod Odyssey Day 7
@tagomoris Satoshi Tagomori (ా ૱) ιϑτΣΞΤϯδχΞ OSS։ൃऀ Maintainer/Founder: OSS: Fluentd,
MessagePack, Norikra, Woothee, … Event: ISUCON Service: Pathtraq
ུྺ tagomoris • 2006ʙ 2010 SIerͰOSS/ϓϩϓϥΠΤλϦΛΘͣITΠϯϑϥɺԾԽɺDBɺετϨʔδٕज़ • 2010ɿ iPadΞϓϦ։ൃɺAppStoreͰެ։(طʹެ։ఀࢭࡁ) •
2010ʙ2015 ϥΠϒυΞ(ͷͪLINE)ͰITΠϯϑϥɺσʔλੳج൫ɺISUCON։࢝(2011) • 2015ʙ2021 Treasure DataͰσʔλࢄॲཧج൫ɺFluentdϑϧλΠϜ։ൃ(2016ʙ2017) • 2021ʙ2024ɿ ݸਓࣄۀओͱٕͯ͠ज़ސɺαʔϏε։ൃɺॻ੶ࣥචɺOSS։ൃ
ུྺ tagomorisɿ ITΠϯϑϥઐ? σʔλੳج൫ઐ? • 2006ʙ 2010 SIerͰOSS/ϓϩϓϥΠΤλϦΛΘͣITΠϯϑϥɺԾԽɺDBɺετϨʔδٕज़ • 2010ɿ
iPadΞϓϦ։ൃɺAppStoreͰެ։(طʹެ։ఀࢭࡁ) • 2010ʙ2015 ϥΠϒυΞ(ͷͪLINE)ͰITΠϯϑϥɺσʔλੳج൫ɺISUCON։࢝(2011) • 2015ʙ2021 Treasure DataͰσʔλࢄॲཧج൫ɺFluentdϑϧλΠϜ։ൃ(2016ʙ2017) • 2021ʙ2024ɿ ݸਓࣄۀओͱٕͯ͠ज़ސɺαʔϏε։ൃɺॻ੶ࣥචɺOSS։ൃ
ೖྗͱग़ྗ ιϑτΣΞΤϯδχΞʹͱͬͯͷೖྗͱग़ྗ
ೖྗͱग़ྗ Inputs and Outputs ओମ ೖྗ ग़ྗ ϓϩάϥϜ σʔλ σʔλ
ϓϩάϥϚʔ ػೳཁ݅ ಈ࡞ཁ݅ ༷ ϓϩάϥϜίʔυ ιϑτΣΞΤϯδχΞ ? ? ਓؒ ঢ়گ ཉٻ ࣝɾܦݧ Ռ ۚમ ࣝɾܦݧ
ೖྗͱग़ྗ Inputs and Outputs ओମ ೖྗ ग़ྗ ϓϩάϥϜ σʔλ σʔλ
ϓϩάϥϚʔ ػೳཁ݅ ಈ࡞ཁ݅ ༷ ϓϩάϥϜίʔυ ιϑτΣΞΤϯδχΞ ? ? ਓؒ ঢ়گ ཉٻ ࣝɾܦݧ Ռ ۚમ ࣝɾܦݧ
ೖྗͱग़ྗ ͳͥͦΜͳͷʹ͢Δͷ? • γεςϜͷ;Δ·͍ΛݟΔ͜ͱϓϩάϥϜͰ͍͠ • ೖྗσʔλͱग़ྗσʔλΛݟͯσόοά • ෦ʹखΛೖΕͯprintσόοάprobeɺtracingͳͲͳͲ • Ͱώτ(ιϑτΣΞΤϯδχΞ)ͷ;Δ·͍Ͳ͏ͬͯݟΔ?
• ෦ʹखΛೖΕΔ • ೖྗͱग़ྗΛݟΔ
ιϑτΣΞΤϯδχΞ Engineer working on Software • ఆٛਓʹΑ͍ͬͯΖ͍Ζ • tagomorisͷࢹɿ ʮιϑτΣΞγεςϜΛத৺ʹΤϯδχΞϦϯάΛߦ͏ਓʯ
• ΤϯδχΞϦϯάɿ ։ൃ(ϓϩάϥϛϯά)ɺ࣮ੈքͷద༻ɺܧଓతͳػೳͱޮͷվળ ར༻ͷଅਐɺվળͷͨΊͷใऩूͱੳɺจॻ࡞ͱߋ৽ ։ൃɾվળܭըɺνʔϜ࡞Γɺใɺ࠾༻ɺ……
ಈػ ͳͥΤϯδχΞϦϯάΛߦ͏ͷ͔? ͳͥιϑτΣΞΤϯδχΞϦϯάΛબΜͩͷ͔?
ಈػ Motivation • ಈػೖྗͷ͜ͱɺग़ྗͷ͜ͱ͋Δ • ग़ྗ͕ಈػͷྫ • ۚમɺརศੑɺ໊༪ɺࣝ(ܦݧ) • ೖྗ͕ಈػͷྫ
• ࣝ(ح৺)
ಈػ Motivation • ಈػೖྗͷ͜ͱɺग़ྗͷ͜ͱ͋Δ • ग़ྗ͕ಈػͷྫ • ۚમɺརศੑɺ໊༪ɺࣝ(ܦݧ) • ೖྗ͕ಈػͷྫ
• ࣝ(ح৺)
ಈػ Motivation • ಈػೖྗͷ͜ͱɺग़ྗͷ͜ͱ͋Δ • ग़ྗ͕ಈػͷྫ • ۚમɺརศੑɺ໊༪ɺࣝ(ܦݧ) • ೖྗ͕ಈػͷྫ
• ࣝ(ح৺) ָ͠Έ ָ͠Έ
ࣗΛΔ ͳΜͱͳ͓ۚ͘ͷͨΊʹੜ͖Δɿ͢Β͍͠ ͕ ͏ͪΐͬͱ͚ͩਓੜʹϓϥεͷԿ͔͕͍͍͋ͬͯ
tagomoris: 2021 ʙ 2024 ओʹͬͨ͜ͱ • (ٕज़ސ 2021ʙ ࣾ) •
ॻ੶ࣥච 2021ʙ2022 • αʔϏε։ൃ 2022ʙ2023 • OSS։ൃ 2023ʙ2024
࣮ྫ1 ٕज़ॻग़൛
౷߹ϩάج൫ͷͨΊͷσʔλऩूπʔϧ • ٕज़ධࣾ, 2022/10/08ൃച A5ʗ544ϖʔδ https://gihyo.jp/book/2022/978-4-297-13109-8 Fluentd࣮ફೖ
࣮ྫ1: ٕज़ॻग़൛ Fluentd࣮ફೖͷࣥචɾग़൛ • ݩ2017͘Β͍͔Βͷاըͱݪߘ • ϑϧλΠϜͰಇ͍͍ͯͨͱ͖ʹͱͯͤ͞ΒΕͳ͔ͬͨ • ʮ͜ͷػձʹઈରʹग़ͯ͠ऴΘΓʹ͍ͨ͠ʯ •
୯ஶͱͯ͠ͷࣥචܦݧ • ࡶࢽهࣄଟ͘ܦݧ͋Γ • ڞஶͰͷ୯ߦຊࣥචͰϙγϟͬͨܦݧ͕͋ͬͯͪΐͬͱτϥϚ
࣮ྫ1: ٕज़ॻग़൛ Fluentd࣮ફೖͷࣥචɾग़൛ • ೖྗ • Fluentdʹؔ͢Δݩʑͷࣝͱܦݧɺ࠷৽ͷFluentdʹؔ͢Δߋ৽ใ • ग़ྗ •
࣮ͱ໊༪(୯ஶ) • ܦݧɿٕज़ॻͷॻ͖͔ͨɺٕज़ใͷจॻԽͷํ๏
࣮ྫ2 ݸਓαʔϏεͷ։ൃɾެ։
https://pathtraq.tagomor.is/
࣮ྫ2: ݸਓαʔϏεͷ։ൃɾެ։ Pathtraq • ࣗͷҐஔใΛ24x365ͰอଘɾݕࡧͰ͖ΔiPhoneΞϓϦ • ͕͍ࣗͭͲ͜ʹ͍͔ͨɺͲ͜ʹ͍͍͔ͭͨΛௐ͍ͨ • νΣοΫΠϯػೳ •
ͯ͢ΛࣗͰ࡞Δ • αʔόαΠυ͔ΒΫϥΠΞϯταΠυ·Ͱɺݱߦٕज़ͻͱηοτͷϦαʔν • ։ൃɺUI/UXσβΠϯɺར༻نɺAppStoreެ։ͳͲͷύΠϓϥΠϯશମ
࣮ྫ2: ݸਓαʔϏεͷ։ൃɾެ։ Pathtraq • ೖྗ • ReactɺSwiftUIͳͲͷ֤ϥΠϒϥϦɾϑϨʔϜϫʔΫ • FigmaʹΑΔUI/UXσβΠϯϓϩηε •
֤ࠃɾํ͚ར༻نɾϓϥΠόγʔϙϦγʔ࡞ϊϋ • ग़ྗ • ࣗͷ͍͍ͨαʔϏε
࣮ྫ3 OSS(Rubyͷύον)։ൃ
https://bugs.ruby-lang.org/issues/19744 https://rubykaigi.org/2024/presentations/tagomoris.html
Collision: 2 versions of 1 library cause errors Ruby Process
Library Code DB::Client (v3) 😵 Application Code App::Func User Library Code DB::Client (v2) Library Code ActiveSupport (v7) Before Namespace: Global Only
Ruby Process Namespace Hide changes from apps/libs in a namespace
to other spaces Namespace Application Code App::Func User Library Code DB::Client (v2) Library Code ActiveSupport (v7) Library Code DB::Client (v3) 😀
࣮ྫ3: OSS։ൃ Rubyʹ͓͚ΔNamespace։ൃ • Rubyʹ͓͚ΔίʔυִػೳͷఏҊ • ଞͷݴޠͰ͍͏ύοέʔδػೳతͳͷ(ͷϕʔεͱͳΔػೳ) • ࠐΈΫϥεʹର͢ΔϞϯΩʔύονNamespaceʹӨڹΛݶఆ •
ݱࡏఏҊɾ։ൃத • ͍ͪݸਓRubyϢʔβͱͯ͠ఏҊ͠ɺ։ൃ͍ͯ͠Δ • ͕ॆʹΑ͘ͳΕRubyʹೖΔ͔?
࣮ྫ3: OSS։ൃ Rubyʹ͓͚ΔNamespace։ൃ • ೖྗ • Rubyͷݴޠ༷ɺRubyVMͷ෦࣮ • ݴޠॲཧܥͷ࠷దԽख๏ •
Cݴޠ • ग़ྗ • ͕ࣗཉ͍͠ػೳ͕ೖͬͨRuby (ະୡ)
ࣗΛΔ ͳΜͱͳ͓ۚ͘ͷͨΊʹੜ͖Δɿ͢Β͍͠ ͕ ͏ͪΐͬͱ͚ͩਓੜʹϓϥεͷԿ͔͕͍͍͋ͬͯ
None
ࣗΛΔ ԿͷͨΊʹ? • ಈػʮଞͷਓʹͱͬͯʯͳΜͰ͍͍ • ଞਓग़ྗ͚ͩΛݟΔ • ಈػίϯτϩʔϧͰ͖Δ • ೖྗͱग़ྗΛదʹઃఆ͢Δ
• ࣋ଓՄೳͳಈػͱɺ࣋ଓෆՄೳͳಈػ͕͋Δ • ಈػΛదʹ࣋ͯΕɺָ͍͠։ൃΛܧଓతʹΕΔ
Linus Torvalds “Just For Fun” Thank you for listening!