Open hhstore opened 3 years ago
构建工具
, 常见于 google 开源的各类项目中应用. 如 k8s
. Python
语法的脚本语言. Python
语法的脚本语言. N年前,Google使用 Makefile 来管理代码。正如坊间传言,Makefile 管理代码太多时,就有点 hold 不住了。救急的解决办法是用 python 脚本来生成 Makefile,编译过程中用到的 python 函数都存储在 BUILD 文件中。但是这样还是太慢,瓶颈在 Make。
Blaze(后来以 Bazel 开源)项目开始于2006年。Blaze 用一个简单的解释器来读取 BUILD 文件(只支持函数调用,列表解析和变量分配)。Blaze 不能直接解析 BUILD 文件,通过 Python 解释器将用户的 BUILD 文件预处理为一个简化的 BUILD 文件,简化后的 BUILD 文件供 Blaze 使用。
这样处理起来简便并且允许开发者创建自己的宏。但是代码维护,性能,安全性又出现了很多问题。因为Blaze 本身不能解析 BUILD 文件,导致编译变得越来越复杂。
Bazel 经过重新设计,剔除了 Python 预处理的步骤。我们保留了 Python 的语法来移植基础代码。效果看上去不错:很多人喜欢我们的 BUILD 文件语法,并对一些构建工具进行了适配,比如 Buck, Pants 和 Please。
1
1
1
1
1
related: