Scrapboxへの参加リンク
開催概要
Slack
Google Meet: ConnpassにURLを記載しています
資料
リトマステスト早見表
タイムテーブル
19:00 ~ 参加準備 (Slackへの登録、Scrapboxへの登録、自己紹介を書く等)、雑談
19:10 ~ 軽めに自己紹介 (1人1分程度)
19:20 ~ 輪読開始
20:20 ~ 10分休憩
20:30 ~ 再開
21:30 終了
お知らせ
入門Go Documentation輪読会、10/19 (水)で決定しました! 🎉
自己紹介 (近況報告)
syumai
普段はTS / Goを書いてる
magicpro
Go Spec 輪読会から参加
Go歴は2年
業務ではバックエンドエンジニアをやっています
近況
Google Code Review Guideline を読みました
最近レビューのことで頭を悩ませてたので、得るものがたくさんありました
syumai > Code Review Commentsおすすめです
最近読んでますリスト
sync.Condだいたい理解しました!
muroon
Go歴4年
広告アプリでGoを書いてます
最近こんなものを書きました
CompareAndSwap
Seiya Umemoto
Go歴半年
元々はPythonを4年近く書いていました
機械学習(Keras等々)、スクレイピング(Scrapy等々)、ウェブアプリ(Django, Flask等々)
契約書管理のウェブサービスでGoを書いています
最近社内で「実用Go言語」の輪読会を主催して無事完了しました
最近はTSでVue.jsを書き始めました
おすすめ本
今回の範囲:
Updating the Go Memory Model の Incorrect compilation から
無効な最適化の例
ループが終わることを仮定して、ループの前後のコードの順序を入れ替えてはいけない例
条件のないループでなくても、無限に終わらないことがある
関数の実行前後のコードの順序を入れ替えてはいけない例
コードの順序を入れ替えると、happens before edgeが張られる順序が変わってしまうケースがある
後に使われることがわかっているメモリ領域を、実際の書き込み前に一時的な領域として使用してはいけない例
*p = i + *p/2 を *p /= 2; *p += i に書き換える例
結果は同じになるが、競合があった場合、書き換え後のプログラムでは、2, 3 に加えて 1も読み取ることが出来てしまう
競合のあるプログラムの意味論が変わってしまう
次回: The Go Memory Model の Memory Model から