As Code
原文由 Mitchell Hashimoto 于 發布,訂閱此部落格
我個人一直以來都將「X as Code」裡後綴的「as code」定義為「一套原則或規則的體系」1。這與普遍將「as code」解讀為「as programming(像寫程式一樣)」的看法恰恰相反。
我覺得有必要寫這篇短文來釐清我的原意,因為我過去發起了 Terraform2——一個旗艦級的「X as Code」工具——也因此個人時常成為這種誤解的對象。
我對「X as Code」3 的原意,始終是將知識從人們的腦中取出,放進一個更具體、可被銘刻的系統裡。一旦被銘刻下來,知識與流程就能被共享、進行版本控管、反覆迭代等等。
它與程式設計的關聯在於,經過編碼化的知識往往也具備可供電腦讀取的特性,並帶來由此衍生的所有好處(例如自動化、驗證等)。然而,我並不認為這就意味著現代程式設計的所有要求都應該套用到「as code」系統上。
再補充一點歷史背景,十多年前(還在 Terraform 之前!)我共同撰寫了 Tao of HashiCorp,而這種思維至今仍體現在其中兩個關於「codification」的段落裡,這些段落自最初撰寫以來幾乎沒有更動。這有助於為我對「as code」的原意提供更進一步的脈絡。
請不要將這篇文章視為對「as programming」理念的批評、宣稱「as code」是完美的,或是認為「as code」永遠都該這樣被解讀4。以上皆非事實。我只是想釐清我個人在歷史上對這個詞彙的原意與用法。
註腳
隨機一篇部落格
留言
登入後參與討論