关于服务
翻译你的Bash脚本以最不可预测的方式失败——一个变量变为空,一个路径包含空格,一个返回代码未被检查?我会在Amber中重写这个痛点——一种现代编程语言,编译为常规的可移植Bash。你将获得真正类型化语言的可读性和安全性,结果仍然可以在任何熟悉的shell脚本运行的地方运行,而无需安装任何额外的运行时。
我所做的:部署和发布脚本、备份和恢复程序、日志轮换和清理、cron包装器、安装和引导脚本、CI/CD管道步骤,以及你工具之间的粘合代码。一切都用Amber编写——具有真实变量、类型化函数、仔细的错误处理和清晰的控制流——然后编译成一个可以直接放在你的服务器上的单一Bash文件。
为什么选择Amber而不是手写Bash:字符串和数字实际上是类型化的,因此一整类引号和分词错误根本无法发生。错误被捕获,而不是被吞没。源代码看起来像一个普通程序,因此下一个打开代码的人——包括未来的你——不会害怕它。而且由于一切都编译为标准Bash,你不需要拖带Python或Node运行时,并向你的运维团队解释一个新的依赖关系。
每个项目包括:可读的、带注释的Amber源代码,编译的Bash,一个关于构建和运行的简短README,以及一个简要的演练,以便你的团队可以维护所有内容。在交付之前,我会在真实的Linux shell上进行测试,并乐意将现有的复杂脚本作为固定范围的起始任务。给我发送一个脚本或任务描述——我会告诉你确切需要什么。
我所做的:部署和发布脚本、备份和恢复程序、日志轮换和清理、cron包装器、安装和引导脚本、CI/CD管道步骤,以及你工具之间的粘合代码。一切都用Amber编写——具有真实变量、类型化函数、仔细的错误处理和清晰的控制流——然后编译成一个可以直接放在你的服务器上的单一Bash文件。
为什么选择Amber而不是手写Bash:字符串和数字实际上是类型化的,因此一整类引号和分词错误根本无法发生。错误被捕获,而不是被吞没。源代码看起来像一个普通程序,因此下一个打开代码的人——包括未来的你——不会害怕它。而且由于一切都编译为标准Bash,你不需要拖带Python或Node运行时,并向你的运维团队解释一个新的依赖关系。
每个项目包括:可读的、带注释的Amber源代码,编译的Bash,一个关于构建和运行的简短README,以及一个简要的演练,以便你的团队可以维护所有内容。在交付之前,我会在真实的Linux shell上进行测试,并乐意将现有的复杂脚本作为固定范围的起始任务。给我发送一个脚本或任务描述——我会告诉你确切需要什么。