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
Takuya Ueda
PDF, PPTX
14,474 views
オススメの標準・準標準パッケージ20選
Go言語LT大会で発表した資料です。 https://go-beginners.connpass.com/event/55768/
Technology
◦
Read more
9
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 26
2
/ 26
3
/ 26
4
/ 26
5
/ 26
6
/ 26
7
/ 26
8
/ 26
9
/ 26
10
/ 26
11
/ 26
12
/ 26
13
/ 26
14
/ 26
15
/ 26
16
/ 26
17
/ 26
18
/ 26
19
/ 26
20
/ 26
21
/ 26
22
/ 26
23
/ 26
24
/ 26
25
/ 26
26
/ 26
More Related Content
PDF
例外設計における大罪
by
Takuto Wada
PDF
モジュールの凝集度・結合度・インタフェース
by
Hajime Yanagawa
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
PDF
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
PDF
オブジェクト指向エクササイズのススメ
by
Yoji Kanno
PDF
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
PPTX
Redisの特徴と活用方法について
by
Yuji Otani
例外設計における大罪
by
Takuto Wada
モジュールの凝集度・結合度・インタフェース
by
Hajime Yanagawa
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
オブジェクト指向エクササイズのススメ
by
Yoji Kanno
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
Redisの特徴と活用方法について
by
Yuji Otani
What's hot
PDF
Dockerからcontainerdへの移行
by
Kohei Tokunaga
PDF
Dockerfileを改善するためのBest Practice 2019年版
by
Masahito Zembutsu
PPTX
BuildKitによる高速でセキュアなイメージビルド
by
Akihiro Suda
PDF
DockerとPodmanの比較
by
Akihiro Suda
PDF
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
by
Preferred Networks
PDF
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
PDF
オブジェクト指向できていますか?
by
Moriharu Ohzu
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PDF
継承やめろマジやめろ。 なぜイケないのか 解説する
by
TaishiYamada1
PDF
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
by
Koichiro Matsuoka
PDF
Pythonによる黒魔術入門
by
大樹 小倉
PDF
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
PDF
C/C++プログラマのための開発ツール
by
MITSUNARI Shigeo
PDF
こわくない Git
by
Kota Saito
PPTX
イベント・ソーシングを知る
by
Shuhei Fujita
PDF
Linux女子部 systemd徹底入門
by
Etsuji Nakai
PDF
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
by
Preferred Networks
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
PDF
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
by
増田 亨
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
Dockerからcontainerdへの移行
by
Kohei Tokunaga
Dockerfileを改善するためのBest Practice 2019年版
by
Masahito Zembutsu
BuildKitによる高速でセキュアなイメージビルド
by
Akihiro Suda
DockerとPodmanの比較
by
Akihiro Suda
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
by
Preferred Networks
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
オブジェクト指向できていますか?
by
Moriharu Ohzu
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
継承やめろマジやめろ。 なぜイケないのか 解説する
by
TaishiYamada1
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
by
Koichiro Matsuoka
Pythonによる黒魔術入門
by
大樹 小倉
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
C/C++プログラマのための開発ツール
by
MITSUNARI Shigeo
こわくない Git
by
Kota Saito
イベント・ソーシングを知る
by
Shuhei Fujita
Linux女子部 systemd徹底入門
by
Etsuji Nakai
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
by
Preferred Networks
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
by
増田 亨
マイクロにしすぎた結果がこれだよ!
by
mosa siru
Viewers also liked
PDF
メルカリ・ソウゾウでは どうGoを活用しているのか?
by
Takuya Ueda
PDF
GoによるiOSアプリの開発
by
Takuya Ueda
PDF
Javaトラブルに備えよう #jjug_ccc #ccc_h2
by
Norito Agetsuma
PPTX
わりとディープ?同値分割↔境界値分析
by
scarletplover
PDF
Go静的解析ハンズオン
by
Takuya Ueda
PDF
粗探しをしてGoのコントリビューターになる方法
by
Takuya Ueda
PDF
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
by
Takuya Ueda
PDF
Mobile Apps by Pure Go with Reverse Binding
by
Takuya Ueda
PDF
goパッケージで型情報を用いたソースコード検索を実現する
by
Takuya Ueda
PDF
Cloud Functionsの紹介
by
Takuya Ueda
PDF
Cloud functionsの紹介
by
Takuya Ueda
PDF
Namespace API を用いたマルチテナント型 Web アプリの実践
by
Takuya Ueda
PDF
Go1.8 for Google App Engine
by
Takuya Ueda
PDF
条件式評価器の実装による管理ツールの抽象化
by
Takuya Ueda
PDF
Goにおける静的解析と製品開発への応用
by
Takuya Ueda
PPTX
初心者がGoでcliツール作ってみて学んだこと
by
Shota Inoue
PDF
Static Analysis in Go
by
Takuya Ueda
PPTX
うしちゃん WebRTC Chat on SkyWayの開発コードw
by
Kensaku Komatsu
PDF
HTTP2 RFC 発行記念祝賀会
by
Jxck Jxck
PDF
Don't Use Reflect - Go 1.7 release party 2016
by
lestrrat
メルカリ・ソウゾウでは どうGoを活用しているのか?
by
Takuya Ueda
GoによるiOSアプリの開発
by
Takuya Ueda
Javaトラブルに備えよう #jjug_ccc #ccc_h2
by
Norito Agetsuma
わりとディープ?同値分割↔境界値分析
by
scarletplover
Go静的解析ハンズオン
by
Takuya Ueda
粗探しをしてGoのコントリビューターになる方法
by
Takuya Ueda
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
by
Takuya Ueda
Mobile Apps by Pure Go with Reverse Binding
by
Takuya Ueda
goパッケージで型情報を用いたソースコード検索を実現する
by
Takuya Ueda
Cloud Functionsの紹介
by
Takuya Ueda
Cloud functionsの紹介
by
Takuya Ueda
Namespace API を用いたマルチテナント型 Web アプリの実践
by
Takuya Ueda
Go1.8 for Google App Engine
by
Takuya Ueda
条件式評価器の実装による管理ツールの抽象化
by
Takuya Ueda
Goにおける静的解析と製品開発への応用
by
Takuya Ueda
初心者がGoでcliツール作ってみて学んだこと
by
Shota Inoue
Static Analysis in Go
by
Takuya Ueda
うしちゃん WebRTC Chat on SkyWayの開発コードw
by
Kensaku Komatsu
HTTP2 RFC 発行記念祝賀会
by
Jxck Jxck
Don't Use Reflect - Go 1.7 release party 2016
by
lestrrat
More from Takuya Ueda
PDF
Goでかんたんソースコードの静的解析
by
Takuya Ueda
PDF
エキスパートGo
by
Takuya Ueda
PDF
静的解析を使った開発ツールの開発
by
Takuya Ueda
PDF
Goにおけるバージョン管理の必要性 − vgoについて −
by
Takuya Ueda
PDF
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
by
Takuya Ueda
PDF
GAE/GoでLINE Messaging API を使う
by
Takuya Ueda
PDF
メルカリ カウルのマスタデータの更新
by
Takuya Ueda
PDF
Goでwebアプリを開発してみよう
by
Takuya Ueda
PDF
Google Assistant関係のセッションまとめ
by
Takuya Ueda
PDF
Gopher Fest 2017参加レポート
by
Takuya Ueda
PDF
GAE/GoでWebアプリ開発入門
by
Takuya Ueda
PDF
Go Friday 傑作選
by
Takuya Ueda
PDF
GAE/Goとsyncパッケージ
by
Takuya Ueda
PDF
WebAssembly with Go
by
Takuya Ueda
PDF
そうだ、Goを始めよう
by
Takuya Ueda
PDF
マスター・オブ・goパッケージ
by
Takuya Ueda
Goでかんたんソースコードの静的解析
by
Takuya Ueda
エキスパートGo
by
Takuya Ueda
静的解析を使った開発ツールの開発
by
Takuya Ueda
Goにおけるバージョン管理の必要性 − vgoについて −
by
Takuya Ueda
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
by
Takuya Ueda
GAE/GoでLINE Messaging API を使う
by
Takuya Ueda
メルカリ カウルのマスタデータの更新
by
Takuya Ueda
Goでwebアプリを開発してみよう
by
Takuya Ueda
Google Assistant関係のセッションまとめ
by
Takuya Ueda
Gopher Fest 2017参加レポート
by
Takuya Ueda
GAE/GoでWebアプリ開発入門
by
Takuya Ueda
Go Friday 傑作選
by
Takuya Ueda
GAE/Goとsyncパッケージ
by
Takuya Ueda
WebAssembly with Go
by
Takuya Ueda
そうだ、Goを始めよう
by
Takuya Ueda
マスター・オブ・goパッケージ
by
Takuya Ueda
Recently uploaded
PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
PDF
PMBOK 7th Edition Project Management Process Scrum
by
akipii ogaoga
PDF
PMBOK 7th Edition_Project Management Context Diagram
by
akipii ogaoga
PDF
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
PDF
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
PDF
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
PDF
FY2025 IT Strategist Afternoon I Question-1 Balanced Scorecard
by
akipii ogaoga
PDF
PMBOK 7th Edition_Project Management Process_WF Type Development
by
akipii ogaoga
PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
PMBOK 7th Edition Project Management Process Scrum
by
akipii ogaoga
PMBOK 7th Edition_Project Management Context Diagram
by
akipii ogaoga
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
FY2025 IT Strategist Afternoon I Question-1 Balanced Scorecard
by
akipii ogaoga
PMBOK 7th Edition_Project Management Process_WF Type Development
by
akipii ogaoga
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
オススメの標準・準標準パッケージ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