私はGoを使用して新しいプロジェクトに取り組んでおり、私たちは全員Goに新しいです。標準のgoディレクトリ構造に従い、すべてのコードを
$ GOPATH / src / github.com / companyname / projectname
gitリポジトリのルートでもあります
標準の推奨パスレイアウトは、特にGoベースのrest / httpバックエンドやhtml / javascriptフロントエンドなどの多言語プロジェクトで作業している場合、少し奇妙に見えます。その場合、プロジェクト構造を次のようにしたいと思うでしょう。
/
doc/
src/
server/
main.go
module1/
module.go
client/
index.html
Makefile
しかし、実際にはGOPATH内にコードを配置する必要がありますか?
試みとして、ソースコードがGOPATHの外にある小さなプログラムを作成しました。プロジェクトをパッケージに簡単に分割できるので、main
パッケージはを使用foo
してfoo/
フォルダー内のパッケージを参照できますimport "./foo"
。
私が見る限り、これが私を許さない2つのことがあります:
- 他のコードはこのコードをインポートできません。これは、企業向けのサービスを構築しているため、問題ではありません。
go install
インストールに使用できません。これも問題ではありません。ビルドパイプラインはツールをインストールします。
ただし、ビルドサーバーはワークスペースをGOPATH内に配置できません。
そのようなアプローチは推奨されませんか?もしそうなら、なぜそうですか?
リストした2つ以外のマイナスの副作用はありますか?
これは企業のプライベートプロジェクトであり、公開のオープンソースコードではないことに注意してください。
GOPATHから実際のプロジェクトを切り離すのは魅力的ですが、Shuステージにいるときはルールを破る際には注意が必要です。