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

はじめてのOSS開発からみえたGo言語の強み

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for shibutani shibutani
September 16, 2025

 はじめてのOSS開発からみえたGo言語の強み

Avatar for shibutani

shibutani

September 16, 2025
Tweet

More Decks by shibutani

Other Decks in Technology

Transcript

  1. 自己紹介 shibutani / @s_k_526 株式会社 LayerX Platform Engineering 部 Enabling

    チーム 2024 年に SecHack365 やセキュリティキャンプ ネクストに参加 最近は電子工作とピアノにハマっている © LayerX Inc. 2
  2. 今日の内容 © LayerX Inc. SecHack365 で Go 言語を使ったミドルウェアを作ったよ! ほとんど Go

    言語で開発したよ! Go 言語のおかげで苦労なく開発できたよ! 3
  3. 何を作ったか © LayerX Inc. 機能 API ベースでのバリデーションロジック管理、実行 モダンな環境を想定し、RESTful API と

    gRPC 両対応 CEL による言語非依存なバリデーションロジック実装 Open API や protobuf からバリデーションスキーマの自動生成 スキーマ自体の単体テスト 中央集権モードと Master Slave モードのサポート 5
  4. Go 言語の何が嬉しかったか © LayerX Inc. ミドルウェアとしての信頼性を担保する仕組みが揃っている Context によるサーバーやリクエストのライフサイクル管理 Graceful なシャットダウンや、後続のリクエストにおけるタイムアウト管理も簡単に行える

    「何も考えなくとも」高いパフォーマンスで安全な並行並列処理を書ける Goroutines によるパフォーマンスの高い並行並列処理 Channel による安全なスレッド間通信 sync パッケージをはじめとしたスレッドセーフなデータアクセスの担保 8
  5. Go 言語の何が嬉しかったか © LayerX Inc. 型システムと Struct Tag による直感的なパース ミドルウェアの設定を

    YAML で管理 型付けされた構造体に Struct Tag でフィールド名を書くだけで、YAML から設定ファイル構造体にパースできる スキーマのパースを「何も考えずに」行えるだけでなく、型チェックも適切に行われる 9
  6. Go 言語の何が嬉しかったか © LayerX Inc. Distribution が容易 標準の依存管理を備えている クロスコンパイルによる実行環境向けバイナリの生成が可能 何も考えずに実行環境となる

    Linux x amd 向けのバイナリを生成できた 色々な環境で使ってもらえる! シングルバイナリが生成される 「何も考えずに」ポンっと置くだけで OK 10