GoDay LT -Prososal探検- by shy

131 Views

April 17, 24

スライド概要

GoDay 出張編 @ DeNA TechCon 2024
https://dena.connpass.com/event/308853/

profile-image

DeNA が社会の技術向上に貢献するため、業務で得た知見を積極的に外部に発信する、DeNA 公式のアカウントです。DeNA エンジニアの登壇資料をお届けします。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Proposal探検 橋本創平 ソリューション事業本部 株式会社ディー・エヌ・エー © DeNA Co., Ltd. 1

2.

自己紹介 橋本 創平 (shy) ソリューション事業本部 サーバーサイドエンジニア シャイなのでshy(シャイ)です! 入社3年目新卒1年目で、 教壇に立ってたこともありました。 @sohey-dr @iam_soheyyyy © DeNA Co., Ltd. 2

3.

目次 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

4.

Proposalとは 1 ● 直近投稿された Proposal minutes Goの言語仕様や標準パッケージ、コマンドライ ンツールなどに対する提案 ● 今後の展望やこれからリリースされるバージョン に含まれる機能などがいち早くキャッチアップで きる ● 提案のフェーズとしてDiscussions, Accepted, Declined, Likely Accept, Holdなどがある ● 実際に自分で読んで見たい方は「GoのProposal の追い方ガイド」という記事がおすすめ © DeNA Co., Ltd. 4

5.

spec: add range over int, range over func 2 ● integerとfunctionをrangeで回せるようになった ● 1.22で追加された機能 ● 400コメント近くの投稿で議論が白熱 ● range over funcのみGOEXPERIMENTガード下 で導入される © DeNA Co., Ltd. 5

6.

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

7.

3 net/http: allow multiple spaces between method and path in mux patterns 反対意見が多かったが議論が進み採用されることになった © DeNA Co., Ltd. 7

8.

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

9.

4 encoding/json/v2 JSON, Go用の値 として出力 Playground JSONを構文解析して Goで扱えるように返す © DeNA Co., Ltd. 9

10.

4 encoding/json/v2 JSON, Go用の値 として出力 特にパフォーマンス改善が期待できる Playground JSONを構文解析して Goで扱えるように返す © DeNA Co., Ltd. 10

11.

GoのProposalを読むの楽しい © DeNA Co., Ltd. 11

12.

参考資料 ● 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

13.

© DeNA Co., Ltd. 13