intellijの環境とディレクトリ
- ディレクトリ
- 素直に$HOMEのGOPATHを使いsrcもvendorもとりあえず使わない
- HOMEの配下にmyprojectとか適当なディレクトリでとりあえず作成
- 設定
- global libなどgo側の設定だけだと変更できなかったのでdirectories設定から追加(必要なぶんだけ)
- direnvもカレントだけ設定するだけ
- goがわの設定のproject libraryも特に使わない
Documentation · go-lang-plugin-org/go-lang-idea-plugin Wiki
https://github.com/go-lang-plugin-org/go-lang-idea-plugin/wiki/Documentation
- gitを呼び出すときにgofmtできる
- find usagesで用法が検索できるので便利らしい(gopathが統一されてるから事例が調べやすいのかな)
- デバッグにはdelveをつかうらしい
ビルドを早くする
Goでビルドが遅くなってきたらやってること - Qiita
http://qiita.com/kai-zoa/items/464471b71c682dd3bb83
原因になっていそうなライブラリを事前にビルドして、$GOPATH/pkgにアーカイブをインストール
-
go build -x
で詳細が観れる -
go build -i
で事前にアーカイブできる -
go clean -i
でアーカイブを除去
go import
MacにGo言語の開発環境を構築する【IDE編】 | フリップフラップ
http://blog.flup.jp/2016/02/17/dev_golang_intellij/
この機能を使う注意として、先ほどのvendorをExcludedしていないと、glide upとかした時に追加された外部パッケージにも走ってしまい、予期しない不具合が生じてしまうことがあります(実際、ビルドエラーになってハマりました)。
なるほど。。vendorじゃないけどグローバルのGOPATHをよんでるからなあ。。編集可能性があるぶんだけにすべきかも。
ゴリラmux
go - Gorilla Mux for sub path Routing - Stack Overflow
http://stackoverflow.com/questions/28351063/gorilla-mux-for-sub-path-routing
値の取得はarticleId := mux.Vars(req)["article_id"]
swaggerで生成されるファイルとのパスの兼ね合い
ステージをbasepathにしているからなのか、どうもうまくいかない。
router.goを手動で変更。
(どのみち生成されたファイルはそのままではちゃんと動かなかったのですでに手が入っている。)
swagger-editorと綺麗に同期したまま実装が進められればいいのになあ。
いまのところはできないので、プロキシ統合はざっくりルートからやってしまって、
あとはコードでルーティング。
flagパッケージ
Go言語でコマンドラインオプションを扱う — そこはかとなく書くよん。
http://tdoc.info/blog/2013/04/11/go_flag.html
便利ね。
apexの使い方の例
ApexでAWS Lambdaファンクションを管理する | Developers.IO
http://dev.classmethod.jp/cloud/aws/how-to-manage-aws-lambda-functions-with-apex/
--dry-run
とかfunction.jsonとかあるのか。。
フック機能も便利だな。。
apexignore
でコンパイル前のソースは除外するのか。。
エラーが出る
なかなか解決しない。。
https://github.com/golang/go/issues/16570
Getting Started - The Go Programming Language
https://golang.org/doc/install#uninstall