SlideShare uma empresa Scribd logo
1 de 63
Baixar para ler offline
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
2019年5月18日

ヤフー株式会社
笹沼 啓 沢田 晃一
Nuxt.js 中規模サービスを統
合した話
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
自己紹介
❏ 氏名
笹沼 啓 (ささ ま じめ)
❏ 入社年数
入社3年目
❏ 社歴
入社後から現在ま 電子書籍サービス 携わ
る(JS 触れた 入社し から)
❏ そ 他
趣味 バレーボール(週1〜2回)
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
自己紹介
❏ 氏名
沢田 晃一 (さわだ こういち)
❏ 入社年数 / 所属
新卒入社12年目 / 名古屋オフィス勤務
❏ 担当し きたサービス
ニュース、天気、防災速報、地図、ミュージッ
ク、ファンクラブ、電子書籍
❏ そ 他
最近 趣味 ペット わんこ お出かけ
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
質問 こちらへ
https://app2.sli.do/event/bswcoysn/live/questions
slido.com
#IF_A3
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
Agenda
1. サービス紹介
2. サービス 構成
3. リリースま 挑戦 苦難
a. 風土 違い
b. Atomic Designへ 挑戦
c. 実装する上 直面した課題
4. リリース後 改善
5. さら る改善を進めるため
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
Agenda
1. サービス紹介
2. サービス 構成
3. リリースま 挑戦 苦難
a. 風土 違い
b. Atomic Designへ 挑戦
c. 実装する上 直面した課題
4. リリース後 改善
5. さら る改善を進めるため
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
ebookjapan
● ヤフー株式会社(以後、「ヤフー」) 株式会社イーブックイニシアティブジャパン(以
後、「EBIJ」)が協力・連携し 運営する電子書籍販売サービス
● それぞれ 会社が運営し いた電子書籍販売サービスを統合し、2018年10月 リ
リース
https://ebookjapan.yahoo.co.jp/
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
ebookjapan
● 2016年6月、両社 資本業務提携契約が締結
● 2017年冬、新サイト 開発開始
● 2018年10月、新サイト リリース
約1年
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
ebookjapan
60万冊を超える
取り扱い冊数を誇る
国内最大級
電子書籍販売サービス
常時2,000冊を超える
無料まんが
背表紙表示や新刊自動購入
独自 機能も豊富
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
Agenda
1. サービス紹介
2. サービス 構成
3. リリースま 挑戦 苦難
a. 風土 違い
b. Atomic Designへ 挑戦
c. 実装する上 直面した課題
4. リリース後 改善
5. さら る改善を進めるため
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
サービス 構成 - 役割分担 -
ユーザー FE API DB
ヤフー EBIJ
新規 新規
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
サービス 構成 - 役割分担 -
FE
ヤフー
新規
● ヤフー資産が利用 きる
○ プラットフォームやビッグデータ ヤフーが
管理する資産を利用するこ が きる
● WEBデザイナーがいる
○ 専門職 し デザイナーがヤフー 存
在する(イーブック デザイナー いう専門
職が か た)
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
サービス 構成 - 役割分担 -
● 機能が豊富
○ Yahoo!ブックストア 比べ
eBookJapan 方が機能が豊
富だ た
○ 電子書籍サービスを運営する
上 必要 データも多く保持し
いた。
API DB
EBIJ
新規
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
サービス 構成 - FE環境 -
ClientSide
出展:https://ja.nuxtjs.org/出展:https://jp.vuejs.org/index.html
Vue.js × Nuxt.js
ServerSide
出展:https://ja.wikipedia.org/wiki/Node.js
Node.js × Express
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
サービス 構成 - FE環境 -
Vue.js × Nuxt.js を選んだ理由
● デザイナーが理解しやすい
○ Vueファイル HTML × CSS × JavaScript
○ デザイナーがFE開発 参加する予定だ た
● ライブラリをアップデートする手間削減
○ タイト スケジュールを見越し
● ドキュメントが豊富
● 採用事例が増え き 盛り上がりそう
○ React 二択 り、最終的 Vue.js × Nuxt.js
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
サービス 構成 - FE環境 -
FE 規模
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
Agenda
1. サービス紹介
2. サービス 構成
3. リリースま 挑戦 苦難
a. 風土 違い
b. Atomic Designへ 挑戦
c. 実装する上 直面した課題
4. リリース後 改善
5. さら る改善を進めるため
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
ヤフー
風土 違い
EBIJ
GOOD
● 社内プラットフォームが充実し
いる
● データが豊富
● 属人化を避け、誰 も きるよ
う 体制作り
BAD
● 制約が多い
GOOD
● スピード感 ある対応や選択
● 自由度が高い
BAD
● 属人化や場当たり的 対応が
多い
● デザイン 注力するカルチャー
が い
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
風土 違い
スクラム
写真:アフロ
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
● アジャイル開発手法 一
● 固定 短い期間(うち チーム 1Week) 単位 開発を区切り、そ 中
計画を立 る
● Developer 皆が平等。チーム 成果 ため 自発的 計画を立 る
必要があるため、自立したチーム りやすい
● デイリースクラムやレトロスペクティブを通じ 、チーム内 問題を発見しや
すい(チーム 問題 チーム 解決)
風土 違い
スクラム ?
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
風土 違い
FEエンジニア
(ヤフー)
BEエンジニア
(EBIJ)
デザイナー
(ヤフー)
企画
(EBIJ)
スクラムマスター
(ヤフー)
Aチーム
FEエンジニア
(ヤフー)
BEエンジニア
(EBIJ)
デザイナー
(ヤフー)
企画
(ヤフー)
スクラムマスター
(EBIJ)
Bチーム
プロダクトオーナー ステークホルダー
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
風土 違い
FEエンジニア
(ヤフー)
BEエンジニア
(EBIJ)
デザイナー
(ヤフー)
企画
(EBIJ)
スクラムマスター
(ヤフー)
Aチーム
FEエンジニア
(ヤフー)
BEエンジニア
(EBIJ)
デザイナー
(ヤフー)
企画
(ヤフー)
スクラムマスター
(EBIJ)
Bチーム
プロダクトオーナー ステークホルダー
所属関係 く同じチーム するこ 足
並みを揃え、相互理解を促進!
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
Agenda
1. サービス紹介
2. サービス 構成
3. リリースま 挑戦 苦難
a. 風土 違い
b. Atomic Designへ 挑戦
c. 実装する上 直面した課題
4. リリース後 改善
5. さら る改善を進めるため
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
Atomic Designへ 挑戦
Atomic Design ?
パーツやコンポーネントご 分割し、それらを組み合わせ プロダクトを構築する
いうUIデザイン手法 一
出展:Atomic Design Methodology
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
● 新規開発だ たため、途中 導入するより導入コストが抑えられる
○ す き いるも をATOMS 分解し いく 手間がかかるが、新し
く追加し いく場合 コストを抑えられる
● デザイン 変更が多発するこ が予想されたため
○ デザイン 変更 も対応 きる変化 強いシステムが必要だ た
○ Atomic Design パーツが共通化され いるため、修正を最小限 抑えるこ
が きる
● UI 一貫性を保 こ が きる
○ ページ 寄らず使われ いるパーツ 共通 、一貫性を担保 きる
Atomic Designへ 挑戦
Atomic Designを使おう 思 た理由
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
● 新規開発だ たため、途中 導入するより導入コストが抑えられる
○ す き いるも をATOMS 分解し いく 手間がかかるが、新し
く追加し いく場合 コストを抑えられる
● デザイン 変更が多発するこ が予想されたため
○ デザイン 変更 も対応 きる変化 強いシステムが必要だ た
○ Atomic Design パーツが共通化され いるため、修正を最小限 抑えるこ
が きる
● UI 一貫性を保 こ が きる
○ ページ 寄らず使われ いるパーツ 共通 、一貫性を担保 きる
Atomic Designへ 挑戦
Atomic Designを使おう 思 た理由
しかし、うまくいきません した…。
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
Atomic Designへ 挑戦
原因1: デザイナー エンジニア 成果物 違い
デザイナー FEエンジニア
html, css
ATOMSや
MOLECULES
デザイナーから html, cssが受け渡され、FEエンジニアがAtomic Design 沿
たVueファイル 分割し いた
→ 「分割」 いう不要 手間が発生
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
Atomic Designへ 挑戦
原因2: デザイナー コミュニケーション不足
写真:アフロ
● メンバー 出入りが多か た
● デザイナー・エンジニアそれぞれ 体制
作りを進め しま た
● エンジニア主導 試し み 、後からデ
ザイナー も取り入れ もらう もりだ
たが、後回し しまい難しく た
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
Atomic Designへ 挑戦
原因3: スクラム 相性
写真:アフロ
● スクラム ミニマム E2E プロダクトを毎スプリントリリースする手法
● Atomic Design よう 共通化 対する優先度が低か た
出展:Atomic Design Methodology
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
Atomic Designへ 挑戦
Q: うするべきだ た か?
A: 最初からデザイナー 協力し Atomic Designを導入する
● デザイナーがAtomic Design 沿 分割したVueファイル(template style
み)を作成し、FEエンジニアがscriptを加える
● リポジトリを分けるこ 、デザイナーがPRを出しやすく るかも
デザイナー FEエンジニア
Atomic Design 分割したVue
(template, style み)
Vue
(script付き)
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
Agenda
1. サービス紹介
2. サービス 構成
3. リリースま 挑戦 苦難
a. 風土 違い
b. Atomic Designへ 挑戦
c. 実装する上 直面した課題
4. リリース後 改善
5. さら る改善を進めるため
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
実装する上 直面した課題 - 大 小を兼 過ぎ いるデータ -
FE API
「作品名」が欲しい!
い!「作品」
(作品名・著者・
ジャンル・連載誌・etc)
レスポンス 必要過多 データが…
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
実装する上 直面した課題 - 大 小を兼 過ぎ いるデータ -
↓「作品」 レスポンスサンプル
※ 本当 データ これ 10倍 かく 複雑だ た
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
実装する上 直面した課題 - 大 小を兼 過ぎ いるデータ -
本来 API側 必要 データだけを返すよう すべき
しかし、
必要 APIを作成する 精一杯だ た…
FE側 mixinsを使 get処理をま めるこ !
写真:アフロ
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
実装する上 直面した課題 - 大 小を兼 過ぎ いるデータ -
mixins/publication.js
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
実装する上 直面した課題 - 大 小を兼 過ぎ いるデータ -
sample.vue
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
実装する上 直面した課題 - mixins utils化 -
Vueファイル内 mixinsを使 データ
を抽出するま 良か た!
しかし、
get処理がま ま 便利 りすぎた
ため Vueファイル以外 も使い始め
しま た…。
写真:アフロ
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
実装する上 直面した課題 - mixins utils化 -
getters.js
mixinsをutils よう 使 しま いる!!
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
実装する上 直面した課題 - mixins utils化 -
mixins/publication.js
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
実装する上 直面した課題 - mixins utils化 -
getters.js
isMember がtrue もnormalPrice が返 き しまう!!
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
実装する上 直面した課題 - mixins utils化 -
getters.js
isMember がtrue もnormalPrice が返 き しまう!!
➔ mixins Vueファイル み使う
➔ storeやサーバーサイド も使う処理
common以下 utilsを別途作成する
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
実装する上 直面した課題 - 404 -
● オールグリーン しか表示 き い
○ ページを構築する要素を取得するため たたく複数 APIが全 成功し い
404
● 直列処理
○ 複数 API 処理が直列処理 おり、タイムアウト 404
● 初期描画 不必要 APIへ リクエスト
○ 初期描画時 必須 いデータを取得する処理が非同期 おらず、タ
イムアウト 404
当たり前 内容だが、若いチームやスケジュール優先 場合 注意!
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
Agenda
1. サービス紹介
2. サービス 構成
3. リリースま 挑戦 苦難
a. 風土 違い
b. Atomic Designへ 挑戦
c. 実装する上 直面した課題
4. リリース後 改善
5. さら る改善を進めるため
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
リリース後 改善 - 体制 -
● 「見せられるも を作る」こ 集中し しま た
○ スプリント毎 、見せられるも を作るこ 集中し しまい、エラー処理やシス
テム面 改善が放置気味 いた
● 経験豊富 エンジニアが入 い か た
○ FEチーム 比較的若いエンジニア 構成され おり、新規サービス 立ち上
げ 携わ たこ あるエンジニアがほ ん い か た
(最適配置をおこ た結果、アプリ、BE おじさんエンジニアが
集ま しま た、、)
リリース 至るま 体制面 課題
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
リリース後 改善 - 体制 -
改善1: FEチーム メンバー 追加
FEエンジニア BEエンジニア
デザイナー 企画
スクラムマスター
Aチーム
FEエンジニア BEエンジニア
デザイナー 企画
スクラムマスター
Bチーム
スクラム
これま
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
リリース後 改善 - 体制 -
改善1: FEチーム メンバー 追加
FEエンジニア BEエンジニア
デザイナー 企画
スクラムマスター
Aチーム
FEエンジニア BEエンジニア
デザイナー 企画
スクラムマスター
Bチーム
スクラム
FEエンジニア
名古屋チーム(1人)
追加
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
リリース後 改善 - 体制 -
● スクラムチーム
○ これま 通り 機能追加、機能面 バグ修正
リリース後 追加し い いけ い機能がたくさんあ た
● 名古屋チーム
○ スクラムチーム FEエンジニア サポート
コードレベル 確認や、困 たこ 相談
○ システム面 改善サポート
パッケージ アップデートやパフォーマンス改善
各チーム 役割
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
リリース後 改善 - 体制 -
改善2: FEエンジニア 話し合う場を作る
FEエンジニア
FEエンジニア
FEエンジニア
FEエンジニア FEエンジニア
● WEB 明るい未来を考える会
○ 新しいこ へ 挑戦
○ 実装時 見 けた課題 共有
○ 困 いるこ 相談
スクラム 拾いきれ い か た
課題を拾えるよう !
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
リリース後 改善 - システム
● パフォーマンス改善
○ 処理フロー 見直し
○ レスポンスサイズ 削減
○ JSファイル容量 削減
● パッケージ アップデート、見直し
○ Nuxt.js v1からv2へ アップデート
○ より最適 パッケージへ 変更
● Node.js アップデート等
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
リリース後 改善 - システム
● パフォーマンス改善
○ 処理フロー 見直し
○ レスポンスサイズ 削減
○ JSファイル容量 削減
● パッケージ アップデート、見直し
○ Nuxt.js v1からv2へ アップデート
○ より最適 パッケージへ 変更
● Node.js アップデート等
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
リリース後 改善 - パフォーマンス
改善1: 処理フロー 見直し
Server
ユーザ
情報1
ユーザ
情報2
ユーザ
情報3
書誌
情報2
書誌
情報1
60ms 80ms 50ms
Client
120ms 150ms
描画
処理
対応前:460ms
● 必要 情報をひ ひ 順番 いた
● 描画後 ブラウザから取得 いいも もサーバ 取得し いた
Before
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
リリース後 改善 - パフォーマンス
改善1: 処理フロー 見直し
Server
ユーザ
情報1
ユーザ
情報3
ユーザ
情報2書誌
情報2
書誌
情報1
60ms
50ms
80ms
Client
120ms
150ms
描画
処理
対応後:210ms
● ま められる情報 Promise.all
● 描画後 もいい情報 描画後
After
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
リリース後 改善 - パフォーマンス
改善2: レスポンスサイズ 削減
500KB
350KB
Server
80ms
Client
mixins
全 加工大き
データ1
500KB
350KB
API
50ms
150ms
Before
大き
データ1
大き
データ2
大き
データ2
850KB JSON。。
● サイズが かくデータを受け取る 時間が
かか いた
● 大き データをそ ままClient 処理し いた
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
リリース後 改善 - パフォーマンス
改善2: レスポンスサイズ 削減
不要 フィールドを
削 たデータ1
100KB
不要 フィールドを
削 たデータ2
70KB
Server
40ms
Client
最低限を
mixins処理
不要 フィールドを
削 たデータ1
100KB
不要 フィールドを
削 たデータ2
70KB
API
30ms
20ms
After
必要 も だけ
加工したデータ1
必要 も だけ
加工したデータ2
40KB
30KB
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
リリース後 改善 - パフォーマンス
改善2: レスポンスサイズ 削減
不要 フィールドを
削 たデータ1
100KB
不要 フィールドを
削 たデータ2
70KB
Server
40ms
Client
最低限を
mixins処理
不要 フィールドを
削 たデータ1
100KB
不要 フィールドを
削 たデータ2
70KB
API
30ms
20ms
After
必要 も だけ
加工したデータ1
必要 も だけ
加工したデータ2
40KB
30KB
● 不要 フィールドを削 たこ 全体 やり り
が速く た
● mixins 処理を減らしたこ Client 処理
が軽く た(体感)
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
リリース後 改善 - パフォーマンス
改善3: JSファイル 削減
● Webpack Bundle Analyzer
○ バンドルされたファイル 内容を確
認 きるプラグイン
○ Nuxt.js config 1行追加するだ
け 利用可能
○ 想像以上 必要 いファイルが
多く含まれ いた。。
対応前: 7.23MB
Before
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
リリース後 改善 - パフォーマンス
改善3: JSファイル 削減
● style.css 除去
● Package 見直し
● 不要コンポーネント削除
対応後: 2.8MB
After
60%程度削減 きた!
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
Agenda
1. サービス紹介
2. サービス 構成
3. リリースま 挑戦 苦難
a. 風土 違い
b. Atomic Designへ 挑戦
c. 実装する上 直面した課題
4. リリース後 改善
5. さら る改善を進めるため
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
さら る改善を進めるため
これから 体制(4/1〜)
FEエンジニア BEエンジニア
デザイナー 企画
スクラムマスター
Aチーム
FEエンジニア BEエンジニア
デザイナー 企画
スクラムマスター
Bチーム
スクラム
FEエンジニア
名古屋
名古屋もスクラムチーム !
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
さら る改善を進めるため
● スクラム
○ 70%程度を使い、これま おこ いた機能追加等をし かり
進め いく
● スクラム外
○ 30%程度を使い、システム面 改善を全員 おこ いく
パフォーマンス改善、バグ修正、リファクタリング等
スクラムチーム(FEエンジニア) 役割
属人化を避けFEエンジニア ら誰 も
システム面 改善を きる体制
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
ま め - リリースま 挑戦 苦難 -
● 風土 違い
○ ヤフー EBIJ 文化が違う 敵対するよう 雰囲気
スクラムを利用し 足並みを揃えるこ 解決!
● Atomic Designへ 挑戦
○ パーツご 分割するUIデザイン手法を取り入れよう したが断念
デザイナー 協力し 進め いくこ が重要!
● 実装する上 直面した課題
○ 大きすぎるデータ・mixins 使いすぎ・404
mixins 処理をま める・utilファイルを作る・実装方法 注意
写真:アフロ
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
ま め - リリース後 改善 -
● 体制
○ 名古屋チームもスクラム Join
○ FEエンジニア 話し合い 場を作る
● システム
○ パフォーマンス改善やパッケージ アップデート、見直しを行 た
○ パフォーマンス改善
■ 処理フロー 見直し
■ レスポンスサイズ 削減
■ JSファイル 削減
Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
最後
ebookjapan これからも改善を
進め いきます!
https://ebookjapan.yahoo.co.jp/

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
ストーリーポイントで見積もるということ
ストーリーポイントで見積もるということストーリーポイントで見積もるということ
ストーリーポイントで見積もるということ
 
