Contenu connexe
Similaire à スッとGoを取り入れる (20)
スッとGoを取り入れる
- 2. 自己紹介
• Yusuke Wada
• @yusukebe
• http://blog.yusuke.be/
• Wadit CEO / Omoroki CTO
• Web Application Developer
• Technical Advisor
• Co-founder of bokete.jp
• Perl書いてる...
- 33. スクリプト的とは?
• main.go に package main のみ
• 単発のバッチスクリプトとか
• 例えば...
• MySQLのレコードを1つずつなめて...
• ちょっとした処理を加えてカラムを変更するetc.
- 34. 例
for ;; {
var results []Entry
db.Select(&results, db.Where("flag","=","0"), db.Limit(limit));
if len(results) == 0 {
break
}
var wg sync.WaitGroup
for _, entry := range(results) {
wg.Add(1)
go func(e Entry) {
work(e)
wg.Done()
}(entry)
}
wg.Wait()
}
goと書くだけで並行処理が走って
DB接続処理もロックしないで便利!
- 39. Web API サーバ
PC版Web スマホ版Web iOSアプリ
Androidアプリ その他フロント...
コアロジック
各種サービス
APIサーバをGoで書き直す必要も無いので特化したサービスをGoで!
- 40. Web API サーバ
PC版Web スマホ版Web iOSアプリ
Androidアプリ その他フロント...
コアロジック
各種サービス
スタンプ画像生成サーバがあった!
スタンプ
- 45. git log -p cpanfile
-requires 'Lingua::JA::Fold';
-requires 'Imager';
-requires 'Imager::DTP::Textbox::Horizontal';
Lingua::JA::Fold - 禁則処理を含む日本語文字列の折り返し
Imager - 画像処理モジュール
Imager::DTP::Horizontal - テキスト画像の配置
- 53. $ tree ./
./
!"" README.md
!"" assets
# !"" font-heavy.ttf
# !"" font-medium.ttf
# !"" stamp_404.png
# !"" stamp_footer.png
# !"" stamp_header.png
# !"" stamp_panel.png
# $"" transparent.png
!"" assets.go
!"" client.go
!"" client_test.go
!"" cmd
# $"" stamp_server
# $"" main.go
!"" stamp.go
!"" stamp_test.go
!"" util.go
$"" util_test.go
go-bindataでassets.goに入れ込む
アセットファイル達
WebAPIから情報とってくる
peco/peco参考にした
画像オブジェクトをゴリゴリ頑張る
utilとはいえ主にテキスト処理
- 66. func CompressBytes(input []byte, speed string) (output []byte, err
error) {
cmd := exec.Command("pngquant", "-", "--speed", speed)
cmd.Stdin = strings.NewReader(string(input))
var o bytes.Buffer
cmd.Stdout = &o
err = cmd.Run()
if err != nil {
return
}
output = o.Bytes()
return
}