iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
Modern Web

使用 Clojure 當個 Full-stack 開發者系列 第 2

[Day 2] 成為米其林大廚

  • 分享至 

  • xImage
  •  

今天來提一個我覺得非常有幫助的心法,這個是我看電影而有感觸的一段

而這段話在很多實際生活、工作都有實際的感受,可惜就是程式語言還沒有,直到使用了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

PTT 電影版的節錄

雖然講的是追逐米其林的餐廳,但我想裡面很大一部分是有包含所謂的日本匠人精神

追求一致,是經驗的一致,而不是味道的一致
其中經驗的一致,在clojure中非常有感,尤其下列第一點
(也許是我學的不夠多,希望大家也可以分享有一致開發性的語言)

分享兩點

  1. 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
    日後的其他實際案例看能不能更有感覺

  2. Library
    使用別人的lib很快上手,你會發現呼叫別人的Function都很類似(扣除呼叫java libs)
    可能也是語言特性的關係吧
    immutable、lisp的簡易特性

P.S. 這段沒有要貶低漢堡王或是捧米其林的餐廳的意思,畢竟兩者本質不同、追求不同


上一篇
[Day 1] 反璞歸真始於足下
下一篇
[Day 3] 跨越開發界限
系列文
使用 Clojure 當個 Full-stack 開發者30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言