Slide 1

Slide 1 text

ιϑτ΢ΣΞΤϯδχΞͷ ೖྗͱग़ྗ Satoshi Tagomori 2024/07/18 Classmethod Odyssey Day 7

Slide 2

Slide 2 text

@tagomoris Satoshi Tagomori (ా᝷ ૱) ιϑτ΢ΣΞΤϯδχΞ OSS։ൃऀ Maintainer/Founder: OSS: Fluentd, MessagePack, 
 Norikra, Woothee, …
 Event: ISUCON Service: Pathtraq

Slide 3

Slide 3 text

ུྺ 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։ൃ

Slide 4

Slide 4 text

ུྺ 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։ൃ

Slide 5

Slide 5 text

ೖྗͱग़ྗ ιϑτ΢ΣΞΤϯδχΞʹͱͬͯͷೖྗͱग़ྗ

Slide 6

Slide 6 text

ೖྗͱग़ྗ Inputs and Outputs ओମ ೖྗ ग़ྗ ϓϩάϥϜ σʔλ σʔλ ϓϩάϥϚʔ ػೳཁ݅ ಈ࡞ཁ݅ ࢓༷ ϓϩάϥϜίʔυ ιϑτ΢ΣΞΤϯδχΞ ? ? ਓؒ ঢ়گ ཉٻ ஌ࣝɾܦݧ ੒Ռ ۚમ ஌ࣝɾܦݧ

Slide 7

Slide 7 text

ೖྗͱग़ྗ Inputs and Outputs ओମ ೖྗ ग़ྗ ϓϩάϥϜ σʔλ σʔλ ϓϩάϥϚʔ ػೳཁ݅ ಈ࡞ཁ݅ ࢓༷ ϓϩάϥϜίʔυ ιϑτ΢ΣΞΤϯδχΞ ? ? ਓؒ ঢ়گ ཉٻ ஌ࣝɾܦݧ ੒Ռ ۚમ ஌ࣝɾܦݧ

Slide 8

Slide 8 text

ೖྗͱग़ྗ ͳͥͦΜͳ΋ͷʹ஫໨͢Δͷ? • γεςϜͷ;Δ·͍Λ௚઀ݟΔ͜ͱ͸ϓϩάϥϜͰ΋೉͍͠ • ೖྗσʔλͱग़ྗσʔλΛݟͯσόοά • ಺෦ʹखΛೖΕͯprintσόοά΍probeɺtracingͳͲͳͲ • Ͱ͸ώτ(ιϑτ΢ΣΞΤϯδχΞ)ͷ;Δ·͍͸Ͳ͏΍ͬͯݟΔ? • ಺෦ʹखΛೖΕΔ • ೖྗͱग़ྗΛݟΔ

Slide 9

Slide 9 text

ιϑτ΢ΣΞΤϯδχΞ Engineer working on Software • ఆٛ͸ਓʹΑ͍ͬͯΖ͍Ζ • tagomorisͷࢹ఺ɿ
 ʮιϑτ΢ΣΞγεςϜΛத৺ʹΤϯδχΞϦϯάΛߦ͏ਓʯ • ΤϯδχΞϦϯάɿ
 ੡඼։ൃ(ϓϩάϥϛϯά)ɺ࣮ੈք΁ͷద༻ɺܧଓతͳػೳͱޮ཰ͷվળ
 ར༻ͷଅਐɺվળ౳ͷͨΊͷ৘ใऩूͱ෼ੳɺจॻ࡞੒ͱߋ৽
 ։ൃɾվળܭըɺνʔϜ࡞Γɺ޿ใɺ࠾༻ɺ……

Slide 10

Slide 10 text

ಈػ ͳͥΤϯδχΞϦϯάΛߦ͏ͷ͔? ͳͥιϑτ΢ΣΞΤϯδχΞϦϯάΛબΜͩͷ͔?

Slide 11

Slide 11 text

