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。以上皆非事實。我只是想釐清我個人在歷史上對這個詞彙的本意與用法。
註腳
隨機一篇部落格