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

「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜

gree_tech
PRO
November 11, 2021

 「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜

GREE Tech Conference 2021 で発表された資料です。
https://techcon.gree.jp/2021/session/Session-1

gree_tech
PRO

November 11, 2021
Tweet

More Decks by gree_tech

Other Decks in Technology

Transcript

  1. 「やんちゃ、足りてる?」
    〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
    Glossom株式会社 ソフトウェアエンジニア 小松秀生

    View Slide

  2. 「やんちゃ」足りてますか?
    2

    View Slide

  3. 3
    https://40th.yanmaga.jp/

    View Slide

  4. 4
    https://dictionary.goo.ne.jp/word/やんちゃ/

    View Slide

  5. 5
    「やんちゃ」
    だねぇ…

    View Slide

  6. 6
    新人でも責任ある仕事を任せられ
    成長できる環境が、ここにある

    View Slide

  7. • 2020年新卒入社 (2年目)
    • 学生時代の研究
    • 作曲教育Webサービス
    • 論理学
    • AI音楽自動生成
    • Glossom株式会社へ出向
    7
    小松 秀生
    https://melon-530f5.firebaseapp.com/

    View Slide

  8. • マーケティング・広告事業
    • 事業会社支援
    8
    インフルエンサー・マーケティング支援
    動画広告ネットワーク メディアの広告収益最適化

    View Slide

  9. 9
    https://yanmaga.jp
    by

    View Slide

  10. • バックエンドの
    テストカバレッジ(分岐網羅)は
    常に100%!
    • 互いの業務・操作方法を教えあい
    可能な限り属人化を排除!
    • 新しいメンバーでも
    コードレビューに参加!
    10
    開発チームの取り組み

    View Slide

  11. 初めてコードレビューを行ったのは、IT
    エンジニアとして会社に勤め始めてから
    どれくらい経ってからでしたか?
    ⓘ Start presenting to display the poll results on this slide.

    View Slide

  12. やりがいがあったタスク
    • 統合認証基盤「GIGYA」の導入
    • 倍プッシュチャレンジゲーム企画

    View Slide

  13. やりがいがあったタスク
    • 統合認証基盤「GIGYA」の導入
    • 倍プッシュチャレンジゲーム企画

    View Slide

  14. 14
    • メルマガ購読管理
    • 顧客データ分析
    • ソーシャルログイン
    • GDPR(個人情報保護法)対応
    https://www.sap.com/japan/acquired-brands/what-is-gigya.html
    https://withonline.jp/
    https://web.gekisaka.jp/store/
    統合認証基盤

    View Slide

  15. 「GIGYA」を利用しているWebサイトは
    どれでしょうか?
    ⓘ Start presenting to display the poll results on this slide.

    View Slide

  16. https://id.tokyo2020.org/oidc/login.html

    View Slide

  17. Rails用認証ライブラリ
    参考になる情報が少ないため
    deviseのソースコード理解が必要

    View Slide

  18. Warden


    ログイン用Controller
    GIGYAでのログイン時、Rails・deviseへ渡されるもの
    ● UID: GIGYAのユーザを一意に特定するID
    ● UID署名: UIDの検証に使う文字列
    ● タイムスタンプ: ログインした時刻
    warden.authenticate!
    strategy.valid?
    strategy.run!
    ログイン成功!
    GigyaAuthenticatable Strategy
    deviseのAuthenticatable Strategyを継承した独自Strategy
    with_authentication_hash
    → 認証情報としてemail, passwordの代わりにUIDを使う
    authenticate!
    → UID署名とタイムスタンプでUIDを検証


    View Slide

  19. Warden
    GigyaAuthenticatable Strategy
    普通に
    ログイン
    自動で
    新規登録して
    ログイン
    漏洩
    他サイトで
    不正利用の
    可能性
    DB
    UID UID
    漏洩
    他サイトで
    不正利用は
    困難(※)
    DB
    暗号化
    (※) 暗号鍵まで漏洩しなかった場合

    View Slide

  20. 統合認証基盤「GIGYA」の導入を
    ふり返って
    • 今までにない貴重な経験を積めた
    • サードパーティ製SaaSの統合
    • オープンソースのコードの
    読み込み
    • 暗号化の知識
    • 自動テスト
    • 外部組織とのやり取り

    View Slide

  21. 統合認証基盤「GIGYA」の導入を
    ふり返って
    • 認証周りでの失敗は高リスク
    • サービス停止・課金不可
    • なりすまし
    • ログイン・新規登録が
    できないときのユーザ離脱
    • 周囲の手厚いサポートのおかげで
    現在も問題なく稼働中

    View Slide

  22. やりがいがあったタスク
    • 統合認証基盤「GIGYA」の導入
    • 倍プッシュチャレンジゲーム企画

    View Slide

  23. View Slide

  24. ...
    イベント期間終了後
    最大30,000ペリカ
    獲得!!
    当たれば2倍!
    ハズレると半分...

    View Slide

  25. ゲーム
    データ
    ページ埋め込み
    API
    DB
    非同期通信
    ● ステータス確認
    ● 抽選処理
    書き出し
    1ヶ月で作れるか?
    前例見つからず、要調査

    View Slide

  26. ゲーム
    データ
    /publics
    表示
    アセット取得

    アセット取得スクリプトからの相対パスであるため

    View Slide

  27. ゲーム
    データ
    /publics
    表示
    アセット取得
    アセット取得
    スクリプトを改造
    HTMLタグで
    アセットパスのル
    ートを渡す


    root/to/asset

    View Slide

  28. MySQL 5.7において、正しい結果はどれ
    でしょう?
    ⓘ Start presenting to display the poll results on this slide.

    View Slide


  29. ② ③
    このとき、正しい結果は
    ①〜③のどれでしょう?
    (MySQL 5.7)
    結果なし (0件)
    正解!

    View Slide


  30. ② ③
    このとき、正しい結果は
    ①〜③のどれでしょう?
    (MySQL 5.7)
    結果なし (0件)
    正解!
    倍プッシュチャレンジゲームでは
    代わりに精度を固定したdecimal型データを使用

    View Slide

  31. 倍プッシュチャレンジゲーム企画を
    ふり返って
    • 良かったこと
    • 2週間で約4000人が参加
    • BtoCらしい企画で楽しかった
    • 怖かったこと
    • 確率を扱うゲームのリスク
    • ペリカ配布失敗時のリスク
    • 成長できたこと
    • 様々な組織とのすり合わせ
    • 本セクションで話したような
    細かい技術的要素

    View Slide

  32. • ヤンマガWebで得たノウハウを
    Glossomの新しいビジネスへ
    • 技術の幅を広げ、状況に応じて
    最適な技術を選択できるよう
    引き出しを増やしていく
    • エンジニアだけでなく
    様々な立場の人の
    考えを吸収していく
    32
    入社してからのふり返り これから
    • メモは大事
    • レビューするのが成長に繋がる
    • グリーグループの文化が
    自分の成長に繋がった
    • 周囲からの手厚いサポート
    • 大企業ならではの責任あるタスク
    • ベンチャー企業の
    新人でも活躍させてもらえる環境

    View Slide

  33. 33

    View Slide