Digitaltransformation Journey
Digitaltransformation JourneyDigitaltransformation Journey
Digitaltransformation Journey
 
「PdMと考えるQAとプロダクトマネジメント」
「PdMと考えるQAとプロダクトマネジメント」「PdMと考えるQAとプロダクトマネジメント」
「PdMと考えるQAとプロダクトマネジメント」
 
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
 
マジカルsvnとキュアgit
マジカルsvnとキュアgitマジカルsvnとキュアgit
マジカルsvnとキュアgit
 
絶望と最後の希望
絶望と最後の希望絶望と最後の希望
絶望と最後の希望
 
マーブル図で怖くないRxJS
マーブル図で怖くないRxJSマーブル図で怖くないRxJS
マーブル図で怖くないRxJS
 
経営のアジリティを支えるDevOpsと組織
経営のアジリティを支えるDevOpsと組織経営のアジリティを支えるDevOpsと組織
経営のアジリティを支えるDevOpsと組織
 
逆境から新規事業をスタートアップする「仮説検証型アジャイル開発」の実践
逆境から新規事業をスタートアップする「仮説検証型アジャイル開発」の実践逆境から新規事業をスタートアップする「仮説検証型アジャイル開発」の実践
逆境から新規事業をスタートアップする「仮説検証型アジャイル開発」の実践
 
Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~
 
