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

Goとの歩み / History with Go

mtskhs
March 10, 2021

Goとの歩み / History with Go

Gopher道場 同窓会2021

mtskhs

March 10, 2021
Tweet

More Decks by mtskhs

Other Decks in Technology

Transcript

  1. History with Go 2018/4-6 Gopher道場一期生   2018/秋 EC モール対応の新規開発  

    2019/春 EC 一部機能をマイクロサービス化して更改       GoCon登壇   2020/春 スポーツ観戦アプリのバックエンド    /夏 OSS: fsrpl (CloudFirestoreの運用ツール)    /冬 技術書展10 Firestore Testing 2
  2. Private work 2018/4-6 Gopher道場一期生   2018/秋 EC モール対応の新規開発   2019/春

    EC 一部機能をマイクロサービス化して更改       GoCon登壇   2020/春 スポーツ観戦アプリのバックエンド    /夏 OSS: fsrpl (CloudFirestoreの運用ツール)    /冬 技術書展10 Firestore Testing 3
  3. Who am I • 松木久幸(@mtskhs) • Gopher / TypeScript /

    React Native • スポーツ解説アプリ SpoLive • GoにおけるAPI Client @Go Conference Autumn https://speakerdeck.com/matsu0228/api-client-implementation-pattern-in-go • fsrpl :Firestore運用ツール (homebrew) https://firebaseopensource.com/projects/matsu0228/fsrpl/ • Agile (シリコンバレーで3ヶ月働いて体感した自律型組織のス スメ) https://speakerdeck.com/matsu0228/organizationtheory-of-engineering 4
  4. Who am I • 松木久幸(@mtskhs) • Gopher / TypeScript /

    React Native • スポーツ解説アプリ SpoLive • GoにおけるAPI Client @Go Conference Autumn https://speakerdeck.com/matsu0228/api-client-implementation-pattern-in-go • fsrpl :Firestore運用ツール (homebrew) https://firebaseopensource.com/projects/matsu0228/fsrpl/ • Agile (シリコンバレーで3ヶ月働いて体感した自律型組織のス スメ) https://speakerdeck.com/matsu0228/organizationtheory-of-engineering 5
  5. Who am I • 松木久幸(@mtskhs) • Gopher / TypeScript /

    React Native • スポーツ解説アプリ SpoLive • GoにおけるAPI Client @Go Conference Autumn https://speakerdeck.com/matsu0228/api-client-implementation-pattern-in-go • fsrpl :Firestore運用ツール (homebrew) https://firebaseopensource.com/projects/matsu0228/fsrpl/ • Agile (シリコンバレーで3ヶ月働いて体感した自律型組織のス スメ) https://speakerdeck.com/matsu0228/organizationtheory-of-engineering 6
  6. History with Go 2018/4-6 Gopher道場一期生   2018/秋 EC モール対応の新規開発  

    2019/春 EC 一部機能をマイクロサービス化して更改       GoCon登壇   2020/春 スポーツ観戦アプリのバックエンド    /夏 OSS: fsrpl (CloudFirestoreの運用ツール)    /冬 技術書展10 Firestore Testing 8
  7. EC モール対応の新規開発 - 2018/秋 • サービス開始から20年ほど経っているECサイトで、Goで開発 したシステムを商用利用開始 • Why ◦

    テスト駆動・仕様駆動開発 ◦ 堅牢性(静的型付けであり、実装時点の確実性が高い) ◦ 既存システムとの親和性 • Key Points ◦ チームとして新しい技術への抵抗感を減らすため、運用 ツールをいくつか開発して慣れておいた ◦ 確度が高く、既存システムとの境界が明確な案件でトライ 9
  8. スポーツ観戦アプリのバックエンド - 2020/春 • スポーツ観戦アプリ向けのバックエンドシステムを担当し、 一部でGoを採用 • Why ◦ データ連携速度、安定性

    • Why Not ◦ メンバーのスキルセット(アプリがReactNativeで、Nodeならみれるメン バーが多かった) ◦ 初期開発コスト・柔軟性(試合状況データから解説文(日本語文)を自動 生成するタスクなど) 👉ref: Wantedly における Go 導入にまつわる技術背景 https://www.wantedly.com/companies/wantedly/post_articles/193633#h3-一般的考察と結論 11
  9. Summary • Goの特性を生かしての開発 ◦ テスト駆動開発・仕様駆動 ◦ パフォーマンス、安定性 ◦ キューを一定数受信し、まとめてリクエスト •

    技術選定で考えたこと ◦ メンバーのスキルセット ◦ 初期開発コスト      適材適所な選択を! • マインドセット ◦ 手を上げてみる、やってみる ◦ 実現性 vs 効果 → 無理なく始める ◦ 他人と比べすぎない 12