💬

GoDay 出張編 @ DeNA TechCon 2024

2024/03/04に公開

GoDay 出張編 @ DeNA TechCon 2024
〜DeNA Techcon 2024の裏で Go好きエンジニアがゆるくLTする会〜

Goのジェネリクス実装方針

  • Go1.18で採用されたジェネリクスの実装は「Stencling」「辞書」を組み合わせたもの
    • Goshapeが同じであればインスタンス化された辞書を提供できるので、辞書周りのコストが削減できる
  • バイナリサイズが大きくなる原因は型情報を含む辞書を保持するため
  • 闇雲にジェネリクス化を進めるとバイナリサイズは増えるが、急激に増えるような実装にはなっていない

Proposal探検

  • Proposalとは
    • Goの言語仕様や標準パッケージ、コマンドラインツールなどに対する提案
    • 今後の展望やこれからリリースされるバージョンに含まれる機能などがいち早くキャッチアップできる
  • spec: add range over int, range over func
    • Integerとfunctionをrangeで回せるようになった
  • net/http: allow multiple spaces between method and path in mux patterns
    • HTTPメソッド名とpathのスペースが2つ以上だとエラーが出ないようにして欲しいという提案
  • encoding/json/v2
    • 機能で足せる部分があったり、パフォーマンスの改善のため議論している

Buf・Connectの紹介

  • Bufは、Protocol Biffersに関連した様々なコマンドを実行できる
  • FormatterやLinter、Breaking Change Detector、依存パッケージ管理など、便利なコマンドが用意されている
  • Connectは、gRPC互換のAPIを呼び出せるライブラリ
    • REST APIとgRPC APIのいいとこ取りをした、有用なProtocol
  • Connectを利用することで、変換Proxyの設定・運用が不要

Go で FIDO Server 作ってみた

  • FIDOサーバーとはPasskeyの登録や認証を行うサーバーのこと
  • 作り方
    • 登録
      • Credentialを作るためのoptionsの配置
      • Credentialをパース
      • Credentialの検証
      • Credentialを保存
    • 認証
      • Credentialを取得するためのoptionsの配置
      • Credentialをパース
      • Credentialの検証
      • 登録済みのPublicKeyを使って署名検証

感想

スライドのフォーマットが統一されていて見やすかったです。また、同じ23卒の人が多かったのですが、自分の興味のある分野をとことん掘り下げていてすごいと思いました。特にProposalについては初めて知り、衝撃でした。Connectは以前使ったことがあったので、良い復習になりました。そして、PassKeyは話題になっていますが、実際に作ってみるなんて、行動力がすごいと感じました。

Discussion