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

未卒 🔜 新卒 / Misotsu soon New Grads

未卒 🔜 新卒 / Misotsu soon New Grads

2709e9b504d8fbaf78ad53866a926e68?s=128

Yu SERIZAWA

July 08, 2018
Tweet

Transcript

  1. 未卒 新卒 @upamune

  2. うぱみゅん @upamune 18 新( ?) 卒 Go 歴3 年 serizawa.me

  3. 最近新卒⼊社エントリ書いた 株式会社メルカリに新卒⼊社しました bit.ly/2KSuCTt

  4. 実は⼤学卒業失敗( なんと卒業失敗が発覚したのが⼊社の1 ヶ⽉前) し て今も⼤学に在籍しているが,こんなんでも⼊社認めてくれてすご い ( 週1 で有給を取得して,半年間⼤学に通うというのを認めていた だいています)

    “ “
  5. まだ卒業できてない

  6. 2 単位⾜りなかった

  7. ソフトウェアなんとか演習

  8. 3 ⼈1 チームで アプリケーションを開発する

  9. ヤバ要件.png

  10. None
  11. 結構重くてビビる ( 予定では1 週間で開発)

  12. None
  13. ⼤体Go で実装し終えた ので構成の紹介

  14. 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
  15. 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)
  16. 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. “ “
  17. Client SPA Nuxt.js ...

  18. Client SPA は1 ⽇で挫折した CLI でも良いらしいのでCLI で実装することに twitchtv/twirp を利⽤しているのでClient が⽣成されているので便利

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

  20. 今回の合宿で 検索システム PageRank 推薦システム 協調フィルタリング @codehex 先⽣と実装できたのでかなり卒業に近づいた

  21. ありがとうございました