我应该如何组织我的go文件以支持跨平台构建并实施一致性?

时间:2015-09-02 17:54:59

标签: go projects-and-solutions

我目前正在使用一种方法,我有一个“基础”文件,用于定义包的类型,接口和基本API。然后,我创建一个_windows.go_linux.go文件,并添加我可以应用该接口的平台特定类型。设置基本上是这样的:http://play.golang.org/p/2DJxTuSAIh

  1. 这被认为是最佳做法吗?
  2. 这有助于团队设置,其中一些开发人员专注于Linux并且一些窗口关注,即如果界面更改,两个团队将通过构建失败通知?

1 个答案:

答案 0 :(得分:2)

接口的使用是一个正交的概念。使用接口有意义的接口,但通常只需在正确的GOOS和GOARCH文件中提供相同名称的实现即可。

使用公共构造函数名称的方法(来自您的示例)也用于std lib中的位置,将全局变量名称分配给函数的方法(在概念上与前一种方法类似) 。

因为Go是静态类型的,并且您无法重新声明全局标识符,所以构建系统将始终捕获问题;这只是测试所有适用系统的问题,以确保没有OS或ARCH有过时的实现。