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

未卒 🔜 新卒 / Misotsu soon New Grads

未卒 🔜 新卒 / Misotsu soon New Grads

upamune / Yu SERIZAWA

July 08, 2018
Tweet

More Decks by upamune / Yu SERIZAWA

Other Decks in Technology

Transcript

  1. HTTP: twitchtv/twirp A simple RPC framework with protobuf service definitions

    Protobuf からJSON/Protobuf を受け付けるHTTP のRPC ⾵エンドポイ ントを⽣成してくれる君 POST /twirp/<package>.<Service>/<Method> 最初はフロントエンドはSPA にする予定だったので,gRPC は避けた 結果 Go を始めとしてJava, JS, TS, Ruby, Rust, PHP 実装などがある Twirp: a sweet new RPC framework for Go - Twitch Blog
  2. Database: src-d/go-kallax Kallax is a PostgreSQL typesafe ORM for the

    Go language. struct からDB のSchema, ORM を⽣成してくれる君 マイグレーションをやってくれるので楽 Production で利⽤するのは厳しそう とにかく楽したかったので利⽤してみた q := models.NewBookReviewQuery(). WithBook(). FindByID(bookReviewID) bookReview, err := s.reviewStore.FindOne(q)
  3. Logger: rs/zerolog log.Error(). Err(err). Str("Scale", "833 cents"). Float64("Interval", 833.09). Msg("Fibonacci

    is everywhere") Uber's zap library pioneered this approach. Zerolog is taking this concept to the next level with a simpler to use API and even better performance. “ “
  4. Client SPA は1 ⽇で挫折した CLI でも良いらしいのでCLI で実装することに twitchtv/twirp を利⽤しているのでClient が⽣成されているので便利

    ちょっとリッチにしたいので,c-bata/go-prompt, manifoldco/promptui を利⽤ 良い感じにリッチにできてかっこいい