Blowfish 已經衰退
前一篇是Blowfish 正在衰退,這篇改成已經衰退

LCP 15 秒 TBT 9 秒已經夠慘了,還有 Lighthouse 看不出來的是瀏覽網頁的功耗,在 M1 Mac 上單 GPU process 耗電大於 10 瓦,你要知道看 Youtube 也不會超過 2 瓦...
一直刻意告訴自己別管了沒救就別救了,轉念一想如果我去救他,那不是隨便都可以說我優化網站效能 LCP 時間降低 10 多倍嗎?然而直到著手修改才發現,很久以前講過的每個小問題已經匯流交織變成大問題:
- 關注點分離,同樣的模板重複出現,想避免重複工作帶來的失誤,得先重構
- 重構就代表我的 PR 不會只是一個 perf,又要拆成多個 PR
- 多個 PR 就代表這是一個長時間的發表、等待審核的來回
- Owner 不喜歡重構
- 由於效能問題包含頁面高耗電,這代表內容使用錯誤方式渲染(如 backdrop-filter)
- 要改渲染方式,就代表這個問題裡面還必須包含 style 類型提交,又是一輪審核
- 還包含影響效能的 legacy CSS 清除,還得解釋原因
- JS 還是 UMD 曝露到全局,套件依賴全靠人肉檢查 HTML 順序,要遷移到 ESM 代表所有 JS 格式都要改
- 沒使用 Hugo 官方 API 造成冗長的程式碼又要重構
- 多個 AI 寫的不合邏輯、不合用戶體驗直覺的內容也要改(因為耦合到前面的重複模板了),又要解釋
我全都有能力解決,但是麻煩的是這是多個互相卡住彼此的修改...而且真正的癥結點是意願問題,結果還是得看目的、情況和決策,有辦法執行打勾,直接關係人是否有意願執行打叉,那不用做了。
最後給讀者看看這個搞笑的 if-else,這很好修,但是修又會出現奇怪的問題連動
- 用 Hugo 官方 API 可以修成三行完成
- 但是還得要一併更新相關多個模板的 API 使用方式,又變成中幅度改動
- 而 Blowfish 仍然使用舊的 Hugo 模板系統
- 在舊版系統用正確的 API 反而 counterintuitive...
發現這幾個問題結合在一起的瞬間馬上決定放棄轉頭來寫這篇文章。
{{ $scope := .Scratch.Get "scope" }}
{{ $shouldBlur := $.Params.layoutBackgroundBlur | default (or
(and ($.Site.Params.article.layoutBackgroundBlur | default true) (eq $scope "single"))
(and ($.Site.Params.list.layoutBackgroundBlur | default true) (eq $scope "list"))
(and ($.Site.Params.taxonomy.layoutBackgroundBlur | default true) (eq $scope "terms"))
(and ($.Site.Params.term.layoutBackgroundBlur | default true) (eq $scope "term"))
)
}}
{{ $shouldAddHeaderSpace := $.Params.layoutBackgroundHeaderSpace | default (or
(and ($.Site.Params.article.layoutBackgroundHeaderSpace | default true) (eq $scope "single"))
(and ($.Site.Params.list.layoutBackgroundHeaderSpace | default true) (eq $scope "list"))
(and ($.Site.Params.taxonomy.layoutBackgroundHeaderSpace | default true) (eq $scope "terms"))
(and ($.Site.Params.term.layoutBackgroundHeaderSpace | default true) (eq $scope "term"))
)
}}
{{ $siteBlurStyle := "fade" }}
{{ if eq $scope "single" }}
{{ $siteBlurStyle = $.Site.Params.article.layoutBackgroundBlurStyle | default "fade" }}
{{ else if eq $scope "list" }}
{{ $siteBlurStyle = $.Site.Params.list.layoutBackgroundBlurStyle | default "fade" }}
{{ else if eq $scope "terms" }}
{{ $siteBlurStyle = $.Site.Params.taxonomy.layoutBackgroundBlurStyle | default "fade" }}
{{ else if eq $scope "term" }}
{{ $siteBlurStyle = $.Site.Params.term.layoutBackgroundBlurStyle | default "fade" }}
{{ end }}
{{ $blurStyle := $.Params.layoutBackgroundBlurStyle | default $siteBlurStyle }}
{{ $isClassic := eq $blurStyle "classic" }}