1 ポイント 投稿者 GN⁺ 2023-10-17 | 1件のコメント | WhatsAppで共有
  • Go 1.22のnet/httpパッケージ内にある標準HTTPサービングマルチプレクサのパターンマッチング機能強化に関する記事
  • 従来のマルチプレクサ(http.ServeMux)は基本的なパスマッチングを提供しており、高度な機能のためにはサードパーティライブラリの利用が必要だった
  • Go 1.22の新しいマルチプレクサは高度なマッチングを提供し、サードパーティパッケージとの差を縮める
  • 新しいマルチプレクサ(mux)は、パターンの一部としてHTTPメソッドを明示的に指定でき、パス構成要素でのワイルドカードマッチングをサポートする
  • 記事では新しいmuxの使用例を示し、異なるパターン間で発生しうる衝突の扱いも含めて説明している
  • 新しいServeMuxのドキュメントでは、パターンと潜在的な衝突に関する優先順位ルールが説明されている
  • 記事ではまた、GoにおけるRESTサーバー連載の例を見直し、新しいstdlib muxがgorilla/muxと比べてどう見えるかを比較している
  • Go 1.22の新しいmuxは、より洗練されたルーティングを可能にし、ハンドラ内でルーティング判断を行う必要性を減らす
  • 著者は、Go 1.22の強化によって「どのルーターパッケージを使うべきか?」という問いへの一般的な答えが変わると考えている。多くの人にとって、新しいstdlib muxで十分だと感じられるだろう
  • とはいえ、一部のGoプログラマは依然としてサードパーティパッケージやGinのような軽量フレームワークを好むかもしれない。これらはルーターに加えてWebバックエンド構築のための追加ツールも提供する
  • 全体として、著者はGo 1.22の強化をすべてのGoユーザーにとって前向きな変化と見ており、標準ライブラリをより有能にし、コミュニティ全体に利益をもたらすものだと評価している

1件のコメント

 
GN⁺ 2023-10-17
Hacker Newsのコメント
  • Go 1.22の新しいHTTPサーバールーティングに関する記事。
  • 2つのルートが一致したときに発生するパニックを理解しづらいと感じるユーザーがおり、多くのWebフレームワークでは最初に登録された一致ルートが使われる。
  • gorrila/muxプロジェクトのアーカイブと復活が混乱を招いたが、これをオープンソースプロジェクトの安定性を示すものと見る人もいる。
  • 提案された構文への批判があり、ハンドラーを定義するために魔法の文字列を作るのではなく、実際の引数を使うべきだと提案する人もいる。
  • 文字列化されたメソッド接頭辞の使用を嫌い、動詞ごとのメソッドによる型安全性を好むユーザーもいる。
  • ルートは一致してもメソッドが一致しない場合に何が起こるのかという疑問があり、答えは適切に設定されたAllowヘッダー付きの405である。
  • 高度な要件を持つユーザーは、基本のサブmuxを使わず、別の選択肢を検討するか自分でルーターを書くべきだという提案。
  • パニックになるよりも、重複するパスは定義された順に一致してほしいと考える人もいる。
  • 特にURIにHTTPリクエストメソッドを含める点を中心に、この提案を嫌うユーザーたち。
  • アドレスが接頭辞のときにすべてを処理してしまうデフォルトのServeMuxへの批判で、完全一致を簡単に扱う方法がない。
  • しかし一部のユーザーは、新しいルーティングを前向きな変化と見ており、外部依存を減らし生産性を高めると考えている。