はじめてのアジャイル
はじめてのアジャイルはじめてのアジャイル
はじめてのアジャイル
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
LINE のUI自動テスト事例
LINE のUI自動テスト事例LINE のUI自動テスト事例
LINE のUI自動テスト事例
 
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤
datatech-jp Casual Talks#3  データエンジニアを採用するための試行錯誤datatech-jp Casual Talks#3  データエンジニアを採用するための試行錯誤
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤
 
アジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とはアジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とは
 
60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacate60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacate
 
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
 
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
 
はじめてのPRD
はじめてのPRDはじめてのPRD
はじめてのPRD
 

Semelhante a Unification of the middle scale services by Nuxt.js

Semelhante a Unification of the middle scale services by Nuxt.js (20)

現場のインフラエンジニアから見たヤフー #ヤフー名古屋
現場のインフラエンジニアから見たヤフー #ヤフー名古屋現場のインフラエンジニアから見たヤフー #ヤフー名古屋
現場のインフラエンジニアから見たヤフー #ヤフー名古屋
 
if-up 2019 | A2. クラウドにつながり始めたハードウェア
if-up 2019 | A2. クラウドにつながり始めたハードウェアif-up 2019 | A2. クラウドにつながり始めたハードウェア
if-up 2019 | A2. クラウドにつながり始めたハードウェア
 
