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. Goとの歩み
    〜レガシーシステム更改・OSS開発〜
    2021.3.10
    Gopher道場 同窓会2021
    Hisayuki Matsuki
    @mtskhs

    View Slide

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

    View Slide

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

    View Slide

  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
    4

    View Slide

  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
    5

    View Slide

  6. 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

    View Slide

  7. Ad
    絶賛発売中です!
    🔍 Firestore Testing
    JavaScriptにおけるテスト
    Firestoreに関するテスト
     に興味のある方はぜひ!
    7
    https://techbookfest.org/product/5732781973831680?productVariantID=5768446107189248

    View Slide

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

    View Slide

  9. EC モール対応の新規開発 - 2018/秋
    ● サービス開始から20年ほど経っているECサイトで、Goで開発
    したシステムを商用利用開始
    ● Why
    ○ テスト駆動・仕様駆動開発
    ○ 堅牢性(静的型付けであり、実装時点の確実性が高い)
    ○ 既存システムとの親和性
    ● Key Points
    ○ チームとして新しい技術への抵抗感を減らすため、運用
    ツールをいくつか開発して慣れておいた
    ○ 確度が高く、既存システムとの境界が明確な案件でトライ
    9

    View Slide

  10. EC 一部機能をマイクロサービス化して更改 - 2019/春
    ● レガシーシステムの一部を、マイクロサービス化。その一部を
    Goで実装した
    ● Why
    ○ 仕様フィット:キューを受信し続け、一定数溜まったらまとめ
    てリクエスト
    10

    View Slide

  11. スポーツ観戦アプリのバックエンド - 2020/春
    ● スポーツ観戦アプリ向けのバックエンドシステムを担当し、
    一部でGoを採用
    ● Why
    ○ データ連携速度、安定性
    ● Why Not
    ○ メンバーのスキルセット(アプリがReactNativeで、Nodeならみれるメン
    バーが多かった)
    ○ 初期開発コスト・柔軟性(試合状況データから解説文(日本語文)を自動
    生成するタスクなど)
    👉ref: Wantedly における Go 導入にまつわる技術背景
    https://www.wantedly.com/companies/wantedly/post_articles/193633#h3-一般的考察と結論
    11

    View Slide

  12. Summary
    ● Goの特性を生かしての開発
    ○ テスト駆動開発・仕様駆動
    ○ パフォーマンス、安定性
    ○ キューを一定数受信し、まとめてリクエスト
    ● 技術選定で考えたこと
    ○ メンバーのスキルセット
    ○ 初期開発コスト      適材適所な選択を!
    ● マインドセット
    ○ 手を上げてみる、やってみる
    ○ 実現性 vs 効果 → 無理なく始める
    ○ 他人と比べすぎない
    12

    View Slide