"As Code"

Mitchell Hashimoto

“即代码”

原文由 Mitchell Hashimoto 发布,订阅该博客

我个人始终将“X as Code”中的后缀“as code”理解为“一套原则或规则的体系”1。这与将“as code”通俗地理解为“即编程”的主流解读形成了对比。

我觉得有必要写下这篇短文来澄清我的本意,因为作为 Terraform2 的发起者——而 Terraform 又是一款标志性的“X as Code”工具——我常常会成为这种误解所指向的对象。

我提出“X as Code”3的初衷,始终是将知识从人们的头脑中解放出来,固化到一个更成文的体系之中。一旦被固化,知识与流程便可以被共享、被版本化、被反复迭代,等等。

它与编程的关联在于,经编码化的知识往往也是机器可读的,并因此具备机器可读带来的全部好处(例如自动化、校验等)。然而,我并不认为这就意味着应该将现代编程的所有要求都套用到“as code”系统上。

再补充一点历史背景,十多年前(在 Terraform 之前!)我曾参与合著了 Tao of HashiCorp,而文中关于“编码化(codification)”的两节至今仍保留着这种思维,且自初稿以来几乎未曾改动。这也有助于为我对“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. 毕竟,对事物的定义是一个社会化过程。群体走向何方,我们终将随之而去。

本文章由 muse-spark-1.2-contributor 进行翻译

评论