Escape from the cave, dive into the bed!
Metanote
対象読者
- Common Lispでweb-frameworkを探している/使っている人。
Introduction.
cavemanを使っていたのですがsnoozeに乗り換えたのでその理由を記しておきます。
What is caveman?
まずはcavemanとは何かというお話から。
cavemanはningleの上に組み立てられた“microでない”web-frameworkです。 “microでない”、は、この場合
を含むことを意味します。
これは言葉を変えるなら、上記みっつの機能に不満があるなら、cavemanを使うよりningle上に自分の好むデータベース、テンプレートエンジン、コンフィグレーションを組み込んでいくほうが良いということです。
What is ningle?
次にningleとは何かというお話。
ningleはclackの上に組み立てられた“micro” web-frameworkです。 “micro”、は、この場合。
- mywayによるルーティングサポート。
くらいしかclackに追加していないことを意味します。
これは言葉を変えるなら、ルーティングに不満があるなら、ningleを使うよりclack上に自分の好むルーティングシステムを組み込んでいくほうが良いということです。
Altenatives.
cl-yesql
データベースサポートはcl-yesqlを使うことにしました。
cl-yesqlはclojureのyesqlから本歌取りしたものです。
なぜcl-yesqlか、についてはこの本家のREADMEに理由が記されてあります。 これがまさに膝を打つ内容でした。
markup-functions
htmlテンプレートエンジンはmarkup-functionsを使うことにしました。
djulaの哲学はある程度共感できましたが、今の自分には必要がないと判断しました。
DSLの学習コストが高いという印象が強うございます。
有力な代替案はcl-whoでしたが、様々な不満があったので自作しました。 不満点についてはREADMEにあるのでそちらをご覧ください。
snooze
cavemanの主要機能みっつのうち、ふたつを変えるとなると、cavemanを使う理由は乏しくなります。 ningle上に再構築しようかとリサーチをしたところsnoozeと出会いました。
snoozeは大変筋が良いように見えましたので思いきって乗り換えてみました。
snoozeのどこを「筋が良い」と判断したかについては、主にREADMEのここにございます。
Conclusion.
今の所、大変満足しております。
今後の課題はclack/lackのインターフェイスを使い続けるのか思い切って直接hunchentootに依存してしまうかです。