golangのお勉強15+goa


goaとnode_modules

node_modulesをGOHOMEのプロジェクト内に置いたらgogenが容量不足とエラーを吐いた。
エラーとしては内部のgo installでエラーになってる。。はて。。

node_modulesをどう含ませるかという問題もあるけど、、
そもそも同じプロジェクトにしない方がいいのかしら。。
開発中は、同じところでやって、あとから移動とかにしたい気がしてしまうが、
その考え方をちょっと転換した方が便利かなあ。。

goagen jsから吐き出されるjs

jsの話題になってまう。。

  • axios.jsでAjax処理
  • client.jsにrequireJSの形式でスクリプトが記述(defineでモジュール)されている
  • index.htmlにサンプルのロジック

requireJS

使い方。。

RequireJS使い方メモ - Qiita
http://qiita.com/opengl-8080/items/196213867b859daea719

axios.js

axiosを乗りこなす機能についての知見集 - Qiita
http://qiita.com/inuscript/items/ccb56b6fc05aa7821c42

superagentとaxiosの使い分け - Qiita
http://qiita.com/nekobato/items/0cd3ed1742310f74653c

webpack

下記みたいな感じにするためにHtmlWebpackPluginfilename: '../index.html'みたいな指定。

js...goagen js吐き出し
pubclic...公開
js...公開js
*.html...公開html
src...独自リソース
js
css
*.html

Need to use different output path · Issue #148 · jantimon/html-webpack-plugin
https://github.com/jantimon/html-webpack-plugin/issues/new

vendoring

プロジェクト内でパッケージと、そのバージョンを管理する。
glideがメジャー。
プロジェクトをまたいで共通のGOPATHで開発してねっていうお話をどこかで見た気もするけどどうだろう。。

Golangのvendor管理周りでちょっとハマった – Wano Developers Blog
https://developers.wano.co.jp/golang%E3%81%AEvendor%E7%AE%A1%E7%90%86%E5%91%A8%E3%82%8A%E3%81%A7%E3%81%A1%E3%82%87%E3%81%A3%E3%81%A8%E3%83%8F%E3%83%9E%E3%81%A3%E3%81%9F/

golangとdocker

2015年の記事と、古いけどシンプルなdockerを使った例。

Docker: golang 公式のイメージを使う - Sarabande.jp
http://blog.sarabande.jp/post/129683620733

firewallも購入してアラートを抑制できるようになったものの、
やはりdockerで開発するのもありかなという気がしてきた。
開発の脇道が長いと脇道にそれることの敷居が下がる。。

godoというタスクランナーと、golangの公式dockerを使っている事例。よさそうだなあ。。
試して見たらglideが便利そう。。。本筋の話じゃないけど。

Docker内のGo製Webアプリをソース変更後リロードするだけで確認できるようにする | フリップフラップ
http://blog.flup.jp/2016/02/18/golang_docker_hot_reload/

デフォルトは、debianのstretchリリースがベース
alpine linuxもある

golang/Dockerfile at 2a15dfff04accfd31c2a45b3bb7423aa86aa2d60 · docker-library/golang
https://github.com/docker-library/golang/blob/2a15dfff04accfd31c2a45b3bb7423aa86aa2d60/1.9-rc/stretch/Dockerfile

これを真似ればsshできる。。かな。

sshできるdockerコンテナをつくるために最低限必要なこと - kotaroito's notes
http://kotaroito.hatenablog.com/entry/2016/03/07/094423

なお、sshd を docker コンテナで走らせる必要はない、という議論もあります。 production で使うならこれはその通りだと思います。