程式人蔘

github static page 版的 blog: https://humorless.github.io/

Saturday, November 1, 2025

Level up by diving down: eight critical Clojure libraries

›
之前在「 我的 Clojure 學習之路 」一文,我分析了自己過去學習的五個階段: 1. Before knowing Clojure 2. Clojure Basic 3. Tried a lot of libraries  4. Selected Libraries 5. L...
Wednesday, July 16, 2025

Luarocks 與 Neovim

›
最近我遇到了一個挑戰: > 如果使用 luarocks 安裝了 lua-cbor 的話,neovim 裡寫的 lua script 可以使用 lua-cbor 嗎? 答案是:預設不行,要做一些調整。 由於我的 luarocks 也是用 homebrew 去安裝的,而預設的 ...
Sunday, December 22, 2024

neil --- 用來輔助編輯 deps.edn 檔的 CLI 工具

›
  neil 主要就四種常用的用法: 尋找函式庫   neil dep search clojure 新增函式庫   neil dep add org.clojure/clojure 新增 Clojure 專案  neil new app  dev.replware/mypro...
Tuesday, December 10, 2024

使用 compojure 時,需要特別注意的一個 helper - wrap-route

›
compojure 在決定接下來要使用哪一個 route 是單純地一個一個逐步比對,這個單純的作法多數時候沒有問題,但是一旦當某個 route 的 middleware 會有副作用的時候,這個作法就會出問題。 所幸,compojure 後來提供了一個 wrap-route 恰好可...

HoneySQL 的 format

›
HoneySQL format 的 default 輸出是給 JDBC 處理的,所以當想讓它輸出給 SQL CLI 時,就要使用參數。 如果是使用 1.0 版本, format 的時候需要直接輸出可以被 SQL CLI 接受的字串形式,要使用 (format sql-hmap ...
Tuesday, December 3, 2024

如何使用 assert ,它跟 exception 不一樣喔!

›
參考連結 有兩個很常見的 Exception handling 不良風格 1. 濫用 :pre 和 :post 來做檢查,而不是使用 spec 或 malli 2. catch Throwable ``` (try (assert false) (catch Throwable ...

Protocol 與 SPI (service provider interface)

›
最近才搞懂的東西:「在什麼樣的 context 之下,應該考慮使用 Protocol ?」 為什麼在用了 Clojure 這麼多年之後才搞懂,應該是因為我過去寫程式的時間裡,幾乎沒有在寫 Java 。 我在 Clojure 官方論壇找到了 答案 答案是:Protocol 最適合用...
›
Home
View web version
Powered by Blogger.