Upgrade to Pro — share decks privately, control downloads, hide ads and more …

次なるルーターパッケージ選定のしざまと決め手について

 次なるルーターパッケージ選定のしざまと決め手について

Go Conference 2023(https://gocon.jp/2023/) で登壇した発表です。

先日Goの軽量routerの代表格であるgorilla/mux擁するGorilla Web Toolkitがアーカイブされました。
私たちのチームで開発しているGoのWeb APIはすべてgorilla/muxに依存しており、対応を迫られました。
フォークしてチーム内でメンテナンスを行うことも考えられましたが、チームの規模的に無理があり他のパッケージへ移行する必要がありました。
そこで今回の発表では移行時に行った他のパッケージの比較検討や最終的な決断の意思決定について話します。
この発表を通してパッケージの選定基準などについて、同じくrouterや外部パッケージを移行したい方の手助けになれば幸いです。

Ren Ogaki

June 02, 2023
Tweet

Other Decks in Programming

Transcript

  1. © 2012-2023 BASE, Inc. 2 プロフィール BASE, Inc. / BASE

    BANK Div 大垣 連 / Ren Ogaki BASEでインターン→高校卒業→1年くらい専門学校に 入ったり、BASEで業務委託として働いてみたりふらふ らした末に最近正社員になりました。 BASEカードというプロダクトを開発しています。 @re_yuzuy @yuzuy
  2. © 2012-2023 BASE, Inc. 4 振込申請 BASEカード YELL BANK かんたん、即座に

    1万円から資金調達が可能 売上をそのままお支払いに使える 「お急ぎ振込」では 最短翌営業日に売上を振込 「銀行をかんたんにし、全ての人が挑戦できる世の中に」 BASE加盟店向けに金融事業を提供しているチーム 個人やスモールチームの資金繰りに関する課題解決に取り組んでいます BASE BANKがやっていること
  3. © 2012-2023 BASE, Inc. 28 5つの評価軸 muxからの移行コストが低い(重要度: 大) 速度的パフォーマンスがよい(重要度: 大)

    別のルーターへの移行コストが低い(重要度: 中) 日々の開発が楽になる(重要度: 小) アーカイブ可能性が低い(重要度: 小)
  4. © 2012-2023 BASE, Inc. 29 5つの評価軸 muxからの移行コストが低い(重要度: 大) 工数はできるだけ少なく、影響範囲もできるだけ少なく移行したい ヘルパーを作成する必要があったり、ハンドラーの形式が変わったりする

    のはメンバーへの共有すべき箇所も増えるのでつらい 速度的パフォーマンスがよい(重要度: 大) BASEカードではVisaからの応答速度の要求があり、最低限の速度的パ フォーマンスは確実に満たしたい(muxほどの性能があればよい)
  5. © 2012-2023 BASE, Inc. 33 移行先を決める旅 4段階評価🖍 ◎: 評価軸に対してとても適している ◦:

    評価軸に対して適している ﹣: 評価軸に対して最低限適している ✕: 評価軸に対して適していない
  6. © 2012-2023 BASE, Inc. 35 候補: gin-gonic/gin, labstack/echo 軽量フレームワークの代表格たち 便利機能がいっぱい🛠

    <-> 他へ移行しづらい🙅 BANKにはmuxと一緒に使っていた基盤があるので便利機能はいらなそう?
  7. © 2012-2023 BASE, Inc. 46 小話: New Relic対応 BASEではNew Relicという

    オブザーバビリティプラットフォームを使用しています
  8. © 2012-2023 BASE, Inc. 49 小話: New Relic対応 まだなかった Issueはあったけど

    対応はされておらず https://github.com/newrelic/go-agent/issues/450
  9. © 2012-2023 BASE, Inc. 59 求人情報 フルサイクル開発やってます!! Go, Python, PHP使ってます!!

    オフィスアワーでもDMでもいつでも声かけてください!! We are hiring !!