这是我很久以来的感受。

我参与过的几乎所有项目都有脚本,我们编写这些脚本是为了实现重复流程的自动化。连续几周后,大部分脚本都变得过时且无法维护,因为我们要么不再需要它们,要么它们变得太复杂而无法查看。之后,这些脚本要么被重构,要么就永远留在了脚本墓地。

标有 RIP 的剪贴画风格墓碑

永远不要忘记祭奠那些被我们遗弃的脚本🫡 (源)

我认为导致这种结果的主要原因之一是我们用 Bash 或 Python 编写脚本。别误会我的意思,我是这两种语言的忠实粉丝,但我觉得如果团队使用项目开发的主要语言编写脚本,他们会赢得更多。从一开始,编写脚本所需的时间和精力就会减少:

学习曲线最小,因为你已经了解了语言的各个角落

可以利用内部语言应用程序接口,这极大地改变了编写脚本的思维模式(效果更好)

脚本感觉更自然,最终提高可维护性。团队成员熟悉语言!

提高开发机器的兼容性。Windows 用户终于可以运行所有脚本。🤭

朝这个方向发展的缺点是主要语言的运行时支持。并不是每种语言都是多范式的,也不是每种语言都是为支持脚本而设计的。例如,在 JVM 语言上编写脚本需要额外的努力,以构建一个能在短启动时间内编译和运行文件的工具链。但如果你从事的是网络前端项目(JavaScript),那么权力就掌握在你的手中。

归根结底,团队之间需要就哪种语言最适合自己的需求和脚本语言的标准化进行讨论并达成一致。如果他们能使用主语言,那就太好了。如果不能,则应采用本地支持的更高级的脚本语言(如 Python),因为从长远来看,它提供了提高可维护性的方法。