将原生依赖与 Go 二进制文件捆绑在一起是一种反模式吗?

问题描述 投票:0回答:0

我正在学习更多关于 Golang 二进制分布模型的知识,并且想知道将依赖的预编译二进制文件与 Go 应用程序捆绑在一起的最佳实践是什么。

假设我正在 Windows 上构建我的 Golang 应用程序,并且有一些用于与共享操作系统组件交互的 DLL。 Go 的价值主张之一是它创建了一个二进制文件(例如,

hugo.exe
用于 Hugo 静态站点生成器),它具有所有内置的依赖项(因为它们是从源代码编译的)。

当依赖的源代码不能共享时会发生什么?在 tar/zip 中捆绑 DLL 是可行的方法还是有更好的方法?

这也提出了跨平台兼容性的问题,因为 Go 程序可能在非 Windows 平台上运行,这意味着我的二进制文件也需要为这些平台预编译。

虽然理论上这是可行的 - 这是 Go 社区期望的反模式吗?

go compilation cross-platform binaries precompiled-binaries
© www.soinside.com 2019 - 2024. All rights reserved.