LoginSignup
0
0

More than 5 years have passed since last update.

golangのお勉強5 + apex + lambda

Last updated at Posted at 2017-05-14

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0