Thursday, December 30, 2021

使用 Luminus 的心得

最近做新專案,需要做一個 POC (proof of concept) 讓使用者可以 read/write database ,於是,我快速地用 Luminus 弄了一個 POC 出來,弄出來之後,就立刻 demo 了。這邊整理一下成果與心得。

常用的 Luminus command 
* 生成專案
 lein new luminus [project-name] +postgres +reagent +shadow-cljs +swagger
* migrate
   lein run migrate


成果部分
 (1) 完成了一個不需要登入,但是可以簡易查資料、寫入資料的 POC。只論功能的話嘛,比 todoMVC 還更少吧?
   (2) 開發時間 16 hours 。
   (3) 50% 時間用於

         - 查 document 研究這個東西怎麼用

         - 撞到一些 bug 然後在 debug 。

         30% 時間用於

     - 理解用戶的問題

         - 判斷與取捨、try and error

    20% 時間才是真正開發的時間

technical stack 的選擇與速度頗有關:

  (a) database 用 postgres 。因為我有與新手合作, Datomic 要整個重教,太麻煩了。

  (b) frontend 選用 reagent 。之前用 re-frame 的經驗,讓我覺得,還是只用 reagent 會快得多。此外,我還用了 lambdaisland fetch 。

ClojureScript 的 REPL-driven development issue
Luminus 如果有搭配使用 ClojureScript 的話,它會啟動兩個 nREPL 。一個是給 Clojure 的,一個是給 ClojureScript 用的。要啟動 ClojureScript 的 repl-driven development 時,要注意要選正確的 nREPL port