ಈػ Motivation • ಈػ͸ೖྗͷ͜ͱ΋ɺग़ྗͷ͜ͱ΋͋Δ • ग़ྗ͕ಈػͷྫ • ۚમɺརศੑɺ໊༪ɺ஌ࣝ(ܦݧ) • ೖྗ͕ಈػͷྫ • ஌ࣝ(޷ح৺)

Slide 12

Slide 12 text

ಈػ Motivation • ಈػ͸ೖྗͷ͜ͱ΋ɺग़ྗͷ͜ͱ΋͋Δ • ग़ྗ͕ಈػͷྫ • ۚમɺརศੑɺ໊༪ɺ஌ࣝ(ܦݧ) • ೖྗ͕ಈػͷྫ • ஌ࣝ(޷ح৺) ੒௕ ੒௕

Slide 13

Slide 13 text

ಈػ Motivation • ಈػ͸ೖྗͷ͜ͱ΋ɺग़ྗͷ͜ͱ΋͋Δ • ग़ྗ͕ಈػͷྫ • ۚમɺརศੑɺ໊༪ɺ஌ࣝ(ܦݧ) • ೖྗ͕ಈػͷྫ • ஌ࣝ(޷ح৺) ੒௕ ੒௕ ָ͠Έ ָ͠Έ

Slide 14

Slide 14 text

ࣗ෼Λ஌Δ ͳΜͱͳ͓ۚ͘ͷͨΊʹੜ͖Δɿ͢͹Β͍͠ ͕ ΋͏ͪΐͬͱ͚ͩਓੜʹϓϥεͷԿ͔͕͋ͬͯ΋͍͍

Slide 15

Slide 15 text

tagomoris: 2021 ʙ 2024 ओʹ΍ͬͨ͜ͱ • (ٕज़ސ໰ 2021ʙ ਺ࣾ) • ॻ੶ࣥච 2021ʙ2022 • αʔϏε։ൃ 2022ʙ2023 • OSS։ൃ 2023ʙ2024

Slide 16

Slide 16 text

࣮ྫ1 ٕज़ॻग़൛

Slide 17

Slide 17 text

౷߹ϩάج൫ͷͨΊͷσʔλऩूπʔϧ • ٕज़ධ࿦ࣾ, 2022/10/08ൃച
 A5൑ʗ544ϖʔδ
 https://gihyo.jp/book/2022/978-4-297-13109-8 Fluentd࣮ફೖ໳

Slide 18

Slide 18 text

࣮ྫ1: ٕज़ॻग़൛ Fluentd࣮ફೖ໳ͷࣥචɾग़൛ • ݩ͸2017೥͘Β͍͔Βͷاըͱݪߘ • ϑϧλΠϜͰಇ͍͍ͯͨͱ͖ʹ͸ͱͯ΋׬੒ͤ͞ΒΕͳ͔ͬͨ • ʮ͜ͷػձʹઈରʹग़ͯ͠ऴΘΓʹ͍ͨ͠ʯ • ୯ஶͱͯ͠ͷࣥචܦݧ • ࡶࢽهࣄ͸਺ଟ͘ܦݧ͋Γ • ڞஶͰͷ୯ߦຊࣥචͰϙγϟͬͨܦݧ͕͋ͬͯͪΐͬͱτϥ΢Ϛ

Slide 19

Slide 19 text

࣮ྫ1: ٕज़ॻग़൛ Fluentd࣮ફೖ໳ͷࣥචɾग़൛ • ೖྗ • Fluentdʹؔ͢Δݩʑͷ஌ࣝͱܦݧɺ࠷৽ͷFluentdʹؔ͢Δߋ৽৘ใ • ग़ྗ • ࣮੷ͱ໊༪(୯ஶ) • ܦݧɿٕज़ॻͷॻ͖͔ͨɺٕज़৘ใͷจॻԽͷํ๏

Slide 20

Slide 20 text

࣮ྫ2 ݸਓαʔϏεͷ։ൃɾެ։

Slide 21

Slide 21 text

https://pathtraq.tagomor.is/

Slide 22

Slide 22 text