Googleアシスタントアプリ実際のところ
Googleアシスタントアプリ実際のところ Googleアシスタントアプリ実際のところ
Googleアシスタントアプリ実際のところ
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
 
エクストリーム・プログラミング開発におけるUIテスト #yjbonfire
エクストリーム・プログラミング開発におけるUIテスト #yjbonfireエクストリーム・プログラミング開発におけるUIテスト #yjbonfire
エクストリーム・プログラミング開発におけるUIテスト #yjbonfire
 
YJTC18 A-1 大規模サーバの戦略
YJTC18 A-1 大規模サーバの戦略YJTC18 A-1 大規模サーバの戦略
YJTC18 A-1 大規模サーバの戦略
 
It in the future and cloud
It in the future and cloudIt in the future and cloud
It in the future and cloud
 
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular SessionsSpring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
 
Yahoo!カレンダーにおける技術移行について - Legacy Meetup Kyoto -
Yahoo!カレンダーにおける技術移行について - Legacy Meetup Kyoto -Yahoo!カレンダーにおける技術移行について - Legacy Meetup Kyoto -
Yahoo!カレンダーにおける技術移行について - Legacy Meetup Kyoto -
 
Elasticsearch勉強会
Elasticsearch勉強会Elasticsearch勉強会
Elasticsearch勉強会
 
