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

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

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