最近做新專案,需要做一個 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