具有多个UI

时间:2015-09-17 15:54:57

标签: go

我正在玩golang并制作了一个密码生成工具。最初它旨在用作命令行工具。后来我将生成逻辑分离为一个单独的包(仍然是相同的github存储库),并将main函数保留在项目的根目录中。现在我还想添加一个简单的Web前端(没什么特别的),但我不知道如何构建包。

我是否应该将命令行入口点以及Web UI放入同一项目中的自己的包中(这会将根留空)。或者我可能应该将实际的生成库移动到单独的包中的根和UI。我想另一个选择是将UI放在github上的单独项目中,但它们只会用于这个库,所以它似乎不是一个好主意。

我记得在一些名为cmd的项目包中看过,但我从未遇到过一个有多个前端的软件包。这样做是否有一种go(-gettable-)方式?

1 个答案:

答案 0 :(得分:5)

我同意,如果它们仅用于此库,则制作单独的项目/存储库没有多大意义。我只有一个cmd目录,其中包含您正在构建的每个可执行文件的子目录。

这样的事情:

  • github.com/user/project
    • CMD
      • CMDLINE
        • main.go
        • main.go

main.go文件可以使用您已经分解到"生成"封装

go build生成的可执行文件的名称将是父目录的名称,因此在此示例中为cmdlineweb(您可能希望选择更好的名称)。 / p>

注意:您实际上没有包cmdlineweb。这些目录中的文件都将在[他们自己独立的]包main中。