此網站設計原則
我真心想要架設的、符合我的核心價值主張、符合我個人喜好的這個網站,要盡可能地滿足以下原則:
簡單優先
- 有較簡單方案可以解決的事,就不要採用較複雜的方案。
- 一個工具可以解決的事,就不要第二個工具。
- 一個網域可以解決的事,就不要第二個網域。
- 一台伺服器可以解決的事,就不要第二台伺服器。
- 一次TLS連線可以解決的事,就不要建立第二個連線。
- 一次HTTP請求與回應可以解決的事,就不要請求第二次。
- 一個round trip可以解決的事,就不要拖到第二個round trip。
- 一秒以內可以解決的事,就不要拖到第二秒:這網站的載入應該盡可能地(雖然有很多我不可控因素但我盡力)愈快愈好,盡量不要浪費讀者的時間。
數位化的正體中文字
- 以正體中文作為傳達資訊主要採用的語言。
- 採用正體中文的理由很單純。因為它是我人生早期接觸的第一個自然語言、我比較熟悉它。我使用正體中文,比起其它語言,往往可以將腦中想法表達得比較準確。
- 以數位化的文字作為承載資訊的主要媒介。
- 採用文字,而非圖像、語音、影片等其他形式,是因為文字是最容易連結人與人彼此的資訊交流方式。除此之外,數位形式的文字也是最容易根據不同需求在不同情境轉換形式(例如重新排版文字、將文字翻譯到另一個語言、將文字自動朗讀變成聲音)、具有高可用性的資訊編碼形式。
簡單的文本標記與樣式
- 文本原始碼HTML標記要盡可能地簡單且乾淨(這個特質非常主觀,我的意思就是要達成我自己認為的簡單與乾淨)並且盡可能只使用符合HTML標準語意的標記。
- 整個網站的內容呈現,原則上不可以依賴任何CSS渲染功能。我的文本架構只需要簡單的排版,應盡量只使用少且單純的CSS樣式宣告。
- 整個網站的內容呈現,原則上不可以依賴任何JavaScript功能。
- 文字排版應考慮小螢幕使用者的感受
- 即使以較小的螢幕閱讀本網站內容——像是使用小螢幕手機並以直向模式(portrait mode)看橫書排版、或以橫向模式(landscape mode)看直書排版時——就算可呈現網頁的視區,在單行文字的排列方向上,只有300個像素的空間,本網站內容也應該要能正常呈現。
若JavaScript和CSS不存在
- 所有網頁設計,都應該盡量在JavaScript與CSS功能不存在時,保持可用性。
- 當瀏覽器僅僅只是關閉JavaScript時,所有網頁都必須維持高可讀性、必須把文字內容順利地傳達給讀者。
- 當瀏覽器僅僅只是關閉CSS時,所有網頁仍然必須保持足夠的可讀性。
- 就算瀏覽器同時關閉CSS與JavaScript時,所有網頁也還是必須保持足夠的可讀性。
禁止Cookie
- 整個網站原則上禁止任何的Cookie設值。
- 即使瀏覽器關閉Cookie功能,網頁功能也完全不變。
完全靜態
- 整個網站必須完全靜態、只由靜態不變的檔案組成。所有頁面的HTTP response的內容,恰好就是某一個事先準備好的純文字檔案。也就是說在HTTP網頁伺服器端,完全不用執行任何複雜、動態、需要編寫程式的業務邏輯,也完全不用維護任何資料庫系統。
- 整個網站完全無「廠商鎖定(vendor lock-in)」,確保幾乎所有現存的網頁伺服器系統都能用來部署這個靜態網站。如果我發現我正在使用的系統有問題,或者因為任何原因而想要把網站遷移到不同的軟體系統、不同的伺服器、不同的服務供應商,我隨時都能輕易地做到。
盡可能維護讀者隱私
- 盡量避免產生不必要的數位資料
- 任何資料一但誕生,就有機率被記錄、有機率後續被有心人士利用。我對於任何軟體系統動態產生的資料紀錄的態度很明確:盡量避免它們。
- 無論是伺服器端,還是客戶端,我所建造的軟體系統,必須優先採取immutable和stateless的解決方案設計,至少要state minimized,盡可能地減少動態資料足跡。
- 聲明,在筆者撰寫這篇文章的當下,這個網站可能會動態產生的客戶端資料有以下這兩種。(預設情況是沒有這些資料,只有當你修改網站配色與書寫方向等偏好設定時,這些資料才會出現。)
- 某一個 local storage 字串,記錄了你的配色偏好:不存在就表示自動根據系統判斷。字串值
D表示你偏好深色佈景主題。字串值L表示你偏好淺色佈景主題。
- 某一個 local storage 字串,記錄了你的直橫書寫方向偏好:不存在就表示採用預設值(直書模式排版),如果存在一個非空字串值則表示你偏好橫書排版模式。
- 這個網站會嚴格禁止任何 tracking JavaScript 的存在。
- 網站伺服器端
- 此網站不會主動向你索取、也不會偷偷記錄——更不會追蹤、甚至運用——任何關於訪客(你)的個人可識別資訊(俗稱個資)或任何數位指紋。
- 這裡不會有任何可以在網站後台密切追蹤統計訪客行為的那些Cookie和JavaScript程式碼。
關於你的隱私的提醒事項
- 有些事情我不能控制。如果你想要最大的數位隱私,有些事情的責任落在網路使用者——也就是本網站讀者——你的身上。
- 例如你的網頁瀏覽器很可能預設就會有一些暫存資料的行為,像是瀏覽歷史紀錄和網頁快取等。
- 例如你正在使用的光纖網路或Wi-Fi無線網路或4G、5G、LTE行動網路背後的網路服務供應商和你的網路封包會經過的任何網路節點都很可能會記錄並追蹤你的網路連線行為,像是明文的DNS查詢紀錄、連線IP地址、流量大小、時間、還有各式各樣可能連結到你個人的metadata和fingerprint。
結語
以上我列出的,是我會努力、我真心希望說到做到的原則,我會盡力而為之。如果有哪一條原則,我竟然沒有落實,那非常可能是這個網站設定上的bug。歡迎你來信和我說。