配置管理软件研发

配置管理之构建管理(2)

2017-04-27  本文已影响0人  研发效能D_laofo

易理解的构建脚本

为什么要把构建脚本单拿出来重点说?因为我发现在工作中,尤其是存活时间长的公司,基本上都有一个研发都不愿意触碰的构建脚本。这些脚本一般有以下特点

研发遇到这样的脚本,第一反应就是:“嗯,好的,我本地已经编译通过,代码提交到代码库了。剩下的事情就交给你们配置管理了。”然后一边叼着烟卷、喝着咖啡当大爷去了。只有配置管理苦逼兮兮的把代码获取下来,然后用构建脚本跑。

构建过程不要求有多么完备,所有的功能都塞到一个文件里去完成。看得人是会很累的。

构建脚本模块化

如何写好一个易理解的构建脚本呢?

都在说 Devops,很多时候都是 ops 多一些, Dev 少一点。

构建脚本配置化

构建脚本的大多数值应都是固定的,降低不可配置的部分。如果有不可配置的部分也要单独出来,这样一旦出错也容易排查。
之所以很多研发不愿意触碰构建脚本,就是构建脚本太复杂了,很多他们不需要的功能都糅杂到了一起,研发很难在很短的时间内找到一个理解的途径,一个快速运行的方法。从这一点上说 xml 和 yml 格式的构建脚本是最好的。

构建脚本语言

dirty but quick - shell

为什么大多数构建脚本都是解释型语言写的? 这是因为在项目建立之初,需要一种快速实现项目编译的方法,三两行的 shell 就可以完成,谁还会去写个 C 语言的?随着工程规模变大,要做的事情也越来越多,随之三两行的构建脚本,变成了一堆三两行的构建脚本。

构建系统

仅仅有一个简单的构建脚本是不够的,就像上面列出来的,还需要做很多编译之外的事情,比如环境设置、打包、上传、操作数据库等等。我们还需要一个构建系统。没有人来帮忙? 那只能配置管理团队自己撸了。如果真的现实情况如此,那么能快速实现的 Ruby, Python 则是不错的选择。

小结

写一个简单明了容易理解且功能丰富各种大而全的构建脚本是不可能完成的。但我们可以把各种功能分拆的相对清晰一点、通过各种模块来完成,这点还是可以做到的。

如果要真的需要推荐些工具和语言,那么我觉得 python 在各个平台各种语言环境下都是需要的。 Linux 还需要 shell; Windows 平台使用微软推荐的做法就可以,选择其它的反而揪心。

上一篇 下一篇

猜你喜欢

热点阅读