by shigemk2

当面は技術的なことしか書かない

memo 新サービスをゼロから開発してローンチするのに大切だった3つのこと #ScalaMatsuri

memo 新サービスをゼロから開発してローンチするのに大切だった3つのこと #ScalaMatsuri

  • 新しいサービスをローンチするために大切なこと3つ

  • history

  • アーキテクチャ
  • 実装
  • 進行

  • rewriteモジュール

  • ユーザーIDを探している間ずっとブロッキングしている
  • シンプルに動くサービスを作る
  • どういう仕組みになっているのか
  • システムは複雑になっていく
    • 対策としての分割統治
  • 複雑なコードを管理する
    • 分解してそれぞれの機能を関数として呼び出す 抽象化
  • サービスは関数呼び出しとして書ける
  • レスポンスの問題
    • 呼び出しをしてもすぐには返ってこない
    • 非同期処理で待ち時間が入る
  • Future[+A]
    • Optionのときは.mapをつかえる
    • 非同期処理をしやすい
    • 処理が成功したら次へ、失敗したら待つ という処理が可能になる
  • userを受け取る profileを返す
  • things we need

  • mono repo

  • scala fileのコンパイル
  • 依存関係の解決
  • thriftサーバ

  • methos/aurora

https://thrift.apache.org

  • エンジニアは動くものを作らないといけない
  • マネージャーは作りたいものを作る

  • 重要なのは上から下まで全部作る

  • 良い推測を立てて繋いでみて実際に動くものをつくること
  • naming dtab
  • zookeeper

https://twitter.github.io/finagle/guide/Names.html

  • マネージャーとエンジニア 設計
  • デザイナーとエンジニア 実装
  • エンジニアとエンジニア コードを読むこと mono repo重要
  • ドキュメントを書くより良い名前をつけるほうがいい
  • ツイートできないほど長い名前
  • GETなのになかで変更を行う処理はやめようね
  • 正しいインターフェイス
  • サービスが分かれている
  • downstream/upstream

まとめ

  • プロマネとのやりとり
    • 動くものをまず作る
  • デザイナとのやりとり
    • 内部状態を管理する
  • エンジニアとのやりとり
    • コードを読むこと