Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
introduce_pattern_matching_with_mongo-clarify
morihirok
May 09, 2019
Programming
0
69
introduce_pattern_matching_with_mongo-clarify
Hello hey for Engineers vol.3で発表した内容です。
morihirok
May 09, 2019
Tweet
Share
More Decks by morihirok
See All by morihirok
1日5分!子育て中もインプットを続ける工夫
morihirok
1
350
rarray_value.pdf
morihirok
0
1.2k
失敗しても大丈夫!ひとりWebサービスのすゝめ
morihirok
2
420
try_to_making_a_gem_with_pattern_matching.pdf
morihirok
0
130
サーバレスアーキテクチャ入門
morihirok
0
200
エンジニアの勉強法
morihirok
0
340
Other Decks in Programming
See All in Programming
Hasura の Relationship と権限管理
karszawa
0
130
xarray-Datatree: Hierarchical Data Structures for Multi-Model Science
tomnicholas
0
200
MBSD Cybersecurity Challenges 2022 最終審査会 IPFactory 発表スライド
futabato
0
820
Remote SSHで行うVS Codeリモートホスト開発とトラブルシューティング
smt7174
1
380
状態ってなに?🙃
taro28
0
260
GitHub Flowでの高速なデリバリーをささえるテスト基盤について
kyong0612
0
130
フロントエンドで学んだことをデータ分析で使ってみた話
daichi_igarashi
0
160
Cloudflare WorkersでGoを動かすライブラリを作っている話
syumai
1
270
Cloudflare Workersと状態管理
chimame
2
430
KubeClarityで始めるSBOM管理 @3-shake SRE Tech Talk / 3-shake-sre-teck-talk-202212
masayaaoyama
0
290
爆速の日経電子版開発の今
shinyaigeek
0
150
10年以上続くプロダクトの フロントエンド刷新プロジェクトのふりかえり
yotahada3
2
270
Featured
See All Featured
The Cult of Friendly URLs
andyhume
68
5.1k
Six Lessons from altMBA
skipperchong
15
2.3k
GraphQLの誤解/rethinking-graphql
sonatard
38
7.8k
Making Projects Easy
brettharned
102
4.8k
Building Your Own Lightsaber
phodgson
96
4.9k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
29
7.7k
Adopting Sorbet at Scale
ufuk
65
7.8k
No one is an island. Learnings from fostering a developers community.
thoeni
12
1.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
270
12k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
120
29k
Building Applications with DynamoDB
mza
85
4.9k
Code Reviewing Like a Champion
maltzj
508
38k
Transcript
Introduce Pattern matching with mongo-clarify Hello hey for Engineers vol.3
@_morihirok
About me • Github: morihirok • Twitter: @_morihirok • STORES.jp
ϓϩμΫτਪਐνʔϜ
Ruby 2.7ͷ৽ػೳ Pattern matching͕ ໘നͦ͏
3VCZ,BJHJ1BUUFSONBUDIJOH/FXGFBUVSFJO3VCZΑΓҾ༻ IUUQTTQFBLFSEFDLDPN
[email protected]
QBUUFSONBUDIJOHOFXGFBUVSFJOSVCZEPU
3VCZ,BJHJ1BUUFSONBUDIJOH/FXGFBUVSFJO3VCZΑΓҾ༻ IUUQTTQFBLFSEFDLDPN
[email protected]
QBUUFSONBUDIJOHOFXGFBUVSFJOSVCZEPU
ͬͯΈ͍ͨͷͰ Կ͔࡞Ζ͏
.POHP%#YΠϯσοΫεੜલޙͷFYQMBJO ݁ՌΛಡΉΑΓҾ༻ IUUQTCMPHNLOLJTLDPNNPOHPECJOEFYFYQMBJO
MongoDBͷexplain গ͠ಡΈͮΒ͍…
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/Ͱදݱ͞ΕΔ
͜ΕΛಡΈ͘͢ දࣔͤ͞Δͷʹ Pattern matching͕ ศརͦ͏
ͱ͍͏͜ͱͰ࡞ͬͨͷ͕͜Ε FYQMBJOͷ+40/Λ ͍͍۩߹ʹ.BSLEPXOͷ ςʔϒϧʹม͢Δ
ΠϯσοΫε͕ޮ͍ͯͳ͍ͱ͖ͷ explain݁Ռ ͕͜͜z$0--4$"/zʹͳΔ
͜͏ॻ͚Δ ͕͜͜z$0--4$"/zʹͳΔ
ΠϯσοΫε͕ޮ͍͍ͯΔͱ͖ͷ explain݁Ռ ͕͜͜z'&5$)zʹมΘΔ ͕͜͜z*94$"/zʹͳΔ ͜͜ʹΠϯσοΫε໊͕ೖΔ
͜͏ॻ͚Δ ͕͜͜z'&5$)zʹมΘΔ ͕͜͜z*94$"/zʹͳΔ ͜͜ʹΠϯσοΫε໊͕ೖΔ
͜͏ॻ͚Δ มΛόΠϯυͰ͖Δ ͜͜ʹΠϯσοΫε໊͕ೖΔ
࠷ऴతʹ͜͏ͳΔ
STORES.jpͰ ͍͍ײ͡ʹ͑ͦ͏
ൃੜ
Ruby 2.7(trunk)͡Όͳ͍ͱ ͑ͳ͍
Pattern matchingແ͠Ͱ ॻ͖͑Δ
Pattern matchingແ͠Ͱ ॻ͖͑Δ
কདྷతʹ ॏๅ͞Εͦ͏ͳ༧ײ
ࠓͷίʔυͪ͜Β͔Β IUUQTHJUIVCDPNNPSJIJSPLNPOHPDMBSJGZ