Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Yusuke Wada
PDF, PPTX
23,730 views
スッとGoを取り入れる
Go 1.6 Release Party 2016-02-17 Hatena Inc. Tokyo Office Yusuke Wada a.k.a. yusukebe
Technology
◦
Read more
17
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 69
2
/ 69
3
/ 69
4
/ 69
5
/ 69
6
/ 69
7
/ 69
8
/ 69
9
/ 69
10
/ 69
11
/ 69
12
/ 69
13
/ 69
14
/ 69
15
/ 69
16
/ 69
17
/ 69
18
/ 69
19
/ 69
20
/ 69
21
/ 69
22
/ 69
23
/ 69
24
/ 69
25
/ 69
26
/ 69
27
/ 69
28
/ 69
29
/ 69
30
/ 69
31
/ 69
32
/ 69
33
/ 69
34
/ 69
35
/ 69
36
/ 69
37
/ 69
38
/ 69
39
/ 69
40
/ 69
41
/ 69
42
/ 69
43
/ 69
44
/ 69
45
/ 69
46
/ 69
47
/ 69
48
/ 69
49
/ 69
50
/ 69
51
/ 69
52
/ 69
53
/ 69
54
/ 69
55
/ 69
56
/ 69
57
/ 69
58
/ 69
59
/ 69
60
/ 69
61
/ 69
62
/ 69
63
/ 69
64
/ 69
65
/ 69
66
/ 69
67
/ 69
68
/ 69
69
/ 69
More Related Content
KEY
一人でもはじめるGitでバージョン管理
by
Takafumi Yoshida
PPTX
Git & GitHub & kintone でウルトラハッピー!
by
ymmt
PDF
はじめてのGit forデザイナー&コーダー
by
Saeko Yamamoto
PDF
会社にGitHub Enterpriseを導入してみた話
by
Shuji Yamada
KEY
Yapc2012資料
by
matsuo kenji
PDF
Dockerで楽しむ自宅サーバ
by
祐磨 堀
PDF
Git勉強会
by
masahiro_minami
PDF
GitHubで学ぶバージョン管理
by
Masafumi Yokoyama
一人でもはじめるGitでバージョン管理
by
Takafumi Yoshida
Git & GitHub & kintone でウルトラハッピー!
by
ymmt
はじめてのGit forデザイナー&コーダー
by
Saeko Yamamoto
会社にGitHub Enterpriseを導入してみた話
by
Shuji Yamada
Yapc2012資料
by
matsuo kenji
Dockerで楽しむ自宅サーバ
by
祐磨 堀
Git勉強会
by
masahiro_minami
GitHubで学ぶバージョン管理
by
Masafumi Yokoyama
What's hot
PDF
Wantedly - 世界一"いいね!"される 求人サイトの作り方
by
Yoshinori Kawasaki
PDF
GoによるWebアプリ開発のキホン
by
Akihiko Horiuchi
PDF
Eureka go 2015_12_12
by
matsuo kenji
PDF
ホームディレクトリに埋もれた便利なコードをさがせ!
by
Yohei Fushii
PDF
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
by
Issei Hiraoka
PDF
いつやるの?Git入門 v1.1.0
by
Masakazu Matsushita
PDF
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
by
Taisuke Inoue
PPTX
2150117 infrastructure.nagoya
by
Hiroki Ito
PDF
Github of project
by
Ito Kunihiko
PDF
Gws 20141024 gradle_intro
by
Nobuhiro Sue
PDF
サーバー&インフラ勉強会 Vol.1 いとー
by
krs_mizuno
PDF
Androidの新ビルドシステム
by
l_b__
ODP
今流行りのウェブアプリ開発環境Yeoman
by
tomo_masakura
PPT
Git紹介
by
Seiji Ochiai
PDF
Github codespaces すごく良い。もうこれで 十分なんじゃという話
by
xiidec
PDF
Rails on Dockerとの戦い
by
Yasutomo Uemori
PDF
Gitの使い方あれこれ
by
よしだ あつし
PDF
Multibranch pipelineでいろいろ学んだこと
by
aha_oretama
PDF
Write slides and books in VSCode + Markdown
by
ロフト くん
PDF
Vue.js with Go
by
Kazuhiro Kubota
Wantedly - 世界一"いいね!"される 求人サイトの作り方
by
Yoshinori Kawasaki
GoによるWebアプリ開発のキホン
by
Akihiko Horiuchi
Eureka go 2015_12_12
by
matsuo kenji
ホームディレクトリに埋もれた便利なコードをさがせ!
by
Yohei Fushii
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
by
Issei Hiraoka
いつやるの?Git入門 v1.1.0
by
Masakazu Matsushita
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
by
Taisuke Inoue
2150117 infrastructure.nagoya
by
Hiroki Ito
Github of project
by
Ito Kunihiko
Gws 20141024 gradle_intro
by
Nobuhiro Sue
サーバー&インフラ勉強会 Vol.1 いとー
by
krs_mizuno
Androidの新ビルドシステム
by
l_b__
今流行りのウェブアプリ開発環境Yeoman
by
tomo_masakura
Git紹介
by
Seiji Ochiai
Github codespaces すごく良い。もうこれで 十分なんじゃという話
by
xiidec
Rails on Dockerとの戦い
by
Yasutomo Uemori
Gitの使い方あれこれ
by
よしだ あつし
Multibranch pipelineでいろいろ学んだこと
by
aha_oretama
Write slides and books in VSCode + Markdown
by
ロフト くん
Vue.js with Go
by
Kazuhiro Kubota
Viewers also liked
PDF
reveal.js 3.0.0
by
Hakim El Hattab
PDF
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
by
MOCKS | Yuta Morishige
PDF
Oppai-Detect 3
by
Yusuke Wada
PDF
東京脱出計画中
by
Yusuke Wada
PPTX
簡易デプロイツール(スクリプト)を作ってみた話
by
yokoda_toshiaki
PDF
PDLで遊んでみた Yomitan.pm #5 LT
by
yokoda_toshiaki
PDF
Cinnamon - simple deploy tool
by
Yuki Shibazaki
PDF
トーナメントは運か実力か
by
Kazuro Fukuhara
PDF
いかにしてエロ動画を検索するか GXEB #03
by
Yusuke Wada
PDF
HTML5でオフラインWebアプリケーションを作ろう
by
yoshikawa_t
PDF
How to make keynote like presentation with markdown
by
Hiroaki NAKADA
PDF
Decksetがよかった話
by
Kohki Miki
KEY
Chrome osとgo言語からgoogleの今後を妄想してみる
by
Masakazu Muraoka
PDF
らくちん Go言語
by
株式会社YEBIS.XYZ
PDF
Go言語と過ごした一週間
by
Shintaro Kitayama
PPTX
Github第8章
by
Yuto Suzuki
PDF
Goを知る
by
Hirokazu Fukami
PDF
alphawing meets heroku
by
Kyosuke Kameda
PDF
Golang, make and robotics #gocon
by
Hideyuki TAKEI
PDF
Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)
by
deris0126
reveal.js 3.0.0
by
Hakim El Hattab
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
by
MOCKS | Yuta Morishige
Oppai-Detect 3
by
Yusuke Wada
東京脱出計画中
by
Yusuke Wada
簡易デプロイツール(スクリプト)を作ってみた話
by
yokoda_toshiaki
PDLで遊んでみた Yomitan.pm #5 LT
by
yokoda_toshiaki
Cinnamon - simple deploy tool
by
Yuki Shibazaki
トーナメントは運か実力か
by
Kazuro Fukuhara
いかにしてエロ動画を検索するか GXEB #03
by
Yusuke Wada
HTML5でオフラインWebアプリケーションを作ろう
by
yoshikawa_t
How to make keynote like presentation with markdown
by
Hiroaki NAKADA
Decksetがよかった話
by
Kohki Miki
Chrome osとgo言語からgoogleの今後を妄想してみる
by
Masakazu Muraoka
らくちん Go言語
by
株式会社YEBIS.XYZ
Go言語と過ごした一週間
by
Shintaro Kitayama
Github第8章
by
Yuto Suzuki
Goを知る
by
Hirokazu Fukami
alphawing meets heroku
by
Kyosuke Kameda
Golang, make and robotics #gocon
by
Hideyuki TAKEI
Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)
by
deris0126
More from Yusuke Wada
PDF
僕がつくった 70個のうちの48個のWebサービス達
by
Yusuke Wada
PDF
Extreme remote working
by
Yusuke Wada
PDF
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
by
Yusuke Wada
PDF
創造のプロセスを回せ!v0.01
by
Yusuke Wada
PDF
It's not only about "REMOTE"
by
Yusuke Wada
PDF
事故からはじまるスケールチャンス
by
Yusuke Wada
PDF
Google BigQueryを使ってみた!
by
Yusuke Wada
PDF
Webサービスのコンテンツパターン 或いはデータの活⽤
by
Yusuke Wada
PDF
とある Perl Monger の働き方
by
Yusuke Wada
PDF
5 minutes - YAPC::Asia Tokyo 2014
by
Yusuke Wada
PDF
Podcastをカジュアルに 支える技術
by
Yusuke Wada
PDF
The master plan ofscaling a web application
by
Yusuke Wada
PDF
そのWebサービスは本当に「あたりまえ」だったのか?
by
Yusuke Wada
PDF
Mojoliciousでつくる! Webアプリ入門
by
Yusuke Wada
PDF
10 things to learn from Bokete
by
Yusuke Wada
PDF
Inside Bokete: Web Application with Mojolicious and others
by
Yusuke Wada
PDF
僕らの履歴書
by
Yusuke Wada
PDF
僕らがWebサービスをつくる5つの理由
by
Yusuke Wada
PDF
僕らがつくるための 「5W」について
by
Yusuke Wada
PDF
「Webサービスのつくり方」 のつくり方
by
Yusuke Wada
僕がつくった 70個のうちの48個のWebサービス達
by
Yusuke Wada
Extreme remote working
by
Yusuke Wada
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
by
Yusuke Wada
創造のプロセスを回せ!v0.01
by
Yusuke Wada
It's not only about "REMOTE"
by
Yusuke Wada
事故からはじまるスケールチャンス
by
Yusuke Wada
Google BigQueryを使ってみた!
by
Yusuke Wada
Webサービスのコンテンツパターン 或いはデータの活⽤
by
Yusuke Wada
とある Perl Monger の働き方
by
Yusuke Wada
5 minutes - YAPC::Asia Tokyo 2014
by
Yusuke Wada
Podcastをカジュアルに 支える技術
by
Yusuke Wada
The master plan ofscaling a web application
by
Yusuke Wada
そのWebサービスは本当に「あたりまえ」だったのか?
by
Yusuke Wada
Mojoliciousでつくる! Webアプリ入門
by
Yusuke Wada
10 things to learn from Bokete
by
Yusuke Wada
Inside Bokete: Web Application with Mojolicious and others
by
Yusuke Wada
僕らの履歴書
by
Yusuke Wada
僕らがWebサービスをつくる5つの理由
by
Yusuke Wada
僕らがつくるための 「5W」について
by
Yusuke Wada
「Webサービスのつくり方」 のつくり方
by
Yusuke Wada
Recently uploaded
PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
PPTX
ddevについて .
by
iPride Co., Ltd.
PDF
Drupal Recipes 解説 .
by
iPride Co., Ltd.
PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
PDF
さくらインターネットの今 法林リージョン:さくらのAIとか GPUとかイベントとか 〜2026年もバク進します!〜
by
法林浩之
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
ddevについて .
by
iPride Co., Ltd.
Drupal Recipes 解説 .
by
iPride Co., Ltd.
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
さくらインターネットの今 法林リージョン:さくらのAIとか GPUとかイベントとか 〜2026年もバク進します!〜
by
法林浩之
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
スッとGoを取り入れる
1.
スッとGoを取り入れる Go 1.6 Release
Party 2016-02-17 Hatena Inc. Tokyo Office Yusuke Wada a.k.a. yusukebe
2.
自己紹介 • Yusuke Wada •
@yusukebe • http://blog.yusuke.be/ • Wadit CEO / Omoroki CTO • Web Application Developer • Technical Advisor • Co-founder of bokete.jp • Perl書いてる...
3.
本日のテーマ
4.
Goを本番投入するまでの 道のりとその他
5.
現在の主なGoプロダクト 2個
6.
その1 bokete/webstamp
7.
bokete.jp
8.
お題画像+テキスト = ボケ
9.
L○NEスタンプ風画像を ダウンロードできる
10.
これ
12.
その2 yusukebe/revealgo
13.
Markdown driven presentation
tool
14.
revealgo コマンドを実行
15.
立ち上がったサーバをブラウザで開く
16.
まさかの GitHub Trending
入り
17.
\(^o^)/
18.
ところがこのスライドは...
19.
Keynote製
20.
とはいえ... $ go get
github.com/yusukebe/cmd/revealgo
21.
Goを取り入れるため 最初にやったこと
22.
✕コードを書く https://flic.kr/p/81RqH3
23.
✕コードを読む https://flic.kr/p/aGjVq8
24.
答え...
25.
⃝bradfitzと話す http://twitter.com/bradfitz
26.
去年のYAPC::Asiaで bradfitzがボッチだったので...
27.
ゆ:Hiぶらっど!君が書いたギアマンは最高にクールだね ぶ:どんな用途でギアマンを使ってるんだい? ...(中略)... ゆ:ところでGoはどうなんだ? ぶ:まさに今Goでプログラムを書いてるところだ ゆ:Goのいい所を教えてくれよ ...(中略)... ぶ:こうやればAndroid向けのバイナリもコンパイル出来るぜ ゆ:オーケー!Goを使ってみるよ!
28.
予めGo本体の開発メンバである bradfitz氏と「サシで」話して モチベーションが上がった
29.
2番目にやったこと
31.
3番目にやったこと
32.
スクリプト的に Go言語を利用する
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接続処理もロックしないで便利!
35.
そして調子に乗って...
36.
goroutine走らせまくって 爆死 https://flic.kr/p/6TorAy
37.
どこからGolang化 していくか?
38.
ザックリな Boketeアーキテクチャ
39.
Web API サーバ PC版Web
スマホ版Web iOSアプリ Androidアプリ その他フロント... コアロジック 各種サービス APIサーバをGoで書き直す必要も無いので特化したサービスをGoで!
40.
Web API サーバ PC版Web
スマホ版Web iOSアプリ Androidアプリ その他フロント... コアロジック 各種サービス スタンプ画像生成サーバがあった! スタンプ
41.
http://stamp.bokete.jp/{boke_id}.png
43.
Web API サーバ スタンプサーバ TTL付きCDN クライアント URLのパスに基づきボケIDをゲット ボケ情報取得 お題画像も取得しつつ スタンプ
風に画像を生成しサーブ ボケが削除されることも考慮しつつ TTLを設定したCDNが画像を配信 シェア等してもらう
44.
Perl製スタンプサーバを Goでリプレース
45.
git log -p
cpanfile -requires 'Lingua::JA::Fold'; -requires 'Imager'; -requires 'Imager::DTP::Textbox::Horizontal'; Lingua::JA::Fold - 禁則処理を含む日本語文字列の折り返し Imager - 画像処理モジュール Imager::DTP::Horizontal - テキスト画像の配置
46.
じゃあレポジトリつくって 画像生成サーバ書くか
47.
(´・ω・`)
48.
次にやったこと
49.
目的に合わせてそれを検証する スニペットを書いてく
51.
自信がついたらいよいよ スタンプサーバの実装
52.
出来た構成
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とはいえ主にテキスト処理
54.
ある程度検証後デプロイ
55.
結果こうなった • デプロイツールとしてAnsible • リモートレポジトリはGitHubのPrivate •
Ansibleでgit cloneする時はローカルの をforward • GOPATHのsrc以下にAnsibleでプロジェクトをgit clone • go get [とってきたプロジェクトのパス] • GOPATHのbin以下に出来たバイナリを使って起動
56.
リリースした結果
57.
preforkしないからメモリ使用量少ない! CPUフルフルに使い切る! すごい!!
58.
と思ったら...
59.
メモリ膨れてる??
60.
この時少しでも Goが悪いと考えてしまった 僕をお許し下さい...
61.
実は禁則処理ロジックで 無限ループを生む可能性があった (*ノω・*)テヘ
62.
さらに改良
63.
yusukebe/go-pngquant
64.
gophper.png pngquant --speed 10 40.3KB
15.1KB!!
65.
pngquantは標準入力からも 受け取れて標準出力にも 書き出せる
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 }
67.
\(^o^)/
68.
GO引にまとめ
69.
Goを取り入れる • 段階を追っていけばスッと取り入れられた • 結果スタンプサーバの画像サイズが縮小した •
リソースの節約 • 最初は特化したサービスのリプレースから • 次は新アプリをGoで書いてみたい • たぶん... 悪いのはGoじゃない
Download