Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Go の並行処理を体験してみよう

Go の並行処理を体験してみよう

Go Live Coding Session + LT #gdgtokyo
https://gdg-tokyo.connpass.com/event/170594/

michiru shirakawa

March 27, 2020
Tweet

More Decks by michiru shirakawa

Other Decks in Programming

Transcript

  1. Women Who Go Tokyo Women Who Go Tokyo 2016年6月、日本で初めての Women

    Who Go の コミュニティとして設立されました。 毎月1回集まって はじめての方でも楽しく学びやす く をモットーに Go を楽しんでいます。 https://womenwhogotokyo.github.io
  2. Today’s Staff Women Who Go Tokyo @micchiebear @mikkegt @mikisslv09 三度の飯と同じくらい好きな

    Go をもっと多くの人に も楽しんでもらいたくて、 Go コミュニティの運営に携 わっています。 その他、Vim や業務設計、チームビ ルディング、シニアのキャリアや教育についても興 味があります。仕事は、プロジェクトマネジャー兼エ ンジニアです。 月に一度、Women Who Go Tokyo で Go の勉強 をしています。Go に親しんでいるうちにスタッフに。 Go 以外では、NPO で Firebase のイベントの企画 や個人開発で Flutter を勉強したりしています。お 仕事では C# や DB のメンテなど製品開発や運用 保守をしていています。 ソフトウェアエンジニアを目指して 2019年の秋に Go を始めたところ、すぐに Go が好きになってその ままWomen Who Go Tokyo のスタッフになりまし た。以前は Azure の構築・運用のお仕事を担当。 普段は猫3匹と遊びつつ編み物しています。
  3. 1. Go を知ろう 2. Go の準備 3. Go の構成 4.

    Go の並行処理 5. ハンズオンをやろう! 今日の流れ Women Who Go Tokyo
  4. • 2009 年11 月にはじめてのバージョンがオープンソースで公開 • 2012 年3 月28 日に正式バージョンとなる Go1.0

    がリリース • 2020 年3 月27日現在、最新のバージョンは Go1.14.1 Go を知ろう
  5. 1. 自分の PC で動かす 2. Google Cloud で動かす Go の準備

    Women Who Go Tokyo https://techbookfest.org/product/6027682022162432
  6. Go の構成 Women Who Go Tokyo package main import "fmt"

    func main() { echo("Hello, playground") } // 文字列を出力する関数 func echo(s string) { fmt.Println("Hello, playground") } パッケージの定義 外部パッケージの読み込み main 関数の定義 コメント (ブロックコメントは /* */)
  7. Go には並行処理 (多くのしごとを非同期で独立して実行すること) の機能が あります。 Go の並行処理 Women Who Go

    Tokyo goroutine: channel: 軽量なスレッドのようなもの。 関数の頭に go キーワードを付与して呼び出 すだけ。 goroutine 間のデータのやり取りをするパイ プのようなもの。 go f()
  8. Go のパッケージには goroutine の処理をより扱いやすくするものがありま す。 Go の並行処理 Women Who Go

    Tokyo waitgroup: errgroup: 複数の goroutine の完了を待ってから処理 を行う...ようなことができる。 複数の goroutine の処理が終わってから、エ ラーをまとめて扱うことができる。 https://pkg.go.dev/golang.org/x/syn c/errgroup?tab=doc https://pkg.go.dev/sync?tab=doc