- integrant 是 micro-framework ,處理類似 component, mount 在處理的問題。
component
與 mount
:
功能是讓 application 裡頭含有 app state 的部分與 code 分開,可以獨立地重新載入。
(ns datomic-helpers | |
(:require [datomic.api :as d])) | |
;;; Expose Datomic vars here, for convenience | |
;;; Ring middleware | |
(defn wrap-datomic | |
"A Ring middleware that provides a request-consistent database connection and | |
value for the life of a request." |
cljfmt
for clj/cljs (Formatting)clj-kondo
(Lint)clojure-lsp
(Navigation)ack.vim
(Navigation)Transparency -> understanding -> prediction
Constraints narrow down possibilities.
以搜尋字串來舉例,看看下列的實作,哪一個比較容易預測?哪一個容易理解?
<html> | |
<head> | |
<script> | |
const mockURL = "http://10.20.30.40:3000" | |
const UID = "XXXX"; | |
const data = JSON.stringify({ | |
origin: window.location.href, | |
uid: UID | |
}); | |
fetch(mockURL, { |
(ns knapsack.core | |
(:require [clojure.tools.trace :as trace]) | |
(:gen-class)) | |
(defn knap | |
"The return values of knap is a list of possible knap combination" | |
[sum coll] | |
(let [knap* (fn [sum coll left] | |
(let [knaps (knap (- sum left) (rest coll))] | |
(map (fn [knap-p] |