࣮ྫ2: ݸਓαʔϏεͷ։ൃɾެ։ Pathtraq • ࣗ෼ͷҐஔ৘ใΛ24x365ͰอଘɾݕࡧͰ͖ΔiPhoneΞϓϦ • ࣗ෼͕͍ͭͲ͜ʹ͍͔ͨɺͲ͜ʹ͍͍͔ͭͨΛௐ΂͍ͨ • νΣοΫΠϯػೳ • ͢΂ͯΛࣗ෼Ͱ࡞Δ • αʔόαΠυ͔ΒΫϥΠΞϯταΠυ·Ͱɺݱߦٕज़ͻͱηοτͷϦαʔν • ։ൃɺUI/UXσβΠϯɺར༻ن໿ɺAppStoreެ։ͳͲͷύΠϓϥΠϯશମ

Slide 23

Slide 23 text

࣮ྫ2: ݸਓαʔϏεͷ։ൃɾެ։ Pathtraq • ೖྗ • ReactɺSwiftUIͳͲͷ֤ϥΠϒϥϦɾϑϨʔϜϫʔΫ • FigmaʹΑΔUI/UXσβΠϯϓϩηε • ֤ࠃɾ஍ํ޲͚ར༻ن໿ɾϓϥΠόγʔϙϦγʔ࡞੒ϊ΢ϋ΢ • ग़ྗ • ࣗ෼ͷ࢖͍͍ͨαʔϏε

Slide 24

Slide 24 text

࣮ྫ3 OSS(Rubyͷύον)։ൃ

Slide 25

Slide 25 text

https://bugs.ruby-lang.org/issues/19744 https://rubykaigi.org/2024/presentations/tagomoris.html

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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) 😀

Slide 28

Slide 28 text

࣮ྫ3: OSS։ൃ Rubyʹ͓͚ΔNamespace։ൃ • Rubyʹ͓͚Δίʔυִ཭ػೳͷఏҊ • ଞͷݴޠͰ͍͏ύοέʔδػೳతͳ΋ͷ(ͷϕʔεͱͳΔػೳ) • ૊ࠐΈΫϥεʹର͢ΔϞϯΩʔύον౳΋Namespace಺ʹӨڹΛݶఆ • ݱࡏఏҊɾ։ൃத • ͍ͪݸਓRubyϢʔβͱͯ͠ఏҊ͠ɺ։ൃ͍ͯ͠Δ • ׬੒౓͕ॆ෼ʹΑ͘ͳΕ͹RubyʹೖΔ͔΋?

Slide 29

Slide 29 text

࣮ྫ3: OSS։ൃ Rubyʹ͓͚ΔNamespace։ൃ • ೖྗ • Rubyͷݴޠ࢓༷ɺRubyVMͷ಺෦࣮૷ • ݴޠॲཧܥͷ࠷దԽख๏ • Cݴޠ • ग़ྗ • ࣗ෼͕ཉ͍͠ػೳ͕ೖͬͨRuby (ະୡ੒)

Slide 30

Slide 30 text

ࣗ෼Λ஌Δ ͳΜͱͳ͓ۚ͘ͷͨΊʹੜ͖Δɿ͢͹Β͍͠ ͕ ΋͏ͪΐͬͱ͚ͩਓੜʹϓϥεͷԿ͔͕͋ͬͯ΋͍͍

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

ࣗ෼Λ஌Δ ԿͷͨΊʹ? • ಈػ͸ʮଞͷਓʹͱͬͯ͸ʯͳΜͰ΋͍͍ • ଞਓ͸ग़ྗ͚ͩΛݟΔ • ಈػ͸ίϯτϩʔϧͰ͖Δ • ೖྗͱग़ྗΛద੾ʹઃఆ͢Δ • ࣋ଓՄೳͳಈػͱɺ࣋ଓෆՄೳͳಈػ͕͋Δ • ಈػΛద੾ʹ࣋ͯΕ͹ɺָ͍͠։ൃΛܧଓతʹ΍ΕΔ

Slide 33

Slide 33 text

Linus Torvalds “Just For Fun” Thank you for listening!