決済金融から始めるデータドリブンカンパニー #yjmu
決済金融から始めるデータドリブンカンパニー #yjmu決済金融から始めるデータドリブンカンパニー #yjmu
決済金融から始めるデータドリブンカンパニー #yjmu
 
20180319 ccon sync kintone
20180319 ccon sync kintone20180319 ccon sync kintone
20180319 ccon sync kintone
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
 
マーケティングテクノロジー勉強会
マーケティングテクノロジー勉強会マーケティングテクノロジー勉強会
マーケティングテクノロジー勉強会
 
ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介
 
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
 
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
 
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
 
決済金融から始めるデータドリブンカンパニー
決済金融から始めるデータドリブンカンパニー決済金融から始めるデータドリブンカンパニー
決済金融から始めるデータドリブンカンパニー
 

Unification of the middle scale services by Nuxt.js

  • 1. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 2019年5月18日
 ヤフー株式会社 笹沼 啓 沢田 晃一 Nuxt.js 中規模サービスを統 合した話
  • 2. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 自己紹介 ❏ 氏名 笹沼 啓 (ささ ま じめ) ❏ 入社年数 入社3年目 ❏ 社歴 入社後から現在ま 電子書籍サービス 携わ る(JS 触れた 入社し から) ❏ そ 他 趣味 バレーボール(週1〜2回)
  • 3. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 自己紹介 ❏ 氏名 沢田 晃一 (さわだ こういち) ❏ 入社年数 / 所属 新卒入社12年目 / 名古屋オフィス勤務 ❏ 担当し きたサービス ニュース、天気、防災速報、地図、ミュージッ ク、ファンクラブ、電子書籍 ❏ そ 他 最近 趣味 ペット わんこ お出かけ
  • 4. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 質問 こちらへ https://app2.sli.do/event/bswcoysn/live/questions slido.com #IF_A3
  • 5. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. Agenda 1. サービス紹介 2. サービス 構成 3. リリースま 挑戦 苦難 a. 風土 違い b. Atomic Designへ 挑戦 c. 実装する上 直面した課題 4. リリース後 改善 5. さら る改善を進めるため
  • 6. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. Agenda 1. サービス紹介 2. サービス 構成 3. リリースま 挑戦 苦難 a. 風土 違い b. Atomic Designへ 挑戦 c. 実装する上 直面した課題 4. リリース後 改善 5. さら る改善を進めるため
  • 7. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. ebookjapan ● ヤフー株式会社(以後、「ヤフー」) 株式会社イーブックイニシアティブジャパン(以 後、「EBIJ」)が協力・連携し 運営する電子書籍販売サービス ● それぞれ 会社が運営し いた電子書籍販売サービスを統合し、2018年10月 リ リース https://ebookjapan.yahoo.co.jp/
  • 8. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. ebookjapan ● 2016年6月、両社 資本業務提携契約が締結 ● 2017年冬、新サイト 開発開始 ● 2018年10月、新サイト リリース 約1年
  • 9. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. ebookjapan 60万冊を超える 取り扱い冊数を誇る 国内最大級 電子書籍販売サービス 常時2,000冊を超える 無料まんが 背表紙表示や新刊自動購入 独自 機能も豊富
  • 10. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. Agenda 1. サービス紹介 2. サービス 構成 3. リリースま 挑戦 苦難 a. 風土 違い b. Atomic Designへ 挑戦 c. 実装する上 直面した課題 4. リリース後 改善 5. さら る改善を進めるため
  • 11. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. サービス 構成 - 役割分担 - ユーザー FE API DB ヤフー EBIJ 新規 新規
  • 12. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. サービス 構成 - 役割分担 - FE ヤフー 新規 ● ヤフー資産が利用 きる ○ プラットフォームやビッグデータ ヤフーが 管理する資産を利用するこ が きる ● WEBデザイナーがいる ○ 専門職 し デザイナーがヤフー 存 在する(イーブック デザイナー いう専門 職が か た)
  • 13. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. サービス 構成 - 役割分担 - ● 機能が豊富 ○ Yahoo!ブックストア 比べ eBookJapan 方が機能が豊 富だ た ○ 電子書籍サービスを運営する 上 必要 データも多く保持し いた。 API DB EBIJ 新規
  • 14. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. サービス 構成 - FE環境 - ClientSide 出展:https://ja.nuxtjs.org/出展:https://jp.vuejs.org/index.html Vue.js × Nuxt.js ServerSide 出展:https://ja.wikipedia.org/wiki/Node.js Node.js × Express
  • 15. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. サービス 構成 - FE環境 - Vue.js × Nuxt.js を選んだ理由 ● デザイナーが理解しやすい ○ Vueファイル HTML × CSS × JavaScript ○ デザイナーがFE開発 参加する予定だ た ● ライブラリをアップデートする手間削減 ○ タイト スケジュールを見越し ● ドキュメントが豊富 ● 採用事例が増え き 盛り上がりそう ○ React 二択 り、最終的 Vue.js × Nuxt.js
  • 16. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. サービス 構成 - FE環境 - FE 規模
  • 17. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. Agenda 1. サービス紹介 2. サービス 構成 3. リリースま 挑戦 苦難 a. 風土 違い b. Atomic Designへ 挑戦 c. 実装する上 直面した課題 4. リリース後 改善 5. さら る改善を進めるため
  • 18. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. ヤフー 風土 違い EBIJ GOOD ● 社内プラットフォームが充実し いる ● データが豊富 ● 属人化を避け、誰 も きるよ う 体制作り BAD ● 制約が多い GOOD ● スピード感 ある対応や選択 ● 自由度が高い BAD ● 属人化や場当たり的 対応が 多い ● デザイン 注力するカルチャー が い
  • 19. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 風土 違い スクラム 写真:アフロ
  • 20. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. ● アジャイル開発手法 一 ● 固定 短い期間(うち チーム 1Week) 単位 開発を区切り、そ 中 計画を立 る ● Developer 皆が平等。チーム 成果 ため 自発的 計画を立 る 必要があるため、自立したチーム りやすい ● デイリースクラムやレトロスペクティブを通じ 、チーム内 問題を発見しや すい(チーム 問題 チーム 解決) 風土 違い スクラム ?
  • 21. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 風土 違い FEエンジニア (ヤフー) BEエンジニア (EBIJ) デザイナー (ヤフー) 企画 (EBIJ) スクラムマスター (ヤフー) Aチーム FEエンジニア (ヤフー) BEエンジニア (EBIJ) デザイナー (ヤフー) 企画 (ヤフー) スクラムマスター (EBIJ) Bチーム プロダクトオーナー ステークホルダー
  • 22. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 風土 違い FEエンジニア (ヤフー) BEエンジニア (EBIJ) デザイナー (ヤフー) 企画 (EBIJ) スクラムマスター (ヤフー) Aチーム FEエンジニア (ヤフー) BEエンジニア (EBIJ) デザイナー (ヤフー) 企画 (ヤフー) スクラムマスター (EBIJ) Bチーム プロダクトオーナー ステークホルダー 所属関係 く同じチーム するこ 足 並みを揃え、相互理解を促進!
  • 23. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. Agenda 1. サービス紹介 2. サービス 構成 3. リリースま 挑戦 苦難 a. 風土 違い b. Atomic Designへ 挑戦 c. 実装する上 直面した課題 4. リリース後 改善 5. さら る改善を進めるため
  • 24. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. Atomic Designへ 挑戦 Atomic Design ? パーツやコンポーネントご 分割し、それらを組み合わせ プロダクトを構築する いうUIデザイン手法 一 出展:Atomic Design Methodology
  • 25. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. ● 新規開発だ たため、途中 導入するより導入コストが抑えられる ○ す き いるも をATOMS 分解し いく 手間がかかるが、新し く追加し いく場合 コストを抑えられる ● デザイン 変更が多発するこ が予想されたため ○ デザイン 変更 も対応 きる変化 強いシステムが必要だ た ○ Atomic Design パーツが共通化され いるため、修正を最小限 抑えるこ が きる ● UI 一貫性を保 こ が きる ○ ページ 寄らず使われ いるパーツ 共通 、一貫性を担保 きる Atomic Designへ 挑戦 Atomic Designを使おう 思 た理由
  • 26. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. ● 新規開発だ たため、途中 導入するより導入コストが抑えられる ○ す き いるも をATOMS 分解し いく 手間がかかるが、新し く追加し いく場合 コストを抑えられる ● デザイン 変更が多発するこ が予想されたため ○ デザイン 変更 も対応 きる変化 強いシステムが必要だ た ○ Atomic Design パーツが共通化され いるため、修正を最小限 抑えるこ が きる ● UI 一貫性を保 こ が きる ○ ページ 寄らず使われ いるパーツ 共通 、一貫性を担保 きる Atomic Designへ 挑戦 Atomic Designを使おう 思 た理由 しかし、うまくいきません した…。
  • 27. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. Atomic Designへ 挑戦 原因1: デザイナー エンジニア 成果物 違い デザイナー FEエンジニア html, css ATOMSや MOLECULES デザイナーから html, cssが受け渡され、FEエンジニアがAtomic Design 沿 たVueファイル 分割し いた → 「分割」 いう不要 手間が発生
  • 28. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. Atomic Designへ 挑戦 原因2: デザイナー コミュニケーション不足 写真:アフロ ● メンバー 出入りが多か た ● デザイナー・エンジニアそれぞれ 体制 作りを進め しま た ● エンジニア主導 試し み 、後からデ ザイナー も取り入れ もらう もりだ たが、後回し しまい難しく た
  • 29. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. Atomic Designへ 挑戦 原因3: スクラム 相性 写真:アフロ ● スクラム ミニマム E2E プロダクトを毎スプリントリリースする手法 ● Atomic Design よう 共通化 対する優先度が低か た 出展:Atomic Design Methodology
  • 30. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. Atomic Designへ 挑戦 Q: うするべきだ た か? A: 最初からデザイナー 協力し Atomic Designを導入する ● デザイナーがAtomic Design 沿 分割したVueファイル(template style み)を作成し、FEエンジニアがscriptを加える ● リポジトリを分けるこ 、デザイナーがPRを出しやすく るかも デザイナー FEエンジニア Atomic Design 分割したVue (template, style み) Vue (script付き)
  • 31. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. Agenda 1. サービス紹介 2. サービス 構成 3. リリースま 挑戦 苦難 a. 風土 違い b. Atomic Designへ 挑戦 c. 実装する上 直面した課題 4. リリース後 改善 5. さら る改善を進めるため
  • 32. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 実装する上 直面した課題 - 大 小を兼 過ぎ いるデータ - FE API 「作品名」が欲しい! い!「作品」 (作品名・著者・ ジャンル・連載誌・etc) レスポンス 必要過多 データが…
  • 33. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 実装する上 直面した課題 - 大 小を兼 過ぎ いるデータ - ↓「作品」 レスポンスサンプル ※ 本当 データ これ 10倍 かく 複雑だ た
  • 34. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 実装する上 直面した課題 - 大 小を兼 過ぎ いるデータ - 本来 API側 必要 データだけを返すよう すべき しかし、 必要 APIを作成する 精一杯だ た… FE側 mixinsを使 get処理をま めるこ ! 写真:アフロ
  • 35. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 実装する上 直面した課題 - 大 小を兼 過ぎ いるデータ - mixins/publication.js
  • 36. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 実装する上 直面した課題 - 大 小を兼 過ぎ いるデータ - sample.vue
  • 37. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 実装する上 直面した課題 - mixins utils化 - Vueファイル内 mixinsを使 データ を抽出するま 良か た! しかし、 get処理がま ま 便利 りすぎた ため Vueファイル以外 も使い始め しま た…。 写真:アフロ
  • 38. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 実装する上 直面した課題 - mixins utils化 - getters.js mixinsをutils よう 使 しま いる!!
  • 39. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 実装する上 直面した課題 - mixins utils化 - mixins/publication.js
  • 40. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 実装する上 直面した課題 - mixins utils化 - getters.js isMember がtrue もnormalPrice が返 き しまう!!
  • 41. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 実装する上 直面した課題 - mixins utils化 - getters.js isMember がtrue もnormalPrice が返 き しまう!! ➔ mixins Vueファイル み使う ➔ storeやサーバーサイド も使う処理 common以下 utilsを別途作成する
  • 42. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 実装する上 直面した課題 - 404 - ● オールグリーン しか表示 き い ○ ページを構築する要素を取得するため たたく複数 APIが全 成功し い 404 ● 直列処理 ○ 複数 API 処理が直列処理 おり、タイムアウト 404 ● 初期描画 不必要 APIへ リクエスト ○ 初期描画時 必須 いデータを取得する処理が非同期 おらず、タ イムアウト 404 当たり前 内容だが、若いチームやスケジュール優先 場合 注意!
  • 43. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. Agenda 1. サービス紹介 2. サービス 構成 3. リリースま 挑戦 苦難 a. 風土 違い b. Atomic Designへ 挑戦 c. 実装する上 直面した課題 4. リリース後 改善 5. さら る改善を進めるため
  • 44. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. リリース後 改善 - 体制 - ● 「見せられるも を作る」こ 集中し しま た ○ スプリント毎 、見せられるも を作るこ 集中し しまい、エラー処理やシス テム面 改善が放置気味 いた ● 経験豊富 エンジニアが入 い か た ○ FEチーム 比較的若いエンジニア 構成され おり、新規サービス 立ち上 げ 携わ たこ あるエンジニアがほ ん い か た (最適配置をおこ た結果、アプリ、BE おじさんエンジニアが 集ま しま た、、) リリース 至るま 体制面 課題
  • 45. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. リリース後 改善 - 体制 - 改善1: FEチーム メンバー 追加 FEエンジニア BEエンジニア デザイナー 企画 スクラムマスター Aチーム FEエンジニア BEエンジニア デザイナー 企画 スクラムマスター Bチーム スクラム これま
  • 46. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. リリース後 改善 - 体制 - 改善1: FEチーム メンバー 追加 FEエンジニア BEエンジニア デザイナー 企画 スクラムマスター Aチーム FEエンジニア BEエンジニア デザイナー 企画 スクラムマスター Bチーム スクラム FEエンジニア 名古屋チーム(1人) 追加
  • 47. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. リリース後 改善 - 体制 - ● スクラムチーム ○ これま 通り 機能追加、機能面 バグ修正 リリース後 追加し い いけ い機能がたくさんあ た ● 名古屋チーム ○ スクラムチーム FEエンジニア サポート コードレベル 確認や、困 たこ 相談 ○ システム面 改善サポート パッケージ アップデートやパフォーマンス改善 各チーム 役割
  • 48. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. リリース後 改善 - 体制 - 改善2: FEエンジニア 話し合う場を作る FEエンジニア FEエンジニア FEエンジニア FEエンジニア FEエンジニア ● WEB 明るい未来を考える会 ○ 新しいこ へ 挑戦 ○ 実装時 見 けた課題 共有 ○ 困 いるこ 相談 スクラム 拾いきれ い か た 課題を拾えるよう !
  • 49. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. リリース後 改善 - システム ● パフォーマンス改善 ○ 処理フロー 見直し ○ レスポンスサイズ 削減 ○ JSファイル容量 削減 ● パッケージ アップデート、見直し ○ Nuxt.js v1からv2へ アップデート ○ より最適 パッケージへ 変更 ● Node.js アップデート等
  • 50. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. リリース後 改善 - システム ● パフォーマンス改善 ○ 処理フロー 見直し ○ レスポンスサイズ 削減 ○ JSファイル容量 削減 ● パッケージ アップデート、見直し ○ Nuxt.js v1からv2へ アップデート ○ より最適 パッケージへ 変更 ● Node.js アップデート等
  • 51. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. リリース後 改善 - パフォーマンス 改善1: 処理フロー 見直し Server ユーザ 情報1 ユーザ 情報2 ユーザ 情報3 書誌 情報2 書誌 情報1 60ms 80ms 50ms Client 120ms 150ms 描画 処理 対応前:460ms ● 必要 情報をひ ひ 順番 いた ● 描画後 ブラウザから取得 いいも もサーバ 取得し いた Before
  • 52. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. リリース後 改善 - パフォーマンス 改善1: 処理フロー 見直し Server ユーザ 情報1 ユーザ 情報3 ユーザ 情報2書誌 情報2 書誌 情報1 60ms 50ms 80ms Client 120ms 150ms 描画 処理 対応後:210ms ● ま められる情報 Promise.all ● 描画後 もいい情報 描画後 After
  • 53. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. リリース後 改善 - パフォーマンス 改善2: レスポンスサイズ 削減 500KB 350KB Server 80ms Client mixins 全 加工大き データ1 500KB 350KB API 50ms 150ms Before 大き データ1 大き データ2 大き データ2 850KB JSON。。 ● サイズが かくデータを受け取る 時間が かか いた ● 大き データをそ ままClient 処理し いた
  • 54. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. リリース後 改善 - パフォーマンス 改善2: レスポンスサイズ 削減 不要 フィールドを 削 たデータ1 100KB 不要 フィールドを 削 たデータ2 70KB Server 40ms Client 最低限を mixins処理 不要 フィールドを 削 たデータ1 100KB 不要 フィールドを 削 たデータ2 70KB API 30ms 20ms After 必要 も だけ 加工したデータ1 必要 も だけ 加工したデータ2 40KB 30KB
  • 55. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. リリース後 改善 - パフォーマンス 改善2: レスポンスサイズ 削減 不要 フィールドを 削 たデータ1 100KB 不要 フィールドを 削 たデータ2 70KB Server 40ms Client 最低限を mixins処理 不要 フィールドを 削 たデータ1 100KB 不要 フィールドを 削 たデータ2 70KB API 30ms 20ms After 必要 も だけ 加工したデータ1 必要 も だけ 加工したデータ2 40KB 30KB ● 不要 フィールドを削 たこ 全体 やり り が速く た ● mixins 処理を減らしたこ Client 処理 が軽く た(体感)
  • 56. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. リリース後 改善 - パフォーマンス 改善3: JSファイル 削減 ● Webpack Bundle Analyzer ○ バンドルされたファイル 内容を確 認 きるプラグイン ○ Nuxt.js config 1行追加するだ け 利用可能 ○ 想像以上 必要 いファイルが 多く含まれ いた。。 対応前: 7.23MB Before
  • 57. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. リリース後 改善 - パフォーマンス 改善3: JSファイル 削減 ● style.css 除去 ● Package 見直し ● 不要コンポーネント削除 対応後: 2.8MB After 60%程度削減 きた!
  • 58. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. Agenda 1. サービス紹介 2. サービス 構成 3. リリースま 挑戦 苦難 a. 風土 違い b. Atomic Designへ 挑戦 c. 実装する上 直面した課題 4. リリース後 改善 5. さら る改善を進めるため
  • 59. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. さら る改善を進めるため これから 体制(4/1〜) FEエンジニア BEエンジニア デザイナー 企画 スクラムマスター Aチーム FEエンジニア BEエンジニア デザイナー 企画 スクラムマスター Bチーム スクラム FEエンジニア 名古屋 名古屋もスクラムチーム !
  • 60. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. さら る改善を進めるため ● スクラム ○ 70%程度を使い、これま おこ いた機能追加等をし かり 進め いく ● スクラム外 ○ 30%程度を使い、システム面 改善を全員 おこ いく パフォーマンス改善、バグ修正、リファクタリング等 スクラムチーム(FEエンジニア) 役割 属人化を避けFEエンジニア ら誰 も システム面 改善を きる体制
  • 61. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. ま め - リリースま 挑戦 苦難 - ● 風土 違い ○ ヤフー EBIJ 文化が違う 敵対するよう 雰囲気 スクラムを利用し 足並みを揃えるこ 解決! ● Atomic Designへ 挑戦 ○ パーツご 分割するUIデザイン手法を取り入れよう したが断念 デザイナー 協力し 進め いくこ が重要! ● 実装する上 直面した課題 ○ 大きすぎるデータ・mixins 使いすぎ・404 mixins 処理をま める・utilファイルを作る・実装方法 注意 写真:アフロ
  • 62. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. ま め - リリース後 改善 - ● 体制 ○ 名古屋チームもスクラム Join ○ FEエンジニア 話し合い 場を作る ● システム ○ パフォーマンス改善やパッケージ アップデート、見直しを行 た ○ パフォーマンス改善 ■ 処理フロー 見直し ■ レスポンスサイズ 削減 ■ JSファイル 削減
  • 63. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 最後 ebookjapan これからも改善を 進め いきます! https://ebookjapan.yahoo.co.jp/