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
ソフトウェアエンジニアの入力と出力
Search
Satoshi Tagomori
July 18, 2024
Technology
1
36
ソフトウェアエンジニアの入力と出力
Classmethod ODYSSEY Day 7
Satoshi Tagomori
July 18, 2024
Tweet
Share
More Decks by Satoshi Tagomori
See All by Satoshi Tagomori
Namespace, Now and Then
tagomoris
0
240
Namespace on read
tagomoris
2
460
RubyKaigi Effect 2023, and ...
tagomoris
1
800
Namespace, What and Why
tagomoris
8
16k
Help Collisions, Isolate the Worlds
tagomoris
0
230
Avoid Collisions, Desire Co-existence
tagomoris
0
2.6k
Other Decks in Technology
See All in Technology
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
200
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
380
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
670
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
370
The Role of Developer Relations in AI Product Success.
giftojabu1
0
120
Application Development WG Intro at AppDeveloperCon
salaboy
0
180
フルカイテン株式会社 採用資料
fullkaiten
0
40k
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
570
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
550
スクラムチームを立ち上げる〜チーム開発で得られたもの・得られなかったもの〜
ohnoeight
2
350
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
40
2.4k
Designing the Hi-DPI Web
ddemaree
280
34k
Done Done
chrislema
181
16k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Become a Pro
speakerdeck
PRO
25
5k
Code Review Best Practice
trishagee
64
17k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Practical Orchestrator
shlominoach
186
10k
Embracing the Ebb and Flow
colly
84
4.5k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
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!