04/23 00:12 2022
04/26 00:02 2022
Goとしばらく離れていましたが、最近作りたいものができたこともあり、変化に追いつくためにもGo Conference 2022 Springに参加した。今回はリモート開催となる。イベント詳細情報は、下記の通り。
スライドのリンクが分からない箇所には(未)を入れています
メモ
感想
Cyclomatic complexity(循環環複雑度)は聞いたことがあったが、Cognitive Complexity(認知的複雑度)は知らなかった。。人間の直感近い複雑度が計測できるとのこと。
Cognitive Complexityを計測するためgo/astを使って、静的解析ツールを作るセッション。astの構造体を理解する上で参考にしたいと思いました!
メモ
sqlxのScannerやValuerといったインタフェースを駆使し、課題解決した感想
sqlxでイレギュラーなRDBの値に対して、対応する手段があるのは便利だなと思いました!
感想
個人的にGoはパーサー実装に強いと思っています。理由としてgojqやesbuildの既存実装を移植したプロジェクトも存在し、どれも本家と遜色ないどころか高パフォーマンスだったりします。
本セッションは、なんらかの理由で(Google公式のprotoパーサーだと全ての文法規則に対応していない?)Protocol Bufferのパーサーを実装するという内容。
木構造の設計の工夫などパーサーだけでなく、静的解析のツールチェインを作ることも考慮したTipsが説明されていた。VimのALEプラグイン経由で自動修正のデモもあり、かっこよかったです。自作言語のもう一歩先を行ったトピックで、自分良い題材が見つかったら参考にしたいと思いました。
go-protoparserを読むのも良さそうです(執筆時15000行くらいはあるので、全体を把握するのは大変そうですが、、)
メモ
感想 GoのGC理解の大一歩としてとても良いセッションと感じました。GoのGCアルゴリズムの概要から始まり、バージョン毎に改善が入っている点、GoチームでGCのSLOがある点など、個人的に知らないこと盛りだくさんでした!
感想 DDD, Clean Architecture, Onion Architectureを利用したプロダクトの話。並列テストにも少し言及があり、参考になりました。
感想
メタバースなアプリケーションのサーバーサイドでのGo活用事例。UGC(ユーザー側で作成できるコンテンツ)の素材の転送効率の最適化やPub Subサーバー(ユーザーアバター、空間制御周り)でGoを利用しているとのこと。一般的なWebアプリと異なる高負荷、ステーフルな環境下であるメタバース領域でのGo活用事例でとても新鮮でした!
メモ
goimportsをかけたときに、import文を追加する処理は、対象のライブラリが見つかるまで探索(Nまで探索)するので重い。対策として、あらかじめimportを追加しておく、goimportsのimports削除はAST解析のみでされるので、誤ってimportしてしまうことを許容して問題ないとのこと。filepath.Walkよりfilepath.Walkdirが速い。(Go 1.16で追加)感想
自動生成コードI/O処理の極小化として、File I/Oはギリギリまで発生させないという話は分かりみが深かった。goimportsやgofmtをライブラリから生成されたバイト配列に対して適用しているとのこと(面白い)。自動生成定義にprotocを使って素振りしたいなと感じました。
感想 ランタイムが1つというのは確かにメリットだなと感じました!ベンチマーク結果は、GoはやはりLambdaでも良いパフォーマンス結果が出ていました。ただ実際にアプリを書くと、Nodeは自然と非同期になる一方、Goはgoroutineを使う必要があることを考慮すると要件次第だなぁとも思いました。。
メモ
感想 goroutineも使えるのは意外だった。httpやMQTT(内部的にはpahoを利用)のpub/subが使えるので、それなりに遊びが出来る段階には来ているんだなーと感じました。Wio Terminal持っているし、どこかで試したいですね。
感想
目から鱗でした。外部コマンド実行結果のモックがサクッと実装できるとテストが捗りそうですね。。標準ライブラリのテスト読んでみることの重要さにも気づけて良かったです。
感想 私が昔Chrome自動化をする際には、sclevine/agoutiを使っていましたね。紹介されていたライブライどれも使いやすそうです。
この手のchrome自動化ツールはスタンドアローンで起動しますが、プロファイルのcookieやlocal storageを使いたいケースがあり、そこら辺いい感じになっていると嬉しいなーと思いました!
幅広い分野でGoが活用されていることが再認識できました。運営のみなさまこのような機会を設けて頂きありがとうございました!
This site uses Google Analytics.