原文João Freitas - 2024.03.24

这是我长时间以来的一个深感赞同的观点。

我参与过的几乎所有项目,都有我们编写的用于自动化重复性过程的脚本。然而,大多数脚本在几周后变得过时且难以维护,因为我们要么不再需要它们,要么它们变得过于复杂以至于难以理解。后来,这些脚本要么被重构,要么永远留在脚本墓地

(永远别忘记向我们遗弃的、失效的脚本表示敬意 🫡)

我认为导致这种结果的主要原因之一是,用 BashPython 编写了这些脚本。别误解我的意思,我非常喜欢这两种语言,但感觉如果团队用他们项目的主要开发语言编写脚本,他们可以获得更多的胜利。从一开始,编写脚本所需的时间努力就减少了,因为:

  • 学习曲线极小,因为你已经了解这种语言的各个方面。
  • 可以利用内部语言 API,这极大地改变了编写脚本的思维模型(变得更好)。
  • 脚本感觉更自然,最终可维护性增加。团队成员对这种语言感到熟悉
  • 开发机器的兼容性增加。Windows 用户终于可以运行所有脚本了。🤭

走这条路的缺点是主要语言的运行时支持。并非每种语言都是多范式的,或者设计上就支持脚本。例如,编写 JVM 语言的脚本需要额外的努力来构建一个工具链,该工具链能够即时编译并运行文件,启动时间短。但是,如果你在一个 Web 前端项目(JavaScript)上工作,那么你就有更大的可能性和能力来使用它来编写脚本。

归根结底,团队需要进行讨论并达成一致,确定哪种语言最适合他们的需求,并标准化他们的脚本语言。如果他们可以使用项目主要语言,那就太好了。如果他们不能,那么应该采用具有原生支持的高级脚本语言(例如,Python),因为从长远来看,它提供了提高可维护性的方法。