472 Views
April 17, 24
スライド概要
GoDay 出張編 @ DeNA TechCon 2024
https://dena.connpass.com/event/308853/
DeNA が社会の技術向上に貢献するため、業務で得た知見を積極的に外部に発信する、DeNA 公式のアカウントです。DeNA エンジニアの登壇資料をお届けします。
Proposal探検 橋本創平 ソリューション事業本部 株式会社ディー・エヌ・エー © DeNA Co., Ltd. 1
自己紹介 橋本 創平 (shy) ソリューション事業本部 サーバーサイドエンジニア シャイなのでshy(シャイ)です! 入社3年目新卒1年目で、 教壇に立ってたこともありました。 @sohey-dr @iam_soheyyyy © DeNA Co., Ltd. 2
目次 1 Proposalとは 2 spec: add range over int, range over func 3 net/http: allow multiple spaces between method and path in mux patterns 4 encoding/json/v2 © DeNA Co., Ltd. 3
Proposalとは 1 ● 直近投稿された Proposal minutes Goの言語仕様や標準パッケージ、コマンドライ ンツールなどに対する提案 ● 今後の展望やこれからリリースされるバージョン に含まれる機能などがいち早くキャッチアップで きる ● 提案のフェーズとしてDiscussions, Accepted, Declined, Likely Accept, Holdなどがある ● 実際に自分で読んで見たい方は「GoのProposal の追い方ガイド」という記事がおすすめ © DeNA Co., Ltd. 4
spec: add range over int, range over func 2 ● integerとfunctionをrangeで回せるようになった ● 1.22で追加された機能 ● 400コメント近くの投稿で議論が白熱 ● range over funcのみGOEXPERIMENTガード下 で導入される © DeNA Co., Ltd. 5
net/http: allow multiple spaces between method and path in mux patterns 3 ● ActiveでIssue Close済み ● 1.22でnet/httpのServeMuxにHTTP メソッドの指定ができるようになっ たがHTTPメソッド名とpathのスペ ースが2つ以上だとエラーが出ない ようにしてほしいという提案 © DeNA Co., Ltd. 6
3 net/http: allow multiple spaces between method and path in mux patterns 反対意見が多かったが議論が進み採用されることになった © DeNA Co., Ltd. 7
encoding/json/v2 4 ● DiscussionsのためProposalには至ってない ● 機能で足せる部分があったり、パフォーマンスの 改善などの実現のため議論している ● V2の概要を抜粋 ○ 95〜99%の後方互換を予定 ○ inlineやformatなどのtag optionが追加 [1] ○ "jsontext"と"json"の2つのパッケージ予定 [1]2013年に上がった「proposal: encoding/json: add "inline" struct tag #6213」などに対応 © DeNA Co., Ltd. 8
4 encoding/json/v2 JSON, Go用の値 として出力 Playground JSONを構文解析して Goで扱えるように返す © DeNA Co., Ltd. 9
4 encoding/json/v2 JSON, Go用の値 として出力 特にパフォーマンス改善が期待できる Playground JSONを構文解析して Goで扱えるように返す © DeNA Co., Ltd. 10
GoのProposalを読むの楽しい © DeNA Co., Ltd. 11
参考資料 ● proposal: review meeting minutes ● spec: add range over int, range over func ● Goの1.22にGOEXPERIMENTガード下で導入されるrange over func proposalを試してみる ● net/http: allow multiple spaces between method and path in mux patterns ● encoding/json/v2 ● GoのProposalの追い方ガイド © DeNA Co., Ltd. 12
© DeNA Co., Ltd. 13