Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

5 「やんちゃ」 だねぇ…

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

9 https://yanmaga.jp by

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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を検証 〜 〜

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

ゲーム データ /publics 表示 アセット取得 ✕ アセット取得スクリプトからの相対パスであるため ✕

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

33