当前位置: 首页 > 面试题库 >

组织多文件Go项目

岳飞航
2023-03-14
问题内容

在开发过程中组织Go项目的标准方法是什么?

我的项目是一个包mypack,所以我想我将所有.go文件放在一个mypack目录中。

但是,然后,我想在开发过程中对其进行测试,因此至少需要一个声明该main包的文件,以便我可以go run trypack.go

我应该如何组织呢?go install mypack每次尝试都需要做吗?


问题答案:

我建议阅读有关如何编写Go代码的页面

它记录了如何以gobuild友好的方式构建项目以及如何编写测试。使用该main程序包不必进行cmd测试。它们可以简单地被TestX命名为每个程序包的一部分,然后gotest发现它们。

现在,随着Go1的发布,问题中该链接中建议的结构有些过时了,您不再需要在pkg目录下放置目录src。仅有3个与规范相关的目录是GOPATH根目录中的3个目录:bin,pkg,src。在src之下,您可以简单地放置您的项目mypack,并且在其下是所有.go文件,包括mypack_test.go

go build 然后将其构建到根级别pkg和bin中。

因此,您的GOPATH可能如下所示:

~/projects/
    bin/
    pkg/
    src/
      mypack/
        foo.go
        bar.go
        mypack_test.go

export GOPATH=$HOME/projects

$ go build mypack
$ go test mypack

更新:从> = Go1.11开始,模块系统现在已成为工具的标准部分,并且GOPATH概念已接近过时。



 类似资料:
  • 问题内容: 我是从C#/ Visual Studio的背景来学习Java和Eclipse的。在后者中,我通常会组织这样的解决方案: \ MyProjects \ MyApp \ MyAppsUtilities \ LowerLevelStuff MyApp将包含一个用于构建.exe的项目,MyAppsUtilities将创建一个由.exe调用的程序集DLL,而LowerLevelStuff可能会构

  • 主要内容:文件组织的目标,文件组织类型文件组织 - 文件是记录的集合。使用主键,可以访问记录。访问的类型和频率可以由用于给定记录集的文件组织类型确定。 文件组织是各种记录之间的逻辑关系。此方法定义文件记录如何映射到磁盘块。 文件组织用于描述以块的形式存储记录的方式,并且块被放置在存储介质上。 将数据库映射到文件的第一种方法是使用多个文件并在任何给定文件中仅存储一个固定长度的记录。 另一种方法是构造我们的文件,以便可以包含多个记录长度。

  • 一个文件由被空行分割而成的段落以及标识每个段落的可选注释共同组成。 超过2000行的程序难以阅读,应该尽量避免。 正确编码格式的范例,见 "Java 源文件案例". 3.1 Java 源文件 每个 Java 源文件都包含一个单一的公共类或接口。若私有类和接口与一个公共类相关联,可以将它们和公共类放入同一个源文件。公共类必须是这个文件中的第一个类或接口。 Java 源文件还遵循以下规则: 开头注释

  • 一个文件包含的各个部分应该用若干个空行分隔。虽然对源文件没有最大长度限制,但超过1000行的文件处理起来非常不方便。编辑器很可能没有足够的临时空间来编辑这个文件,编译过程也会因此变得十分缓慢。与回滚到前面所花费的时间相比,那些仅仅呈现了极少量信息的多行星号是不值得的,我们不鼓励使用。超过79列的行无法被所有的终端都很好地处理,应该尽可能的避免使用。过长的行会导致过深的缩进,这常常是一种代码组织不善

  • 我们想将Spring集成配置拆分为几个文件,例如和。在每个这样的文件中,我们都希望有一个通道。 Spring Integr是否可以自动为通道id加上XML文件名的前缀,即和? 否则,您将如何处理XML配置(不诉诸于一个大的XML文件)?

  • 它是最简单,最基本的组织类型。它适用于数据块。在堆文件组织中,记录将插入文件的末尾。插入记录时,不需要对记录进行排序和排序。 当数据块已满时,新记录将存储在其他块中。这个新数据块不必是下一个数据块,但它可以选择存储器中的任何数据块来存储新记录。堆文件也称为无序文件。 在文件中,每个记录都有一个唯一的ID,文件中的每个页面都具有相同的大小。 DBMS负责存储和管理新记录。 插入新记录 假设在堆中有五