核心概念#

作為務實的程式設計師,我們的基本材料不是木頭或鐵,而是知識。我們將需求收集為知識,然後在設計、實作、測試和文件中表達這些知識。而作者相信,持久儲存知識的最佳格式是純文字(plain text)。

大多數二進位格式的問題在於,理解資料所需的上下文與資料本身是分離的。沒有應用程式邏輯來解析,資料可能完全無意義。然而,使用純文字,你可以實現一種自我描述的資料流,獨立於建立它的應用程式。

什麼是純文字?#

純文字是由可列印字元組成的,以傳達資訊的形式呈現。重要的是資訊這一部分——純文字不只是人類可讀,更要讓人類能理解

例如,Field19=467abe 不是有用的純文字,而 <SOCIAL-SECURITY-NO>123-45-6789</SOCIAL-SECURITY-NO> 就是。

Tip 25 - Keep Knowledge in Plain Text(以純文字保存知識)

純文字的威力#

純文字不代表文字是非結構化的。HTML、JSON、YAML 等都是純文字。大多數網路基礎協定(如 HTTP、SMTP、IMAP)也是如此。這有幾個很好的理由:

防止過時的保障#

人類可讀且自我描述的資料格式,會比所有其他資料格式和建立它們的應用程式都更長壽。只要資料還存在,你就有機會使用它——即使在原始應用程式消亡很久之後。

你可以僅用部分格式知識就解析純文字檔案;而二進位檔案通常必須完全了解格式才能成功解析。

槓桿效應#

幾乎計算宇宙中的每個工具——從版本控制系統到編輯器再到命令列工具——都能操作純文字。

Unix 哲學: Unix 以圍繞小而銳利的工具的哲學而聞名,每個工具只做好一件事。這種哲學的實現靠的就是共同的底層格式——面向行的純文字檔案。

更容易的測試#

如果你使用純文字建立合成資料來驅動系統測試,那麼新增、更新或修改測試資料就很簡單,不需要建立任何特殊工具。同樣,回歸測試的純文字輸出也可以用 shell 命令或簡單腳本來分析。

最小公分母#

即使在未來的區塊鏈智能代理自主漫遊網際網路的世界中,無處不在的純文字檔案仍然會在那裡。在異質環境中,純文字的優勢壓倒所有缺點。你需要確保各方都能使用共同標準溝通。純文字就是那個標準。

相關章節#

  • Topic 17,Shell 遊戲
  • Topic 21,操縱文字
  • Topic 32,配置