basebank / gophers-code-reading-party

Gophers Code Reading Party records
18 stars 1 forks source link

20210729 Gophers Code Reading Party #8

Closed budougumi0617 closed 1 year ago

budougumi0617 commented 3 years ago

7月 29日 (木曜日)⋅午後2:00~3:00@ Zoom, BASE BANK, Inc.

参加者

@budougumi0617 @hgsgtk @daisuzu @emahiro

お題

ref: https://github.com/basebank/gophers-code-reading-party/issues/8#issuecomment-889394984

hgsgtk commented 3 years ago

なんかtenntennさんがシェアしてた子 golintのalt

https://github.com/mgechev/revive

budougumi0617 commented 3 years ago

日程調整用の調整さんです https://chouseisan.com/s?h=d0931b08eef149bf8f671b4e7b7f8057

来週木金の22,23は祝日なので少し変則的な候補日になっています、ご注意ください!

hgsgtk commented 3 years ago

だいすずさんのぶろくが

https://daisuzu.hatenablog.com/entry/2021/07/12/164241

budougumi0617 commented 3 years ago

ちょうど似たような悩みがあるので気になりますね 👀 👀 👀

hgsgtk commented 3 years ago

Go1.17 IPISPRIVate

https://go-review.googlesource.com/c/go/+/309249/3/src/net/ip.go#138

budougumi0617 commented 3 years ago

すいません!!!日曜日にコロナワクチン接種したら2日ダウン && 今日は遅れを取り戻すために奮闘していました 🙇 次回は来週でお願いします!

Gophers Code Reading Party 7月 29日 (木曜日)⋅午後2:00~3:00

hgsgtk commented 3 years ago

https://twitter.com/mattn_jp/status/1419850901573881861?s=21

コードコメントがすごい

hgsgtk commented 3 years ago

https://twitter.com/dgryski/status/1420087166604959747?s=21

fuzz

budougumi0617 commented 3 years ago

今日の会場です。 https://zoom.us/j/96545111007?pwd=aWNIOVF0enFrOWRsc0U0TEhoT0tMUT09

hgsgtk commented 3 years ago

あ、あかん、くっ...

budougumi0617 commented 3 years ago

golangci-lintは誤検知もあるので「絶対にこっちは直さないとだめ!」というふうにstaticcheckだけ別に動かしている。 https://staticcheck.io/

budougumi0617 commented 3 years ago

チーム内で独自静的解析ツール作る人が増えてる!xormで生SQL書いたらexplain確かめるようにコメントするとか

budougumi0617 commented 3 years ago
budougumi0617 commented 3 years ago

のびしーさんがtype parameterの最近acceptされたproposalを解説してくれた https://zenn.dev/nobishii/articles/type_set_proposal_2

budougumi0617 commented 3 years ago

Genericsってフィールド使えるようにできないかな?そもそも他の言語のGenericsはフィールドアクセスできるんだっけ? Javaは <? extends C> が書けるからできるっぽいな (もはやGo以外の言語が’よくわからなくなっている) https://www.ne.jp/asahi/hishidama/home/tech/java/generics.html

budougumi0617 commented 3 years ago

https://daisuzu.hatenablog.com/entry/2021/07/12/164241

テストケースを簡単に書けるようにフレームワーク化するのむずかしい (クソデカJSONが入力のテストを簡単に書けるようにしたくて悩んでいるマン)

budougumi0617 commented 3 years ago

事前条件的なinsertを用意するのもめんどくさいなあ

でかいJSONが引数のAPIを何回か叩いた結果DBにどういうレコードが残るのか、みたいなテストフレームワークを作りたくてうんうんとしている →DBはわりきっちゃってもいいかも??

daisuzu commented 3 years ago

https://github.com/cockroachdb/copyist

budougumi0617 commented 3 years ago

↑ DB版のVCRテストフレームワーク。

budougumi0617 commented 3 years ago

https://github.com/k1LoW/tbls

接続先のDBを舐めてER図を自動生成してくれるツール。graphizとかもgo実装で内包しているので、依存関係もそんなにないのでgo installしてくるとすぐ使える。

ref: https://speakerdeck.com/k1low/july-tech-festa-2021-winter

daisuzu commented 3 years ago

http://blockdiag.com/ja/blockdiag/index.html

budougumi0617 commented 3 years ago

いろいろある! http://blockdiag.com/ja/seqdiag/index.html

budougumi0617 commented 3 years ago

ここまで書けるよGoのコードコメント https://github.com/golang/go/blob/33ff1559702388c57c45f9e6cd032f06e8c3c163/src/math/big/natdiv.go#L362-L366 image

budougumi0617 commented 3 years ago

https://github.com/basebank/gophers-code-reading-party/issues/8#issuecomment-887924118

gopls symbols 使って関数名抜き出して一覧にしていたり、面白いスクリプト https://github.com/stevenjohnstone/toughfuzzer/blob/master/run.sh

budougumi0617 commented 3 years ago

file2fuzz。 元のファイル形式はなんなんだろう? https://github.com/golang/tools/commit/4ad98e9670db477158c42c406fc79e04c0fe2bda

ちょっとテストコード読んでfuzzのフォーマットを確認した!

daisuzu commented 3 years ago

テストケースを簡単に書けるようにフレームワーク化するのむずかしい (クソデカJSONが入力のテストを簡単に書けるようにしたくて悩んでいるマン)

↓をうまいこと応用できればそれっぽくなるかも?と思いつつまだ試したことないです https://github.com/golang/tools/blob/07bc1bf47fb2e2433bf1afd8647579c4329c9203/internal/lsp/lsp_test.go

budougumi0617 commented 3 years ago

サマリ

コードリーディング

https://github.com/basebank/gophers-code-reading-party/issues/8#issuecomment-888826716 x/toolsに追加されたfile2fuzzの中身を読んだ。 テストケース見ればin/outの形式すぐわかるのでよいね。

その他

OSS情報

https://github.com/cockroachdb/copyist

DBのVCRテストみたいなツールがある。 posgreのみ対応と書いてあるが一応MySQLでも動いたらしい。timestampなども厳密なので導入はそこそこ大変っぽい?

https://github.com/k1LoW/tbls

ドキュメント自動生成したいしバージョン管理したいっていうニーズは不変でいろいろなツールがある https://speakerdeck.com/k1low/july-tech-festa-2021-winter

http://blockdiag.com/ja/blockdiag/index.html

http://blockdiag.com/ja/seqdiag/index.html とか親戚もおおい。

https://github.com/stevenjohnstone/toughfuzzer

fuzzingのチュートリアル? スクリプトがgoplsを使いこなしていたりでおもしろい。 https://github.com/stevenjohnstone/toughfuzzer/blob/master/run.sh

書籍情報

Typeparameterはフィールドもサポートしてくれると嬉しいが… Genericsって全然忘れたけれど、Javaはスーパークラスで絞れたりするのでフィールドサポートしてるっぽいね https://www.ne.jp/asahi/hishidama/home/tech/java/generics.html

コードコメントについて

下付き文字とかハットまでつかって書いてもいい https://github.com/basebank/gophers-code-reading-party/issues/8#issuecomment-888820470

テストフレームワークの作り方

https://daisuzu.hatenablog.com/entry/2021/07/12/164241

lspも結構ごつい独自FW構造を作っている https://github.com/golang/tools/blob/07bc1bf47fb2e2433bf1afd8647579c4329c9203/internal/lsp/lsp_test.go