脚本应使用项目的主要语言编写

news2024/11/17 13:42:55

在这里插入图片描述

原文:João Freitas - 2024.03.24

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

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

在这里插入图片描述

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1550477.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Golang hash/crc32 库实战指南:从基础到优化

Golang hash/crc32 库实战指南:从基础到优化 引言理解CRC32hash/crc32库概览实战技巧数据校验性能优化多线程应用 错误处理与调试错误处理调试 实际案例分析结论 总结重点回顾 引言 在现代软件开发中,数据的完整性和安全性至关重要。无论是数据库存储、…

计算机组成原理 — 指令系统

指令系统 指令系统指令的概述指令的格式指令的字长取决于 操作数类型和操作种类操作数的类型数据在存储器中的存放方式操作类型 寻址方式指令寻址数据寻址立即寻址直接寻址隐含寻址间接寻址寄存器寻址寄存器间接寻址基址寻址变址寻址堆栈寻址 RISC 和 CISC 技术RISC 即精简指令…

K8s Pod亲和性、污点、容忍度、生命周期与健康探测详解(上)

🐇明明跟你说过:个人主页 🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅 🔖行路有良友,便是天堂🔖 在上一章节中,我们详细探讨了Pod的概念、创建、…

linux X11窗口开发

X11 控制窗口 窗口信息查询 检索窗口信息工具 xprop xprop执行后会出现一个光标,这个光标可以获取到窗口信息 X11 获取窗口信息,操作窗口 X11 遍历获取当前显示窗口的标题 _NET_WM_NAME, 置顶模拟键盘输入操作 开发依赖 apt install libX11-dev l…

【前端Vue】社交信息头条项目完整笔记第2篇:二、登录注册,准备【附代码文档】

社交媒体-信息头条项目完整开发笔记完整教程(附代码资料)主要内容讲述:一、项目初始化使用 Vue CLI 创建项目,加入 Git 版本管理,调整初始目录结构,导入图标素材,引入 Vant 组件库,移动端 REM 适配,关于 , 配置文件,封装请求模块。十、用户关…

LeetCode-1669题:合并两个链表(原创)

【题目描述】 给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。请你将 list1 中下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点的位置。下图中蓝色边和节点展示了操作后的结果: 请你返回结果链表的头指针。 【…

10 - Debian如何让特定用户切换root身份

作者:网络傅老师 特别提示:未经作者允许,不得转载任何内容。违者必究! Debian如何让特定用户切换root身份 《傅老师Debian小知识库系列之10》——原创 前言 傅老师Debian小知识库特点: 1、最小化拆解Debian实用技能…

LNMP架构之mysql数据库实战

mysql安装 到官网www.mysql.com下载源码版本 实验室使用5.7.40版本 tar xf mysql-boost-5.7.40.tar.gz #解压 cd mysql-boost-5.7.40/ yum install -y cmake gcc-c bison #安装依赖性 cmake -DCMAKE_INSTALL_PREFIX/usr/local/mysql -DMYSQL_DATADIR/data/mysql -DMYSQL_…

MySQL为什么会选错索引

在平时不知道一有没有遇到过这种情况,我明明创建了索引,但是MySQL为何不用索引呢?为何要进行全索引扫描呢? 一、对索引进行函数操作 假设现在维护了一个交易系统,其中交易记录表 tradelog 包含交易流水号(tradeid)、交…

【分布式计算框架】Hadoop伪分布式安装

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎 ❤️关注 👍点赞 🙌收藏 ✍️留言 文章目录 Hadoop伪分布式安装一、实验目的二、实验环境三、实验内容基本任务1:安装Linux虚拟机(至…

[Vue3] 配置 Pinia 并存储、读取、修改数据 | 集中式状态(数据)管理

安装 npm i pinia main.ts import ./assets/main.cssimport { createApp } from vue import App from ./App.vue import { createPinia } from pinia // 引入Pinia// 创建一个应用 const app createApp(App)const pina createPinia() app.use(pina) // 挂载整个应用到app容器…

『Apisix进阶篇』动态负载均衡:APISIX的实战演练与策略应用

🚀『Apisix系列文章』探索新一代微服务体系下的API管理新范式与最佳实践 【点击此跳转】 📣读完这篇文章里你能收获到 🎯 掌握APISIX中多种负载均衡策略的原理及其适用场景。📈 学习如何通过APISIX的Admin API和Dashboard进行负…

AIGC趋势下软件工程强智能编码来临了么?

一、背景 在AIGC(AI Generated Content,人工智能生成内容)的趋势下,软件工程领域的“强智能编码”是指通过深度学习、自然语言处理等前沿技术,使AI具备理解、学习、推理和生成代码的能力,从而实现自动化或…

操作系统:经典进程同步问题的高级探讨

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

ChatGPT提升工作生产力方法和技巧ChatGPT enhances work productivity methods and techniques

使用ChatGPT提升工作效率的一些详细步骤和技巧: 1. 快速撰写和编辑文档 撰写文档:当需要撰写报告、方案、邮件等内容时,可以直接向ChatGPT提出请求,例如:“请帮我写一份关于第一季度销售业绩的总结报告。”之后&#x…

Mybatis-plus + 通用mapper(tk.mybatis)

推荐课程:MyBatisPlus实战教程02-课程介绍与案例演示_哔哩哔哩_bilibili 官网:MyBatis-Plus (baomidou.com) 目录 01 引言 1)MyBatis与MyBatis-Plus区别 2)Mybatis-plus入门案例 案例一:spring容器版本的案例 案例…

将二进制数a的每一位右移b位operator.rshift(a,b)

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 将二进制数a的 每一位右移b位 operator.rshift(a,b) [太阳]选择题 请问执行operator.rshift(4, 1)的结果为? import operator print("【显示】二进制2:",bi…

Tuxera for Mac2024免费读写硬盘U盘工具

作为软件产品专家,我对各类软件都有较为深入的了解,下面介绍Tuxera for Mac这款读写硬盘/U盘工具的相关信息: Tuxera for Mac是一款高效稳定的NTFS读写工具,专为解决Mac系统无法直接读写NTFS格式驱动器的问题而设计。它提供了完整…

【文献分享】FLUNED(一种用于流体活化计算的开源工具)在水中的开发和验证

题目:Development and validation in water of FLUNED, an open-source tool for fluid activation calculations 链接:Redirecting FLUNED(一种用于流体活化计算的开源工具)在水中的开发和验证 在核聚变装置中,高…

【数据结构】树、二叉树与堆(长期维护)

下面是关于树、二叉树、堆的一些知识分享,有需要借鉴即可。 一、初识树(了解即可) 1.树的概念 概念:一种非线性数据结构,逻辑形态上类似倒挂的树 树的构成:由一个根左子树右子树构成,其中子树…