Google App Engine/Goのディレクトリ構成

Ken published on
3 min, 543 words

Categories: Programming

Google App Engine/Goを実装するときは次のようにするのがよい。

  • GOPATHをひとつにする
  • コードはsrc配下
  • importはフルパス
  • app.go, app.yamlはsrc直下

前提

goコマンドの代わりにgoappコマンドを使う。

▶Google Cloud SDK — Google Cloud Platform
https://cloud.google.com/sdk/

GOPATHをひとつにする

デプロイ時に関連ファイルを含める必要があるため。

コードはsrc配下

自分の書いたコードはsrcディレクトリ配下に置く。
goapp getしたファイルも自分が書いたコードもsrc配下にまとまっているということになる。

importはフルパス

import文はフルパスで書く。
GOPATHはひとつにまとめているし、これで困ることはない。
それと、goapp testしたときにもうまく解決される。

app.go, app.yamlはsrc直下

app.goとapp.yamlはsrcディレクトリに保存する。

src
├── app.go
├── app.yaml
├── myproject
├── github.com
└── code.google.com

まとめ

この構成にする前はapp.goとapp.yamlをmyprojectの下に置いていたのでうまく動かなかった。
App Engineで動かしたいものはmyprojectだし…と思っていたのだが、app.goから見たらmyprojectも複数プロジェクトのうちのひとつでしかないということで納得。

もう少し丁寧に書いておきたいけど、忘れないうちに構成だけメモ。

このツイートの返信でいろいろと教えてくださった @mattn_jp さんに感謝!!

▶GAE/Go でのGOPATH設定 - The Round
http://knightso.hateblo.jp/entry/2014/11/26/103637
ここの構成と違うからちょっと気になる…もう少し確認した方がいいかもしれない。