Fumiのブログ

「golang.tokyo #25」に参加してきた!

はじめに

今日は、「golang.tokyo #25」に参加してきた!
会場は、ウォンテッドリー株式会社さん!初めて来た。

golangtokyo.connpass.com

golang.tokyo

プログラミング言語のGoの導入企業のメンバーが集まり、Goの普及を推進するコミュニティです。 トークイベント、ハンズオン、etcのイベントを開催していく予定です!

twitter.com

ハッシュタグ

#golangtokyo

twitter.com

イベント内容

golang.tokyo 25回目の開催です!今回のテーマは「Go の郷に入る」。

最近 Gopher になった人も昔から Gopher やってる人も、あたらめて Go を見直し Go に入り直してみましょう!

タイムテーブル

時間 内容
19:00 ~ 開場・受付
19:30 ~ 19:35 オープニング
19:35 ~ 20:00 運営メンバー選出 今改めて読み直したいGo基礎情報 その1
20:00 ~ 20:25 運営メンバー選出 今改めて読み直したいGo基礎情報 その2
20:25 ~ 20:50 休憩
20:50 ~ 21:00 LT1: golang binary hacks
21:00 ~ 21:10 LT2: Goの画像処理のテストってどうしてる?
21:10 ~ 21:20 LT3: パッケージ名と変数名が被って辛いので静的解析した
~ 22:00 終了・撤収

軽食とビール

ウォンテッドリー株式会社さんの提供で、軽食とビールを頂いた:)

軽く小腹が空いていたから、嬉しい!!
ありがとうございます!

tenntennʕ ◔ϖ◔ʔ ==Go さんからご褒美

本題

今改めて読み直したいGo基礎情報 その1

発表者: 清水 陽一郎 (@budougumi0617)

freee株式会社 所属。バックエンドエンジニア。2017年にGoが書きたくて現職に転職。 Go+gRPCでアカウントアグリゲーションサービスを担当。直近はEKS+Goを使った外部サービスとOAuth2.0連携マイクロサービスを新規開発中。 自作キーボードを趣味にしたが3台作ってしまったので最近は作れていない。

twitter.com

budougumi0617.github.io

speakerdeck.com

スライド

docs.google.com

内容

Goらしいとは何か?

Simplicity - 徹底的な簡潔性

  • GoのMission
    • Creating software at scale
    • Running software at scale

言語哲学は変わらない。言語仕様も変わらない。

  • Simplicityを体現するために
  • Goは1.0の頃から言語仕様がほとんど一緒 (Go 2.xから変わるけど)
Goの郷に入る
  • 言語思想

    • Goがどのように設計されているのか?
  • GoWayな設計・実装

    • どうやったらSimplicityを実現できるのか?

言語思想

プログラミング言語Go
  • 日本語で書かれたGoの書籍の中で一番体系的な書籍
  • なぜインターフェースは小さく作るべきか
  • Goのカプセル化へのアプローチ
  • なぜtesting pkgにはsetup/teardownやassertがないのか
  • なぜ例外を持たないのか

などについて書いてある

Goは何を期待されている言語なのか知る
  • Googleは何に問題を感じてGoを作ったのか?
  • Googleは何を解決するためにGoを作ったのか?

talks.golang.org

talks.golang.org

Simplicity is Complicated

talks.golang.org

goはC言語でゴリゴリ書くことを、シンプルに書くためにどれだけ頑張っているかが書いてある

Toward Go 2

Go Teamは意見を求めている

blog.golang.org

go.googlesource.com

Go2もGoのMissionやValuesは何も変わらない

Gopherくん

blog.golang.org

結構厳しい仕様がある

Go Proverbs

go-proverbs.github.io

言語設計の思想などが書いてある。面白そう。読も。

dave.cheney.net

Dave Cheney氏のブログ記事のオススメリンク集 開発で一度は悩むポイントを解説してくれている

GoWayな設計・実装

Effective Go

golang.org

CodeReviewComments

github.com

Goに入ってはGoに従え

ukai-go-talks.appspot.com

Go言語によるWebアプリケーション開発(書籍)
みんなのGo言語(書籍)

mattn.kaoriya.net

今改めて読み直したいGo基礎情報 その2

発表者: 泉 将之 (@izumin5210)

ウォンテッドリー株式会社で、主に Wantedly People のバックエンドを触っている。 Go や Ruby でプロダクトを作りつつ、必要に応じて基盤サービスや生産性向上のための開発をしている。 最近のお気に入りパッケージは golang.org/x/tools/go/packages/packagestest 。

twitter.com

blog.izum.in

speakerdeck.com

スライド

speakerdeck.com

内容

Go Data Structures: Interfaces

research.swtch.com

「Interfaceなどをどうやって実現されているか」など書いてある

Go Slices: usage and internals

blog.golang.org

blog.golang.org

Arrays, slices (and strings): The mechanics of 'append'

blog.golang.org

Constants

blog.golang.org

The Go Memory Model

golang.org

Diagnostics

golang.org

Package trace

golang.org

Concurrency is not parallelism

blog.golang.org

Advanced Go Concurrency Patterns

blog.golang.org

Go Concurrency Patterns: Pipelines and cancellation

blog.golang.org

qiita.com

What's in a name?

talks.golang.org

Package names

blog.golang.org

LT1: golang binary hacks

Alpine Linux などで使われる musl libc では動かないプログラムの問題を Go 言語で簡単に解決する方法についてお話します。

発表者: yaegashi

twitter.com

github.com

medium.com

ブログ : https://l0w.dev/

スライド

Not found.

内容

Hugo

Goで作られている静的サイト作成ツール

gohugo.io

qiita.com

musl libc

glibc互換のCライブラリ

www.musl-libc.org

www.softantenna.com

muslstack

github.com

LT2: Goの画像処理のテストってどうしてる?

標準、準標準パッケージのコードリーディングから調べた&試行錯誤した画像処理のテストパターンを発表します。

発表者: po3rin

twitter.com

github.com

スライド

speakerdeck.com

内容

絶対に落とせないテスト!!!

いろいろ標準パッケージ内のテストを読んでみた結果、

画像のテストは、失敗時にどれだけの情報が欲しいかによる。

という結論になった。

LT3: パッケージ名と変数名が被って辛いので静的解析した

Goはパッケージ名と関数スコープ内の名前被りはコンパイルエラーにならずshadowingされる言語仕様です。
便利なことがある反面、なぜコンパイルが通らないのかわかりにくいことがあります。 そこで静的解析を行って検知するツールをx/tools/go/analysisを使って簡単に作れたので、その話をします。

発表者: macopy

twitter.com

github.com

mackee.hatenablog.com

スライド

speakerdeck.com

内容

conflictident

github.com