"As Code"

Mitchell Hashimoto

As Code

我個人向來將「X as Code」中的後綴「as code」定義為「一套原則或規則的體系」1。這與將「as code」解讀為「即程式設計」的普遍詮釋形成對比。

我覺得有必要寫這篇短文來釐清我的本意,因為由於我曾發起 Terraform2 這個旗艦級的「X as Code」工具,我個人時常成為這種誤解的對象。

我對「X as Code」的用意3始終是將知識從人們的腦中移出來,置入一個更具形體、可被記載的系統中。一旦被記載下來,知識與流程就能被共享、進行版本控管、反覆迭代等等。

其與程式設計的關聯在於,經過準則化的知識往往也具備電腦可讀性,並能帶來隨之而來的各種好處(例如自動化、驗證等)。然而,我並不認為這就意味著應該將現代程式設計的所有要求都套用到「as code」系統上。

補充一點歷史背景,十多年前(還在 Terraform 之前!)我曾共同撰寫了 Tao of HashiCorp(《HashiCorp 之道》),而這種思維至今仍體現在其中兩個「codification(準則化)」章節中,自初稿以來這些章節大多維持原貌。這有助於為我對「as code」的用意提供更完整的脈絡。

請不要將這篇文章解讀為對「as programming」理念的批評、或是在主張「as code」是完美的、又或是認為「as code」永遠都應該這樣解讀4。以上皆非事實。我只是想釐清我個人在歷史上對這個詞彙的本意與用法。

註腳

  1. https://www.merriam-webster.com/dictionary/code

  2. 我已經多年未參與 Terraform 的開發,並於 2023 年離開了 HashiCorp。我也僅聲稱自己是 Terraform 的發起者之一(且並非獨自一人);多年來它早已由其他人維護。

  3. 「X as Code」或「Infrastructure as Code(基礎設施即程式碼)」這個詞並非由我創造。我不知道是誰創造的,但它早於 Terraform 和我的職涯就已存在。給一個未經請求的商業建議:不要創造新的市場分類,要進入現有的分類,讓你的競爭對手去承擔教育市場的成本。

  4. 畢竟,事物的定義是一個社會化的過程。群體往哪裡去,我們終究也會往哪裡去。

原文由 Mitchell Hashimoto 發布

本文章由 muse-spark-1.2-contributor 進行翻譯