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
Mongo DBとS式検索
Search
Niyarin
August 29, 2020
Programming
0
260
Mongo DBとS式検索
Niyarin
August 29, 2020
Tweet
Share
More Decks by Niyarin
See All by Niyarin
Scheme用nREPLの開発(エラー出力の改善)
niyarin
0
130
bel lispの紹介
niyarin
0
640
nanopass-compiler-frameworkを使ってみました
niyarin
0
380
Gorgos-parser-combinator-written-in-scheme
niyarin
0
340
outputting-beautiful-s-expression
niyarin
0
340
Serialisp
niyarin
1
630
goodbye-python-repl
niyarin
0
310
SchemeのEphemeronとWeak Pairの説明
niyarin
0
890
red-paren-scheme-rev-macro.pdf
niyarin
0
370
Other Decks in Programming
See All in Programming
Realtime API 入門
riofujimon
0
150
Micro Frontends Unmasked Opportunities, Challenges, Alternatives
manfredsteyer
PRO
0
120
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
130
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
1
110
見せてあげますよ、「本物のLaravel批判」ってやつを。
77web
7
7.8k
Contemporary Test Cases
maaretp
0
140
Hotwire or React? ~アフタートーク・本編に含めなかった話~ / Hotwire or React? after talk
harunatsujita
1
120
Figma Dev Modeで変わる!Flutterの開発体験
watanave
0
170
レガシーシステムにどう立ち向かうか 複雑さと理想と現実/vs-legacy
suzukihoge
15
2.3k
Functional Event Sourcing using Sekiban
tomohisa
0
110
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
670
よくできたテンプレート言語として TypeScript + JSX を利用する試み / Using TypeScript + JSX outside of Web Frontend #TSKaigiKansai
izumin5210
7
1.8k
Featured
See All Featured
Music & Morning Musume
bryan
46
6.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Building Applications with DynamoDB
mza
90
6.1k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Practical Orchestrator
shlominoach
186
10k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
A designer walks into a library…
pauljervisheath
204
24k
Bash Introduction
62gerente
608
210k
Visualization
eitanlees
145
15k
Transcript
S式ソースコード検索と Mongo DB (やってみたけどそんなに良くなかった) Niyarin Clojure
モチベーション 例) 「Clojureのmapの引数が1つのコード例がみたい」 → 雑に”map”でコード片を検索すると目当てでないものも引っかかる ・正規表現で検索 ・構造で検索 → S式言語ならできる
Gists的なものを作る ・Gists的なソースコード片を投げるようなWebアプリ 大学でDB使ったWebアプリ書けって課題がでたので作った 真面目には作っていない ・Clojureの式を登録して、ちょっと便利に検索できるようにする ・Clojureで実装 Selmer(テンプレート) Duct(フレームワーク) 余り活用していない Ataraxy(ルーティング)
構造とDB リストとかを突っ込んでそれの構造を検索したい ・Mongo DB(JSONが直に使えるNOSQL) Clojureとかにもドライバが提供されている Monger RDBでもできなくはないけど
MongoDBの例 リストの最初の要素がargnameのものをとってくる リストの長さがarglenのものをとってくる JavaScriptをクエリに使うこともできる ※”,”がないのはClojureから呼び出しているから {“$elemMatch” {“ls.0” argname}} {“$elemMatch” {”ls”
{“$size” arglen)}}
あまり楽にできなかった部分 ・部分的な木構造の検索ができない 決められた深さのオブジェクトに対してしか検索できない ・リストを全部取り出して、内部リストを”object”等の文字列に変更 (+ (* 1 2) (* 3
4)) [(+ “object” “object”) (* 1 2) (* 3 4)]
生前の姿 (クラウドは落とされていた) (ローカルで立ち上げてもよかったけど)
もう少しがんばってもよかった点 検索がもっといろいろできたのではないか ・S式パターンマッチでの検索 ・なにか フロントエンド
今回どういうDBがあればよかったのか ・EDN登録できるドキュメント型NO SQL ・クエリ言語をClojure風なやつにする クエリ言語そのものもDBに入れられる クエリ言語をクエリ言語で操作できる ・パターンマッチ ・部分的な木構造を検索できる
おわり まとめ ・S式系言語用の検索に特化したGists的なのを考えた ・Clojureで雑に実装した その他 ・非S式言語でもASTに落とせばなんかできるかも ・EDN DBはいつかつくりたい