今天來提一個我覺得非常有幫助的心法,這個是我看電影而有感觸的一段
而這段話在很多實際生活、工作都有實際的感受,可惜就是程式語言還沒有,直到使用了Clojure
這部電影就是「天菜大廚」
原版:
Youtube
What you should have said is that the problem with this place is it's too consistent. And consistency is death.
-Consistency is what every great chef strives for.
No, a chef should strive to be consistent in experience, but not consistent in taste. It's like sex. It's like, you're always headed to the same place, but you got to find new and dangerous way of getting there.
from: https://sccl.bibliocommons.com/v2/quotation/731149588
雖然講的是追逐米其林的餐廳,但我想裡面很大一部分是有包含所謂的日本匠人精神
追求一致,是經驗的一致,而不是味道的一致
其中經驗的一致,在clojure中非常有感,尤其下列第一點
(也許是我學的不夠多,希望大家也可以分享有一致開發性的語言)
分享兩點
HTML template engine
很多template engine跟原本程式語言都有段差距,因為有很多跳脫或特殊規則
在clojure最常用的就是 Hiccup
以下是官網的範例,跑個for,產出li tag:
user=> (str (h/html [:ul
(for [x (range 1 4)]
[:li x])]))
"<ul><li>1</li><li>2</li><li>3</li></ul>"
有疑問的可能會說「一般的template engine其實也是這樣寫,只不過前面在加個 @, {{}}, {}等等的跳脫判斷」
但以上這段程式其實跟實際在寫clojure也是一樣的,不特別講其實分不出你是在寫其他的template
日後的其他實際案例看能不能更有感覺
Library
使用別人的lib很快上手,你會發現呼叫別人的Function都很類似(扣除呼叫java libs)
可能也是語言特性的關係吧
immutable、lisp的簡易特性
P.S. 這段沒有要貶低漢堡王或是捧米其林的餐廳的意思,畢竟兩者本質不同、追求不同