Enviar búsqueda
Cargar
スッとGoを取り入れる
•
17 recomendaciones
•
23,517 vistas
Yusuke Wada
Seguir
Go 1.6 Release Party 2016-02-17 Hatena Inc. Tokyo Office Yusuke Wada a.k.a. yusukebe
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 69
Descargar ahora
Descargar para leer sin conexión
Recomendados
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
Takafumi Yoshida
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
ymmt
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダー
Saeko Yamamoto
会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話
Shuji Yamada
Yapc2012資料
Yapc2012資料
matsuo kenji
Dockerで楽しむ自宅サーバ
Dockerで楽しむ自宅サーバ
祐磨 堀
Git勉強会
Git勉強会
masahiro_minami
GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理
Masafumi Yokoyama
Recomendados
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
Takafumi Yoshida
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
ymmt
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダー
Saeko Yamamoto
会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話
Shuji Yamada
Yapc2012資料
Yapc2012資料
matsuo kenji
Dockerで楽しむ自宅サーバ
Dockerで楽しむ自宅サーバ
祐磨 堀
Git勉強会
Git勉強会
masahiro_minami
GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理
Masafumi Yokoyama
Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方
Yoshinori Kawasaki
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
Eureka go 2015_12_12
Eureka go 2015_12_12
matsuo kenji
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
Yohei Fushii
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
Issei Hiraoka
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
Masakazu Matsushita
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
Taisuke Inoue
2150117 infrastructure.nagoya
2150117 infrastructure.nagoya
Hiroki Ito
Github of project
Github of project
Ito Kunihiko
Gws 20141024 gradle_intro
Gws 20141024 gradle_intro
Nobuhiro Sue
サーバー&インフラ勉強会 Vol.1 いとー
サーバー&インフラ勉強会 Vol.1 いとー
krs_mizuno
Androidの新ビルドシステム
Androidの新ビルドシステム
l_b__
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
Git紹介
Git紹介
Seiji Ochiai
Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話
xiidec
Rails on Dockerとの戦い
Rails on Dockerとの戦い
Yasutomo Uemori
Gitの使い方あれこれ
Gitの使い方あれこれ
よしだ あつし
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
aha_oretama
Write slides and books in VSCode + Markdown
Write slides and books in VSCode + Markdown
ロフト くん
Vue.js with Go
Vue.js with Go
Kazuhiro Kubota
reveal.js 3.0.0
reveal.js 3.0.0
Hakim El Hattab
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
MOCKS | Yuta Morishige
Más contenido relacionado
La actualidad más candente
Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方
Yoshinori Kawasaki
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
Eureka go 2015_12_12
Eureka go 2015_12_12
matsuo kenji
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
Yohei Fushii
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
Issei Hiraoka
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
Masakazu Matsushita
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
Taisuke Inoue
2150117 infrastructure.nagoya
2150117 infrastructure.nagoya
Hiroki Ito
Github of project
Github of project
Ito Kunihiko
Gws 20141024 gradle_intro
Gws 20141024 gradle_intro
Nobuhiro Sue
サーバー&インフラ勉強会 Vol.1 いとー
サーバー&インフラ勉強会 Vol.1 いとー
krs_mizuno
Androidの新ビルドシステム
Androidの新ビルドシステム
l_b__
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
Git紹介
Git紹介
Seiji Ochiai
Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話
xiidec
Rails on Dockerとの戦い
Rails on Dockerとの戦い
Yasutomo Uemori
Gitの使い方あれこれ
Gitの使い方あれこれ
よしだ あつし
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
aha_oretama
Write slides and books in VSCode + Markdown
Write slides and books in VSCode + Markdown
ロフト くん
Vue.js with Go
Vue.js with Go
Kazuhiro Kubota
La actualidad más candente
(20)
Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Eureka go 2015_12_12
Eureka go 2015_12_12
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
2150117 infrastructure.nagoya
2150117 infrastructure.nagoya
Github of project
Github of project
Gws 20141024 gradle_intro
Gws 20141024 gradle_intro
サーバー&インフラ勉強会 Vol.1 いとー
サーバー&インフラ勉強会 Vol.1 いとー
Androidの新ビルドシステム
Androidの新ビルドシステム
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
Git紹介
Git紹介
Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話
Rails on Dockerとの戦い
Rails on Dockerとの戦い
Gitの使い方あれこれ
Gitの使い方あれこれ
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
Write slides and books in VSCode + Markdown
Write slides and books in VSCode + Markdown
Vue.js with Go
Vue.js with Go
Destacado
reveal.js 3.0.0
reveal.js 3.0.0
Hakim El Hattab
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
MOCKS | Yuta Morishige
Oppai-Detect 3
Oppai-Detect 3
Yusuke Wada
東京脱出計画中
東京脱出計画中
Yusuke Wada
簡易デプロイツール(スクリプト)を作ってみた話
簡易デプロイツール(スクリプト)を作ってみた話
yokoda_toshiaki
PDLで遊んでみた Yomitan.pm #5 LT
PDLで遊んでみた Yomitan.pm #5 LT
yokoda_toshiaki
Cinnamon - simple deploy tool
Cinnamon - simple deploy tool
Yuki Shibazaki
トーナメントは運か実力か
トーナメントは運か実力か
Kazuro Fukuhara
いかにしてエロ動画を検索するか GXEB #03
いかにしてエロ動画を検索するか GXEB #03
Yusuke Wada
HTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろう
yoshikawa_t
How to make keynote like presentation with markdown
How to make keynote like presentation with markdown
Hiroaki NAKADA
Decksetがよかった話
Decksetがよかった話
Kohki Miki
Chrome osとgo言語からgoogleの今後を妄想してみる
Chrome osとgo言語からgoogleの今後を妄想してみる
Masakazu Muraoka
らくちん Go言語
らくちん Go言語
株式会社YEBIS.XYZ
Go言語と過ごした一週間
Go言語と過ごした一週間
Shintaro Kitayama
Github第8章
Github第8章
Yuto Suzuki
Goを知る
Goを知る
Hirokazu Fukami
alphawing meets heroku
alphawing meets heroku
Kyosuke Kameda
Golang, make and robotics #gocon
Golang, make and robotics #gocon
Hideyuki TAKEI
Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)
Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)
deris0126
Destacado
(20)
reveal.js 3.0.0
reveal.js 3.0.0
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
Oppai-Detect 3
Oppai-Detect 3
東京脱出計画中
東京脱出計画中
簡易デプロイツール(スクリプト)を作ってみた話
簡易デプロイツール(スクリプト)を作ってみた話
PDLで遊んでみた Yomitan.pm #5 LT
PDLで遊んでみた Yomitan.pm #5 LT
Cinnamon - simple deploy tool
Cinnamon - simple deploy tool
トーナメントは運か実力か
トーナメントは運か実力か
いかにしてエロ動画を検索するか GXEB #03
いかにしてエロ動画を検索するか GXEB #03
HTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろう
How to make keynote like presentation with markdown
How to make keynote like presentation with markdown
Decksetがよかった話
Decksetがよかった話
Chrome osとgo言語からgoogleの今後を妄想してみる
Chrome osとgo言語からgoogleの今後を妄想してみる
らくちん Go言語
らくちん Go言語
Go言語と過ごした一週間
Go言語と過ごした一週間
Github第8章
Github第8章
Goを知る
Goを知る
alphawing meets heroku
alphawing meets heroku
Golang, make and robotics #gocon
Golang, make and robotics #gocon
Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)
Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)
Similar a スッとGoを取り入れる
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...
Hiroyuki Ohnaka
Pythonを始めよう
Pythonを始めよう
shouta yoshikai
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
You&I
Swaggerのさわりだけ
Swaggerのさわりだけ
Masakazu Muraoka
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Yoshifumi Kawai
Metahub for github
Metahub for github
Suguru Oho
2017823 pythonを始めよう
2017823 pythonを始めよう
shouta yoshikai
Goodby Hatena, hello Sphinx
Goodby Hatena, hello Sphinx
Kouhei Maeda
North Starアプリ作り,海外コミュニティ,Tips
North Starアプリ作り,海外コミュニティ,Tips
Tasuku Takahashi
粗探しをしてGoのコントリビューターになる方法
粗探しをしてGoのコントリビューターになる方法
Takuya Ueda
[Lt]versionごとにurlを自動生成
[Lt]versionごとにurlを自動生成
shouta yoshikai
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
Masakazu Muraoka
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
Nobuhiro Sue
Gopenflow demo v1
Gopenflow demo v1
Hiroaki Kawai
ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発
schoowebcampus
大規模プロダクト Webpack やっていく気持ち
大規模プロダクト Webpack やっていく気持ち
Takumi Ohashi
メルカリにおける自動化への取り組み (automation-night2 LT)
メルカリにおける自動化への取り組み (automation-night2 LT)
Kat 0gm
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
Daisuke Miyakawa
一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方
Shunji Konishi
Easy scripting in Go
Easy scripting in Go
naoty_bot
Similar a スッとGoを取り入れる
(20)
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...
Pythonを始めよう
Pythonを始めよう
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
Swaggerのさわりだけ
Swaggerのさわりだけ
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Metahub for github
Metahub for github
2017823 pythonを始めよう
2017823 pythonを始めよう
Goodby Hatena, hello Sphinx
Goodby Hatena, hello Sphinx
North Starアプリ作り,海外コミュニティ,Tips
North Starアプリ作り,海外コミュニティ,Tips
粗探しをしてGoのコントリビューターになる方法
粗探しをしてGoのコントリビューターになる方法
[Lt]versionごとにurlを自動生成
[Lt]versionごとにurlを自動生成
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
Gopenflow demo v1
Gopenflow demo v1
ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発
大規模プロダクト Webpack やっていく気持ち
大規模プロダクト Webpack やっていく気持ち
メルカリにおける自動化への取り組み (automation-night2 LT)
メルカリにおける自動化への取り組み (automation-night2 LT)
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方
Easy scripting in Go
Easy scripting in Go
Más de Yusuke Wada
僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達
Yusuke Wada
Extreme remote working
Extreme remote working
Yusuke Wada
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
Yusuke Wada
創造のプロセスを回せ!v0.01
創造のプロセスを回せ!v0.01
Yusuke Wada
It's not only about "REMOTE"
It's not only about "REMOTE"
Yusuke Wada
事故からはじまるスケールチャンス
事故からはじまるスケールチャンス
Yusuke Wada
Google BigQueryを使ってみた!
Google BigQueryを使ってみた!
Yusuke Wada
Webサービスのコンテンツパターン 或いはデータの活⽤
Webサービスのコンテンツパターン 或いはデータの活⽤
Yusuke Wada
とある Perl Monger の働き方
とある Perl Monger の働き方
Yusuke Wada
5 minutes - YAPC::Asia Tokyo 2014
5 minutes - YAPC::Asia Tokyo 2014
Yusuke Wada
Podcastをカジュアルに 支える技術
Podcastをカジュアルに 支える技術
Yusuke Wada
The master plan ofscaling a web application
The master plan ofscaling a web application
Yusuke Wada
そのWebサービスは本当に「あたりまえ」だったのか?
そのWebサービスは本当に「あたりまえ」だったのか?
Yusuke Wada
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
Yusuke Wada
10 things to learn from Bokete
10 things to learn from Bokete
Yusuke Wada
Inside Bokete: Web Application with Mojolicious and others
Inside Bokete: Web Application with Mojolicious and others
Yusuke Wada
僕らの履歴書
僕らの履歴書
Yusuke Wada
僕らがWebサービスをつくる5つの理由
僕らがWebサービスをつくる5つの理由
Yusuke Wada
僕らがつくるための 「5W」について
僕らがつくるための 「5W」について
Yusuke Wada
「Webサービスのつくり方」 のつくり方
「Webサービスのつくり方」 のつくり方
Yusuke Wada
Más de Yusuke Wada
(20)
僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達
Extreme remote working
Extreme remote working
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
創造のプロセスを回せ!v0.01
創造のプロセスを回せ!v0.01
It's not only about "REMOTE"
It's not only about "REMOTE"
事故からはじまるスケールチャンス
事故からはじまるスケールチャンス
Google BigQueryを使ってみた!
Google BigQueryを使ってみた!
Webサービスのコンテンツパターン 或いはデータの活⽤
Webサービスのコンテンツパターン 或いはデータの活⽤
とある Perl Monger の働き方
とある Perl Monger の働き方
5 minutes - YAPC::Asia Tokyo 2014
5 minutes - YAPC::Asia Tokyo 2014
Podcastをカジュアルに 支える技術
Podcastをカジュアルに 支える技術
The master plan ofscaling a web application
The master plan ofscaling a web application
そのWebサービスは本当に「あたりまえ」だったのか?
そのWebサービスは本当に「あたりまえ」だったのか?
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
10 things to learn from Bokete
10 things to learn from Bokete
Inside Bokete: Web Application with Mojolicious and others
Inside Bokete: Web Application with Mojolicious and others
僕らの履歴書
僕らの履歴書
僕らがWebサービスをつくる5つの理由
僕らがWebサービスをつくる5つの理由
僕らがつくるための 「5W」について
僕らがつくるための 「5W」について
「Webサービスのつくり方」 のつくり方
「Webサービスのつくり方」 のつくり方
Último
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
furutsuka
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Último
(9)
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
スッと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.
これ
11.
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番目にやったこと
30.
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
42.
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.
目的に合わせてそれを検証する スニペットを書いてく
50.
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じゃない
Descargar ahora