Enviar búsqueda
Cargar
Go conference 2017 Lightning talk
•
0 recomendaciones
•
1,936 vistas
M
mokelab
Seguir
2017年3月25日に開催されたGo conference 2017のLTで発表した資料だよ! context.WithValue()、うまく使ってみようね
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 26
Descargar ahora
Descargar para leer sin conexión
Recomendados
Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)
Yuto Takei
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
Yoshifumi Kawai
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
Yoshifumi Kawai
Rx java x retrofit
Rx java x retrofit
Shun Nakahara
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
Yoshifumi Kawai
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Yoshifumi Kawai
linq.js - Linq to Objects for JavaScript
linq.js - Linq to Objects for JavaScript
Yoshifumi Kawai
Recomendados
Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)
Yuto Takei
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
Yoshifumi Kawai
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
Yoshifumi Kawai
Rx java x retrofit
Rx java x retrofit
Shun Nakahara
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
Yoshifumi Kawai
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Yoshifumi Kawai
linq.js - Linq to Objects for JavaScript
linq.js - Linq to Objects for JavaScript
Yoshifumi Kawai
条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
Takuya Ueda
An Internal of LINQ to Objects
An Internal of LINQ to Objects
Yoshifumi Kawai
Reactive Extensionsで非同期処理を簡単に
Reactive Extensionsで非同期処理を簡単に
Yoshifumi Kawai
History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法
History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法
Yoshifumi Kawai
LINQ in Unity
LINQ in Unity
Yoshifumi Kawai
RuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for Unity
Yoshifumi Kawai
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Shoot Morii
Mono is Dead
Mono is Dead
melpon
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
Masahiro Wakame
Rxに入門しようとしている
Rxに入門しようとしている
onotchi_
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWIN
Yoshifumi Kawai
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
hecomi
Async design with Unity3D
Async design with Unity3D
Kouji Hosoda
Introduction to cython
Introduction to cython
Atsuo Ishimoto
UniRx勉強会 reactive extensions inside(公開用)
UniRx勉強会 reactive extensions inside(公開用)
wilfrem
Node handson
Node handson
Makoto Kishimoto
AFNetworking使ってみた
AFNetworking使ってみた
Taro Matsuzawa
async/await のしくみ
async/await のしくみ
信之 岩永
JavaScript経験者のためのGo言語入門
JavaScript経験者のためのGo言語入門
Shohei Arai
こんにちはGroovy
こんにちはGroovy
irof N
Coding in the context era
Coding in the context era
lestrrat
My client wanted their apps synced, and I made it with Go
My client wanted their apps synced, and I made it with Go
Toru Furukawa
Más contenido relacionado
La actualidad más candente
条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
Takuya Ueda
An Internal of LINQ to Objects
An Internal of LINQ to Objects
Yoshifumi Kawai
Reactive Extensionsで非同期処理を簡単に
Reactive Extensionsで非同期処理を簡単に
Yoshifumi Kawai
History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法
History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法
Yoshifumi Kawai
LINQ in Unity
LINQ in Unity
Yoshifumi Kawai
RuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for Unity
Yoshifumi Kawai
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Shoot Morii
Mono is Dead
Mono is Dead
melpon
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
Masahiro Wakame
Rxに入門しようとしている
Rxに入門しようとしている
onotchi_
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWIN
Yoshifumi Kawai
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
hecomi
Async design with Unity3D
Async design with Unity3D
Kouji Hosoda
Introduction to cython
Introduction to cython
Atsuo Ishimoto
UniRx勉強会 reactive extensions inside(公開用)
UniRx勉強会 reactive extensions inside(公開用)
wilfrem
Node handson
Node handson
Makoto Kishimoto
AFNetworking使ってみた
AFNetworking使ってみた
Taro Matsuzawa
async/await のしくみ
async/await のしくみ
信之 岩永
JavaScript経験者のためのGo言語入門
JavaScript経験者のためのGo言語入門
Shohei Arai
こんにちはGroovy
こんにちはGroovy
irof N
La actualidad más candente
(20)
条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
An Internal of LINQ to Objects
An Internal of LINQ to Objects
Reactive Extensionsで非同期処理を簡単に
Reactive Extensionsで非同期処理を簡単に
History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法
History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法
LINQ in Unity
LINQ in Unity
RuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for Unity
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Mono is Dead
Mono is Dead
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
Rxに入門しようとしている
Rxに入門しようとしている
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWIN
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Async design with Unity3D
Async design with Unity3D
Introduction to cython
Introduction to cython
UniRx勉強会 reactive extensions inside(公開用)
UniRx勉強会 reactive extensions inside(公開用)
Node handson
Node handson
AFNetworking使ってみた
AFNetworking使ってみた
async/await のしくみ
async/await のしくみ
JavaScript経験者のためのGo言語入門
JavaScript経験者のためのGo言語入門
こんにちはGroovy
こんにちはGroovy
Destacado
Coding in the context era
Coding in the context era
lestrrat
My client wanted their apps synced, and I made it with Go
My client wanted their apps synced, and I made it with Go
Toru Furukawa
go 1.8 net/http timeouts
go 1.8 net/http timeouts
Yahoo!デベロッパーネットワーク
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Yahoo!デベロッパーネットワーク
Goをカンストさせる話
Goをカンストさせる話
Moriyoshi Koizumi
20171105 go con2017_lt
20171105 go con2017_lt
Keigo Suda
Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察
貴仁 大和屋
GOCON Autumn (Story of our own Monitoring Agent in golang)
GOCON Autumn (Story of our own Monitoring Agent in golang)
Huy Do
Destacado
(8)
Coding in the context era
Coding in the context era
My client wanted their apps synced, and I made it with Go
My client wanted their apps synced, and I made it with Go
go 1.8 net/http timeouts
go 1.8 net/http timeouts
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Goをカンストさせる話
Goをカンストさせる話
20171105 go con2017_lt
20171105 go con2017_lt
Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察
GOCON Autumn (Story of our own Monitoring Agent in golang)
GOCON Autumn (Story of our own Monitoring Agent in golang)
Similar a Go conference 2017 Lightning talk
F#によるFunctional Programming入門
F#によるFunctional Programming入門
bleis tift
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
decode2016
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
Preferred Networks
TypeScript と Visual Studio Code
TypeScript と Visual Studio Code
Akira Inoue
10年目の『エブリスタ』を支える技術
10年目の『エブリスタ』を支える技術
DeNA
Unity C#3からC#6に向けて
Unity C#3からC#6に向けて
onotchi_
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
Taisuke Fukuno
Functional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.js
Shogo Sensui
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration
Kazuki Nakajima
TypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービュー
Akira Inoue
C#6.0の新機能紹介
C#6.0の新機能紹介
Kazunori Hamamoto
速くなければスマフォじゃない - インターンバージョン-
速くなければスマフォじゃない - インターンバージョン-
Kazunari Hara
Titanium Mobile
Titanium Mobile
Naoya Ito
第5回LinkedData勉強会@yayamamo
第5回LinkedData勉強会@yayamamo
yayamamo @ DBCLS Kashiwanoha
React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門
spring_raining
How Smalltalker Works
How Smalltalker Works
Sho Yoshida
OSSから学ぶSwift実践テクニック
OSSから学ぶSwift実践テクニック
庸介 高橋
Tokyo r 25_lt_isobe
Tokyo r 25_lt_isobe
Masayuki Isobe
言語処理系入門10
言語処理系入門10
Kenta Hattori
やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介
fukuoka.ex
Similar a Go conference 2017 Lightning talk
(20)
F#によるFunctional Programming入門
F#によるFunctional Programming入門
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
TypeScript と Visual Studio Code
TypeScript と Visual Studio Code
10年目の『エブリスタ』を支える技術
10年目の『エブリスタ』を支える技術
Unity C#3からC#6に向けて
Unity C#3からC#6に向けて
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
Functional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.js
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration
TypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービュー
C#6.0の新機能紹介
C#6.0の新機能紹介
速くなければスマフォじゃない - インターンバージョン-
速くなければスマフォじゃない - インターンバージョン-
Titanium Mobile
Titanium Mobile
第5回LinkedData勉強会@yayamamo
第5回LinkedData勉強会@yayamamo
React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門
How Smalltalker Works
How Smalltalker Works
OSSから学ぶSwift実践テクニック
OSSから学ぶSwift実践テクニック
Tokyo r 25_lt_isobe
Tokyo r 25_lt_isobe
言語処理系入門10
言語処理系入門10
やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介
Último
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Último
(11)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Go conference 2017 Lightning talk
1.
Go 1.7のContextを net/httpで使ってみた Go conference
2017 @fkm / @mokelab
2.
3.
● スマホアプリを書いたり ● レクチャーしたり ●
情報発信したり 何やってるの?
4.
● グッズもあるよ♪ 何やってるの?
5.
Context とは?
6.
リクエストの キャンセル用 インターフェース
7.
は、@lestrratさんが きっと説明済み。。。
8.
そのリクエストに 関するデータを 保存できる
9.
WithValue()
10.
c := r.Context() c
= context.WithValue( c, "name", // キー "moke", // 値 ) いれる
11.
c := r.Context() name
:= c.Value("name") // nameは // interface{} or nil とってくる
12.
// interface{}なので。。。 name, ok
:= c.Value("name").(string) if !ok { // エラーレスポンス } とってくる
13.
現実の 課題
14.
func myHandler(w, r)
{ contentType := ... auth := ... accept := ... // メインの処理 } とあるHandler
15.
func getUserHandler(w, r)
{ contentType := ... auth := ... accept := ... // メインの処理 } 別のHandler 前処理
16.
こんな風にしたい Request 前処理 メインの 処理 エラー インターフェースが 変わる(><)
17.
Contextの出番 Request 前処理 メインの 処理 インターフェースは そのまま Context
18.
ライブラリ書いてみた
19.
イメージ Request メインの 処理 Context 取得 書き込み
20.
リクエストに 関する情報だけ いれるべし
21.
// GET /users/{id}
用 handler := hop.Operations( hop.GetContentType, hop.GetPathString("id"), )(mainHandler) コードは?
22.
// getter関数で // 前処理の結果を取ってくる func
mainHandler(w, r) { contentType := hop.ContentType(r.Context()) ... } コードは?
23.
handler := hop.Operations( hop.GetContentType, hop.GetPathString("id"), )(mainHandler) 何がいいの? 関数!
24.
intとかstringとかいれると 怒られるよ $ golint main.go:10:6: should
not use basic type string as key in context.WithValue WithValueのキー
25.
別名をつければいいよ type cKey string const
keyID cKey = "id" c = context.WithValue(c, keyID, "id1234") WithValueのキー
26.
素敵な Contextライフを!
Descargar ahora