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

Recap: `How Uber "Go"es` in Japanese

Recap: `How Uber "Go"es` in Japanese

Kutsuzawa Ryo

August 26, 2019
Tweet

More Decks by Kutsuzawa Ryo

Other Decks in Programming

Transcript

  1. Today’s (glorious) blather. 自己紹介 01 How Uber “Go”es by Elena

    Morozova 費用の話 gopherCon に参加してみて 02 03 04 2
  2. 自己紹介 gopherCon 2019 報告会 type Person struct { Name string

    Company string Title string Skills []string }{ Name: 沓澤 遼, Company: NTTレゾナント Title: Service Engineer Skills: []string{Go, Cloud Foundry, PHP(Laravel)} } 4
  3. 背景 gopherCon 2019 報告会 • Uber社では 2014年から Goを採用 • 以後指数関数的に

    Goコード量が増加 Inconsistency が発生 [1] How Uber "Go"es 7 主な意味:不一致、矛盾、無定見
  4. 問題点 gopherCon 2019 報告会 1) サービスの新規作成が大変 Loggerの初期化等を全サービスが 各々で記述 2) コンテキストスイッチ

    ディレクトリ構成の不一致 3) 社内で共通して利用する機能の提供が困難 アップデートした際に全サービスに対応を依頼 する必要有 8
  5. 1. DI gopherCon 2019 報告会 uber-go/fx A dependency injection based

    application framework for Go 10 • 依存の解決をよしなに行う(uber-go/dig) • ライフサイクルを定義可能 ◦ 開始時と終了時の振る舞いを記述できる
  6. よしなに依存性の注入を行うサンプル gopherCon 2019 報告会 11 ”taro" と 26 が, NewPersonの引数として

    処理される Invokeで指定したメソッドが実行され る. Showの引数には NewPersonの 返り値の *Person が入る Output) Name: taro, age 26 github.com/bookun/glue-sample/example/ yoshina/main.go
  7. 1. DI gopherCon 2019 報告会 14 社内で共通で利用する Config, Logger等を DIパッケージ内で初期化

    github.com/bookun/glue-sample/di/fx.go github.com/bookun/glue-sample/di/config.go
  8. 2. Glue -Clean Archtecture を基にしたアーキテクチャ gopherCon 2019 報告会 • Handler •

    Controller • Repository • Gateway からなる アーキテクチャ [1] How Uber "Go"es 16
  9. 17 2. Glue gopherCon 2019 報告会 17 web(handler)、DB(repo) controller, gateway

    use cases entity Clean Architecture とのマッピングとかが よくわからなかった 発表の図からは Handler, Repository, Gateway が外側で Controllerが内側のように見えたが。。。。。
  10. 会社の施策:海外カンファレンス派遣プログラム gopherCon 2019 報告会 ❏ 最新の技術やサービスの動向を把握し事業推進に活用 ❏ 専門領域におけるスキル向上 ❏ グローバル人材の育成

    目的 費用(交通費、宿泊費、カンファレンス参加料等)は 全て会社負担!! 選択型: Tech Crunch, South by Southwest 等 自由型: 自身で業務に役立ちそうなものを選択 gopherCon 行かせてください! 22
  11. gopherCon 2019 に参加してみて gopherCon 2019 報告会 • 新鮮なGo情報に触れられて楽しい • Gopherの多さにモチベが上がった

    • 英語力不足を痛感 セッションはリアルタイム字幕とスライドがあるためなんと かなる ランチタイムに他のgopherともっとおしゃべり したかった 24