Slide 1

Slide 1 text

Introduce Pattern matching with mongo-clarify Hello hey for Engineers vol.3 @_morihirok

Slide 2

Slide 2 text

About me • Github: morihirok • Twitter: @_morihirok • STORES.jp
 ϓϩμΫτਪਐνʔϜ

Slide 3

Slide 3 text

Ruby 2.7ͷ৽ػೳ Pattern matching͕ ໘നͦ͏

Slide 4

Slide 4 text

3VCZ,BJHJ1BUUFSONBUDIJOH/FXGFBUVSFJO3VCZΑΓҾ༻ IUUQTTQFBLFSEFDLDPNL@UTKQBUUFSONBUDIJOHOFXGFBUVSFJOSVCZEPU

Slide 5

Slide 5 text

3VCZ,BJHJ1BUUFSONBUDIJOH/FXGFBUVSFJO3VCZΑΓҾ༻ IUUQTTQFBLFSEFDLDPNL@UTKQBUUFSONBUDIJOHOFXGFBUVSFJOSVCZEPU

Slide 6

Slide 6 text

࢖ͬͯΈ͍ͨͷͰ Կ͔࡞Ζ͏

Slide 7

Slide 7 text

.POHP%#YΠϯσοΫεੜ੒લޙͷFYQMBJO ݁ՌΛಡΉΑΓҾ༻ IUUQTCMPHNLOLJTLDPNNPOHPECJOEFYFYQMBJO

Slide 8

Slide 8 text

MongoDBͷexplain͸ গ͠ಡΈͮΒ͍…

Slide 9

Slide 9 text

MongoDBͷexplain݁Ռͷ αϯϓϧ > db.items.find({price: 119}).explain("executionStats") { "queryPlanner" : { "plannerVersion" : 1, "namespace" : "sample_db.items", "indexFilterSet" : false, "parsedQuery" : { "price" : { "$eq" : 119 } }, "winningPlan" : { "stage" : "COLLSCAN", "filter" : { "price" : { "$eq" : 119 } શͯ+40/Ͱදݱ͞ΕΔ

Slide 10

Slide 10 text

͜ΕΛಡΈ΍͘͢ දࣔͤ͞Δͷʹ Pattern matching͕ ศརͦ͏

Slide 11

Slide 11 text

ͱ͍͏͜ͱͰ࡞ͬͨͷ͕͜Ε FYQMBJOͷ+40/Λ ͍͍۩߹ʹ.BSLEPXOͷ ςʔϒϧʹม׵͢Δ

Slide 12

Slide 12 text

ΠϯσοΫε͕ޮ͍ͯͳ͍ͱ͖ͷ explain݁Ռ ͕͜͜z$0--4$"/zʹͳΔ

Slide 13

Slide 13 text

͜͏ॻ͚Δ ͕͜͜z$0--4$"/zʹͳΔ

Slide 14

Slide 14 text

ΠϯσοΫε͕ޮ͍͍ͯΔͱ͖ͷ explain݁Ռ ͕͜͜z'&5$)zʹมΘΔ ͕͜͜z*94$"/zʹͳΔ ͜͜ʹΠϯσοΫε໊͕ೖΔ

Slide 15

Slide 15 text

͜͏ॻ͚Δ ͕͜͜z'&5$)zʹมΘΔ ͕͜͜z*94$"/zʹͳΔ ͜͜ʹΠϯσοΫε໊͕ೖΔ

Slide 16

Slide 16 text

͜͏ॻ͚Δ ม਺ΛόΠϯυͰ͖Δ ͜͜ʹΠϯσοΫε໊͕ೖΔ

Slide 17

Slide 17 text

࠷ऴతʹ͸͜͏ͳΔ

Slide 18

Slide 18 text

STORES.jpͰ΋ ͍͍ײ͡ʹ࢖͑ͦ͏

Slide 19

Slide 19 text

໰୊ൃੜ

Slide 20

Slide 20 text

Ruby 2.7(trunk)͡Όͳ͍ͱ ࢖͑ͳ͍

Slide 21

Slide 21 text

Pattern matchingແ͠Ͱ ॻ͖׵͑Δ

Slide 22

Slide 22 text

Pattern matchingແ͠Ͱ ॻ͖׵͑Δ

Slide 23

Slide 23 text

কདྷతʹ ॏๅ͞Εͦ͏ͳ༧ײ

Slide 24

Slide 24 text

ࠓ೔ͷίʔυ͸ͪ͜Β͔Β IUUQTHJUIVCDPNNPSJIJSPLNPOHPDMBSJGZ