Submit Search
Upload
オススメの標準・準標準パッケージ20選
•
9 likes
•
14,255 views
Takuya Ueda
Follow
Go言語LT大会で発表した資料です。 https://go-beginners.connpass.com/event/55768/
Read less
Read more
Technology
Report
Share
Report
Share
1 of 26
Download now
Download to read offline
Recommended
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
例外設計における大罪
例外設計における大罪
Takuto Wada
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech
こわくない Git
こわくない Git
Kota Saito
Recommended
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
例外設計における大罪
例外設計における大罪
Takuto Wada
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech
こわくない Git
こわくない Git
Kota Saito
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
Go入門
Go入門
Takuya Ueda
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話
NipponAlgorithm
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
初心者がGoでcliツール作ってみて学んだこと
初心者がGoでcliツール作ってみて学んだこと
Shota Inoue
わりとディープ?同値分割↔境界値分析
わりとディープ?同値分割↔境界値分析
scarletplover
More Related Content
What's hot
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
Go入門
Go入門
Takuya Ueda
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話
NipponAlgorithm
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
What's hot
(20)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
TLS, HTTP/2演習
TLS, HTTP/2演習
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Go入門
Go入門
DockerとPodmanの比較
DockerとPodmanの比較
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Viewers also liked
初心者がGoでcliツール作ってみて学んだこと
初心者がGoでcliツール作ってみて学んだこと
Shota Inoue
わりとディープ?同値分割↔境界値分析
わりとディープ?同値分割↔境界値分析
scarletplover
Don't Use Reflect - Go 1.7 release party 2016
Don't Use Reflect - Go 1.7 release party 2016
lestrrat
条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
Takuya Ueda
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Norito Agetsuma
HTTP2 RFC 発行記念祝賀会
HTTP2 RFC 発行記念祝賀会
Jxck Jxck
粗探しをしてGoのコントリビューターになる方法
粗探しをしてGoのコントリビューターになる方法
Takuya Ueda
Go1.8 for Google App Engine
Go1.8 for Google App Engine
Takuya Ueda
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse Binding
Takuya Ueda
Go静的解析ハンズオン
Go静的解析ハンズオン
Takuya Ueda
GoによるiOSアプリの開発
GoによるiOSアプリの開発
Takuya Ueda
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Takuya Ueda
うしちゃん WebRTC Chat on SkyWayの開発コードw
うしちゃん WebRTC Chat on SkyWayの開発コードw
Kensaku Komatsu
Static Analysis in Go
Static Analysis in Go
Takuya Ueda
goパッケージで型情報を用いたソースコード検索を実現する
goパッケージで型情報を用いたソースコード検索を実現する
Takuya Ueda
Cloud Functionsの紹介
Cloud Functionsの紹介
Takuya Ueda
Namespace API を用いたマルチテナント型 Web アプリの実践
Namespace API を用いたマルチテナント型 Web アプリの実践
Takuya Ueda
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用
Takuya Ueda
Cloud functionsの紹介
Cloud functionsの紹介
Takuya Ueda
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
Viewers also liked
(20)
初心者がGoでcliツール作ってみて学んだこと
初心者がGoでcliツール作ってみて学んだこと
わりとディープ?同値分割↔境界値分析
わりとディープ?同値分割↔境界値分析
Don't Use Reflect - Go 1.7 release party 2016
Don't Use Reflect - Go 1.7 release party 2016
条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2
HTTP2 RFC 発行記念祝賀会
HTTP2 RFC 発行記念祝賀会
粗探しをしてGoのコントリビューターになる方法
粗探しをしてGoのコントリビューターになる方法
Go1.8 for Google App Engine
Go1.8 for Google App Engine
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse Binding
Go静的解析ハンズオン
Go静的解析ハンズオン
GoによるiOSアプリの開発
GoによるiOSアプリの開発
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
うしちゃん WebRTC Chat on SkyWayの開発コードw
うしちゃん WebRTC Chat on SkyWayの開発コードw
Static Analysis in Go
Static Analysis in Go
goパッケージで型情報を用いたソースコード検索を実現する
goパッケージで型情報を用いたソースコード検索を実現する
Cloud Functionsの紹介
Cloud Functionsの紹介
Namespace API を用いたマルチテナント型 Web アプリの実践
Namespace API を用いたマルチテナント型 Web アプリの実践
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用
Cloud functionsの紹介
Cloud functionsの紹介
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Similar to オススメの標準・準標準パッケージ20選
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
Takuya Ueda
GoでEPC作って本番運用している話
GoでEPC作って本番運用している話
雄也 日下部
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発
Takuya Ueda
Go mobileでモバイルアプリを作ろう
Go mobileでモバイルアプリを作ろう
Takuya Ueda
Groovy Grails eXchage 2014 報告
Groovy Grails eXchage 2014 報告
Tsuyoshi Yamamoto
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
Takuya Ueda
実践Go ツールの作成から配布まで
実践Go ツールの作成から配布まで
Yusuke Miyake
Easy scripting in Go
Easy scripting in Go
naoty_bot
Build insider offline session チームでのgit
Build insider offline session チームでのgit
Tadahiro Ishisaka
Google Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめ
Takuya Ueda
Goだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろう
Takuya Ueda
Gopenflow demo v1
Gopenflow demo v1
Hiroaki Kawai
Go言語ってどんな言語? 導入実績や気になるトレンド
Go言語ってどんな言語? 導入実績や気になるトレンド
Atsushi Yasuda
エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法
Takuya Ueda
分散バージョン管理システムって何なん 20101218
分散バージョン管理システムって何なん 20101218
Takashi Okamoto
Go一緒にいかが?
Go一緒にいかが?
Ryuji Iwata
Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)
Makoto Kawano
Gitの紹介
Gitの紹介
Shoot Morii
Gopher Fest 2017参加レポート
Gopher Fest 2017参加レポート
Takuya Ueda
GAE/GoでWebアプリ開発入門
GAE/GoでWebアプリ開発入門
Takuya Ueda
Similar to オススメの標準・準標準パッケージ20選
(20)
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
GoでEPC作って本番運用している話
GoでEPC作って本番運用している話
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発
Go mobileでモバイルアプリを作ろう
Go mobileでモバイルアプリを作ろう
Groovy Grails eXchage 2014 報告
Groovy Grails eXchage 2014 報告
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
実践Go ツールの作成から配布まで
実践Go ツールの作成から配布まで
Easy scripting in Go
Easy scripting in Go
Build insider offline session チームでのgit
Build insider offline session チームでのgit
Google Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめ
Goだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろう
Gopenflow demo v1
Gopenflow demo v1
Go言語ってどんな言語? 導入実績や気になるトレンド
Go言語ってどんな言語? 導入実績や気になるトレンド
エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法
分散バージョン管理システムって何なん 20101218
分散バージョン管理システムって何なん 20101218
Go一緒にいかが?
Go一緒にいかが?
Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)
Gitの紹介
Gitの紹介
Gopher Fest 2017参加レポート
Gopher Fest 2017参加レポート
GAE/GoでWebアプリ開発入門
GAE/GoでWebアプリ開発入門
More from Takuya Ueda
Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −
Takuya Ueda
WebAssembly with Go
WebAssembly with Go
Takuya Ueda
GAE/Goとsyncパッケージ
GAE/Goとsyncパッケージ
Takuya Ueda
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発
Takuya Ueda
そうだ、Goを始めよう
そうだ、Goを始めよう
Takuya Ueda
マスター・オブ・goパッケージ
マスター・オブ・goパッケージ
Takuya Ueda
メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新
Takuya Ueda
Go Friday 傑作選
Go Friday 傑作選
Takuya Ueda
エキスパートGo
エキスパートGo
Takuya Ueda
GAE/GoでLINE Messaging API を使う
GAE/GoでLINE Messaging API を使う
Takuya Ueda
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
Takuya Ueda
More from Takuya Ueda
(11)
Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −
WebAssembly with Go
WebAssembly with Go
GAE/Goとsyncパッケージ
GAE/Goとsyncパッケージ
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発
そうだ、Goを始めよう
そうだ、Goを始めよう
マスター・オブ・goパッケージ
マスター・オブ・goパッケージ
メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新
Go Friday 傑作選
Go Friday 傑作選
エキスパートGo
エキスパートGo
GAE/GoでLINE Messaging API を使う
GAE/GoでLINE Messaging API を使う
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
Recently uploaded
新人研修 後半 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
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Recently uploaded
(10)
新人研修 後半 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
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
オススメの標準・準標準パッケージ20選
1.
オススメの 標準・準標準 パッケージ20選 2017/06/05(月) Go言語LT大会 The Go gopher
was designed by Renee French. The gopher stickers was made by Takuya Ueda. Licensed under the Creative Commons 3.0 Attributions license.
2.
自己紹介 メルカリ/ソウゾウ 上田拓也 twitter: @tenntenn ■ コミュニティ活動 Google
Cloud Platform User Group (GCPUG) Tokyo Goビギナーズ golang.tokyo Go Conference ■ 業務 GAE/Goでメルカリカウルを作ってます GoやGCPコミュニティを盛り上げる仕事 Gopherを描く仕事(LINEスタンプ) 2
3.
Goの標準パッケージ ■ さまざまな機能が提供されている ● HTTPサーバ/クライアント ●
文字列処理 ● 暗号化 ● 画像処理 3 $ go version go version go1.8.3 darwin/amd64 $ go list std | grep -v vendor | wc -l 161 ■ かなりの数のパッケージがある
4.
Goの準標準パッケージ ■ golang.org/xで提供されるパッケージ ● https://godoc.org/-/subrepo ●
サーバ類 ● 文字列処理 ● 画像処理 4 ■ かなりの数のパッケージがある ● 450パッケージ以上はある
5.
1.fmt パッケージ ■ 書式付きプリント機能を提供する ●
%T,%q,%vあたりが便利 ○ https://play.golang.org/p/MLNmJu40l9 ● %[1]dとかでN番目の値が出せる ○ https://play.golang.org/p/n2hwezLMS8 ● fmt.Stringerが便利 ○ https://play.golang.org/p/QLzowzeU15 5
6.
2.io パッケージ ■ IO関係の基本的な型が定義されている ●
io.Readerとio.Writerが強力 ○ インタフェースの良い例 ● io.TeeReaderとかもあり便利 ○ https://play.golang.org/p/mHmstVuvfG 6
7.
3.io/ioutil パッケージ ■ IO関係の便利関数がある ●
ioutilという名前が与えてくれる勇気 ○ utilって名前はよくない ○ 文脈が伴えばOK ● NopCloserが便利 ○ https://play.golang.org/p/EkAbmCZqcH ● ReadAllはあんまり使わない ○ ストリームのままやろう 7
8.
4.strings パッケージ ■ 文字列に関する処理を提供 ●
置換とか連結とか ○ https://play.golang.org/p/rMsm_u_TEH ● strings.Readerが便利 ○ 文字列をio.Readerに変換してくれる ● strings.Fieldsが便利 ○ ホワイトスペースでいい感じに区切ってくれる ○ https://play.golang.org/p/BtEqaBQWIR ○ strings.FieldsFuncもある 8
9.
5.bytes パッケージ ■ stringsパッケージの[]byte版 ●
stringsにあるものはだいたいある ● bytes.Readerが便利 ○ []byteをio.Readerに変換できる ● bytes.Bufferが便利 ○ io.Readerとio.Writerを実装している ○ ゼロ値で使える ○ https://play.golang.org/p/w2BtSCUg1w 9
10.
6.bufio パッケージ ■ バッファリングされたIO機能を提供 ●
bufio.Scannerが便利 ○ https://play.golang.org/p/34k4uJBIm3 ○ 1行ずつ読み込むのに重宝する ● bufio.SplitFuncでカスタマイズ ○ https://play.golang.org/p/OXtPVl4kae 10
11.
7.encoding/binary パッケージ ■ バイナリエンコードの処理を提供する ●
構造体とバイト列をマッピングできる ○ https://play.golang.org/p/o48Yv7hk-h ● Go1.9でmath/bitsが入る ○ ビット演算系の便利関数 ○ http://tip.golang.org/pkg/math/bits/ 11
12.
8.x/text パッケージ ■ テキスト処理などを提供する ●
日本語の文字コードに対応 ○ https://golang.org/x/text/encoding/japanese ○ EUCJP, ISO2022JP, ShiftJIS に対応 ● 多言語化の機能を提供 ○ https://godoc.org/golang.org/x/text/language ○ https://godoc.org/golang.org/x/text/currency ● tranform.Transformerが便利 ○ ストリームのまま変換できる ○ https://godoc.org/github.com/tenntenn/text/transf orm 12
13.
9.flag パッケージ ■ コマンドライン引数に関する機能を提供 ●
オプションパースが便利 ● flag.Argsでオプション以外の引数が取れる ● ポインタを使ったいい例 ○ https://golang.org/pkg/flag/ 13
14.
10.path/filepath パッケージ ■ ファイルパスに関係する処理を提供する ●
¥や/を意識しないでいい ○ https://play.golang.org/p/MtybjFBVza ○ Windowsでもちゃんと動く ● OS関係ない場合はpathを使う ● filepath.Walkが便利 ○ 再帰的にディレクトリを読んでいく ○ 1階層だけならioutil.ReadDirが便利 14
15.
11.text/template パッケージ ■ テンプレート機能を提供 ●
html/templateはHTML特化版 ● コマンドライン引数に使うと便利 ○ https://dave.cheney.net/2014/09/14/go-list-your-s wiss-army-knife ● コードジェネレーションにも便利 ○ go testでも使われている ○ https://github.com/golang/go/blob/master/src/cmd /go/internal/test/test.go#L1500 15
16.
12.testing パッケージ ■ テスティングライブラリ ●
go testでユニットテストが実行できる ● Go1.7からサブテストが可能 ○ https://blog.golang.org/subtests ● テストを並列で実行可能 ○ t.Paralellを使う ● race detectorが使える ○ Goルーチン間で同じ変数にアクセスしてないか ● カバレッジがとれる ○ -coverをつけて実行 16
17.
13.net/http パッケージ ■ HTTPサーバ/クライアントを提供する ●
http.Handlerを実装すればよい ● インタフェース実装の良い例 ○ http.HandlerFuncは関数に実装させている ○ インタフェースの実装パターン ● 重量なWebフレームワークは必要ない ○ ルーティングくらい ○ 学習しやすい ● テストしやすい 17
18.
14.net/http/httptest パッケージ ■ HTTPサーバのテストで使える機能を提供 ●
http.ResponseWriterがインタフェース である利点を活かしている ○ https://golang.org/pkg/net/http/httptest/#Respons eRecorder ● ハンドラのテストが用意 ● httpdocも便利 ○ https://github.com/mercari/go-httpdoc 18
19.
15.sync パッケージ ■ ロックなどの機能を提供 ●
sync.WaitGroupが便利 ○ https://golang.org/pkg/sync/#example_WaitGroup ○ 複数のGoルーチンの処理を待つことができる ● sync.Onceが便利 ○ https://golang.org/pkg/sync/#example_Once ○ 1回だけ実行したい場合に使える 19
20.
16.context パッケージ ■ コンテキスト機能を提供する ●
複数のGoルーチンをまたいだキャンセル機 能などに使える ○ Go1.7のcontextパッケージ ● context.Contextが強力 ○ インタフェースなので拡張しやすい ● errgroupパッケージも便利 ○ https://godoc.org/golang.org/x/sync/errgroup 20
21.
17.image パッケージ ■画像処理を提供するパッケージ ● image.Imageがインタフェース ○
実装すればなんでも画像となる ● pngやjpeg、gifなどに対応している ● 基本的な機能は提供されている 21
22.
18.x/image パッケージ ■画像処理を提供するパッケージ ● 標準パッケージではたりない機能を提供 ●
いろんな形式に対応している ○ https://godoc.org/golang.org/x/image ● x/image/drawが便利 ○ 描画に関する機能を提供している ○ https://godoc.org/golang.org/x/image/draw ● フォントに関する機能も提供している ○ https://godoc.org/golang.org/x/image/font 22
23.
19.reflect パッケージ ■ リフレクションの機能を提供する ●
https://www.slideshare.net/takuyaueda96 7/2016-go#101 ● structタグにアクセスする唯一の方法 ● 使い所を間違えなければかなり便利 ● 遅いので乱用はいけない ● ちゃんとチェックしてパニックを起こさないよう にする 23
24.
20.go パッケージ ■ 静的解析の機能を提供する ●
goパッケージで簡単に静的解析して世界を 広げよう ● 抽象構文木が取得できる ● 式単位でもパースできる ● 型チェックもできる ● 自作開発ツールも作れる ● 物によっては製品に使える 24
25.
まとめ ■ Goはたくさんのパッケージを提供している ● https://www.slideshare.net/takuyaueda96 7/2016-go#101 ●
色々使ってみると楽しい ● 実装自体も勉強になる ● goやreflectパッケージも食わず嫌いは良 くない 25
26.
Thank you! twitter: @tenntenn Qiita:
tenntenn connpass: tenntenn 26
Download now