Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ソフトウェアエンジニアの入力と出力
Search
Satoshi Tagomori
July 18, 2024
Technology
140
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ソフトウェアエンジニアの入力と出力
Classmethod ODYSSEY Day 7
Satoshi Tagomori
July 18, 2024
More Decks by Satoshi Tagomori
See All by Satoshi Tagomori
Stacking Boxes
tagomoris
0
39
Box on Rails (not yet)
tagomoris
0
370
Mastering Ruby Box
tagomoris
3
220
The Journey of Box Building
tagomoris
4
13k
Unboxing Ruby Box
tagomoris
4
240
Namespace and Its Future
tagomoris
6
910
さくらのクラウドにおけるCloudNativeのいまとこれから
tagomoris
5
1.6k
State of Namespace
tagomoris
5
12k
クラウドサービス事業者におけるOSS
tagomoris
4
2.4k
Other Decks in Technology
See All in Technology
狙われているAPIの脆弱性!今こそ手をつけるべき根本的な対策とは?
nagix
0
110
Kiro 入門 (1 つのエージェントを、どの画面からでも) | 目指せ Kiro マスター 01
inariku
PRO
6
1.5k
TSKaigi Sendai 2026 - tsgo時代のTypeScript Playgroundはどう動くか
teamlab
PRO
0
110
Content Mapper APIの応用例~CSS Modules、言語ファイル~
uhyo
2
630
cdkd (CDK Direct)
gotok365
4
280
re:Invent2026 事前勉強会 歴史と愉しみ方10分LT編
toshi_atsumi
0
180
The future of architectural work
ufried
0
190
FinOpsを導入してマルチプロダクトのコスト最適化を実現する
kworkdev
PRO
0
140
AWS構成から考えるWebセキュリティ ― WordPressの構築経験から考える公開範囲と更新運用【JAWS FESTA 2026 in AKITA】
cscengineer
PRO
2
390
Bots in Kiro Crew (One point of contact for ongoing work) | Kiro: Zero to Hero 12
inariku
PRO
1
110
田んぼの見回りをIoTで減らしたい!水位監視から電池駆動カメラまでの試行錯誤
itosoft
1
110
Kiro Crew 入門 (手を離しても進む仕事) | 目指せ Kiro マスター 11
inariku
PRO
4
660
Featured
See All Featured
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
Writing Fast Ruby
sferik
630
63k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Music & Morning Musume
bryan
48
7.5k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
470
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
610
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
320
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
Agile that works and the tools we love
rasmusluckow
331
22k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
460
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!