SlideShare a Scribd company logo
アイスタイル特設サイトにおける
Vue.jsの導入事例
Laravel/Vue.js勉強会#8 オールスターズ @KenjiroKubota
Profile. ~ 2015/08 istyle.inc
久保田 賢二朗
● PHP(Laravel/Phalcon)
● JavaScript(Vue.js/Svelte)
● Scala
kenjiro kubota @kubotak_public
テクノロジー本部 R&D 部技術開発部 チーフエンジニア
Laravel JP Conference 2019 副実行委員長 / RoppongiDesignersメンバー
PR.
株式会社アイスタイル
istyle Inc.
インターネットのコスメ情報ポータルサイト
「@cosme(アットコスメ)」
の開発・運営
コスメだけではなくビューティ全般、日本だけではなく世界で"Beauty"
に係る人や企業、個人事業主が活躍できるプラットフォームを作る。
アイスタイルは、「Beauty×IT」の世界ナンバーワンを目指します。
Laravelの話題はありません。
sorry...
@cosme Beauty Day 2018
特設サイトでVue.jsを導入
国内最大級
1,900ブランド
35,000アイテム
20%ポイント還元
1日限りのキャンペーン
全国58局に対して
11/27-12/4まで
CM放送
Why Vue.js
● 弊社での導入実績があった
● VueCLIでの開発環境構築のDXが良かった
● 社内的に横断して使えるVue.jsのコンポーネントライブラリ
があること
要件
● CMによるスパイクアクセスが見込まれる
● ティザーサイトは11/1から公開
19日からは事前予約が可能
(当日商品販売が一部公開され、予約購入
すると当日以降に配送)
● 19日以降はキャンペーンページに表示され
るアイテムが変化
● 12/3-4(当日)は数時間置きにアイテム
が変わる
● レスポンシブなサイトではないのでPC/SP
テンプレートが別れる
Lambda
REST API
S3
EC2 Elasticsearch
Vue.js/static
CloudFront
ということは
静的ファイル・HTMLの殆どに予めページ要素を入れて
おく必要がある。
(目玉商品ページ・著名人のインタビューページ)
そして、日時によって表示させるページ・要素は変わる
なるほど?
日時をトリガーに日時別のディレクトリ
をpublicディレクトリに格納する
(上書き)
配信されるのはpublicディレクトリのみ
/201811191600 /201811191700 /201811201800
時間毎に似たようなデータが重複
開発時にすべてのディレクトリを持つのは大変なので...
<%=EJS%>
パーツのテンプレート化をEJSで行い、gulpで日時ディレクトリ毎に配置されるようにタスク化
苦労の跡
Vue.jsは・・・?
検索ページ 商品詳細
ページ
1. URLクエリパラメータから
Lambdaで用意した商品検
索APIをコール
2. 検索一覧を表示
3. ページネーションあり
1. URLクエリパラメータからLambdaで
用意した商品詳細APIをコール
2. カートに入れるボタンなどを生成
コンポーネント単位でインスタンス化
カートに入れる
click
社内カートインAPI
cookie
token
ロジックのあるボタンをVue.jsで楽々コンポーネント化
Desktop SmartPhone
表示(HTML構造)は異なるが出している内容はほぼ同じ -> ロジックをmixinにして共通化
各デバイス別に書き出し
package.json
※HTMLでは別途vue.runtime.jsを読み込む必要がある
トラブルなく無事終了...
アイスタイル特設サイトにおけるVue.jsの導入事例
特設サイトは落ちてないよ!
まとめ
● Laravelの話がなくてすみません
● Vueの話もたいしてなくて更にすみません
● VueCLIでの開発環境構築のDXが高い。ESLint,Prettier,Jestなど
も簡単に導入できて質の高いコンポーネント開発が行えた。
● Vue.jsは大規模なNuxtからWebComponentsのようなパーツ単位
の使い方もできる幅広いFW
おまけ
Vue.jsを利用した箇所はSPAっぽい使い方をしたのでmetaタグ周りの対
処ができなくてOGPの設定ができませんでした。
Lambdaでうまいこと対処できたかもしれません・・・
thanks:)

More Related Content

PDF
フロントエンドエンジニアが知るべきFirebaseの世界
PDF
アイスタイル特設サイトにおけるVue.js導入事例(再演)
PDF
いまどき(これから)のPHP開発
PDF
カメラを利用したアプリを作って約1000人で遊んだ話
PDF
PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み
PDF
Laravel管理画面ジェネレーター
PDF
Next.js Storybook Driven Development
PPTX
Rpa community shizuoka lt daisuke hayashi
フロントエンドエンジニアが知るべきFirebaseの世界
アイスタイル特設サイトにおけるVue.js導入事例(再演)
いまどき(これから)のPHP開発
カメラを利用したアプリを作って約1000人で遊んだ話
PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み
Laravel管理画面ジェネレーター
Next.js Storybook Driven Development
Rpa community shizuoka lt daisuke hayashi

What's hot (20)

PDF
新卒入社のみなさまへ30代が贈る20代のキャリア戦略入門
PDF
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装
PDF
Pepperで翻訳ソフトを作ってみた
PDF
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
PPTX
Hack+FuelPHPによるWebサービス開発
PDF
開発を効率的に進めるられるまでの道程
PDF
日常使っているツールを調べる ー Visual Studio Code について ー
PDF
UiPath Test Suite の魅力とは?
PDF
Google VR - Google I/O Extended 報告会 2016 in 関西 -
PDF
GovTechを加速させるAWS
PDF
Monaca+Onsen UIで作るアプリ事始め
PDF
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
PDF
Self-Driving System with IoT
KEY
2012 09-26-scala
PDF
DaydreamではじめるVR
PDF
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
PDF
Angularおじさんの1年
PDF
業務系WebアプリケーションがStrutsから旅立つ日
PDF
PhoneGapでWebアプリをスマホアプリ化
PDF
35歳無名のシステムエンジニアが1年半でフロントエンジニアになるために行った3つの成長戦略
新卒入社のみなさまへ30代が贈る20代のキャリア戦略入門
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装
Pepperで翻訳ソフトを作ってみた
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
Hack+FuelPHPによるWebサービス開発
開発を効率的に進めるられるまでの道程
日常使っているツールを調べる ー Visual Studio Code について ー
UiPath Test Suite の魅力とは?
Google VR - Google I/O Extended 報告会 2016 in 関西 -
GovTechを加速させるAWS
Monaca+Onsen UIで作るアプリ事始め
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Self-Driving System with IoT
2012 09-26-scala
DaydreamではじめるVR
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
Angularおじさんの1年
業務系WebアプリケーションがStrutsから旅立つ日
PhoneGapでWebアプリをスマホアプリ化
35歳無名のシステムエンジニアが1年半でフロントエンジニアになるために行った3つの成長戦略
Ad

Similar to アイスタイル特設サイトにおけるVue.jsの導入事例 (20)

PPTX
RLSにおけるプロダクト:プロジェクトマネジメント
PPTX
Gartner summit 2016
PDF
明快!Drupal と Acquia の強み
PPTX
LaravelとNuxt.jsを業務で取り入れる際に得た知見
PPTX
Dive into Origami Studio
PPTX
デザイナーといい感じに プロトタイピング on Rails
PDF
LaravelとNuxt.jsを業務で取り入れる際に得た知見 Laravel/Vue.js勉強会#4 2018/04/25
PPTX
Intelligent Enterprise 実現に向けた拡張開発の必要性 ~ SAP Cloud Platform Extension Factory ~
PDF
20191228_jaws-ug_okayama-2019_winter
PDF
アジャイル開発のためのDatadog
PDF
Drupal 最新事情 June 2019
PPTX
VueとAWSAppSyncで始めるチャットアプリ開発
PDF
Scrum-Fest-Sapporo-2021-Keynote-Our-Journey
PPTX
Webアプリを公開するまで
PDF
Sparkコミュニティに飛び込もう!(Spark Meetup Tokyo 2015 講演資料、NTTデータ 猿田 浩輔)
PDF
LODEO開発ストーリー
PDF
Sap inside track2019tokyo_d3-caa-dev04_sap-graph
PDF
190717meetalive_vol10_session
PDF
「進化し続けるインフラ」のためのマルチアカウント管理
RLSにおけるプロダクト:プロジェクトマネジメント
Gartner summit 2016
明快!Drupal と Acquia の強み
LaravelとNuxt.jsを業務で取り入れる際に得た知見
Dive into Origami Studio
デザイナーといい感じに プロトタイピング on Rails
LaravelとNuxt.jsを業務で取り入れる際に得た知見 Laravel/Vue.js勉強会#4 2018/04/25
Intelligent Enterprise 実現に向けた拡張開発の必要性 ~ SAP Cloud Platform Extension Factory ~
20191228_jaws-ug_okayama-2019_winter
アジャイル開発のためのDatadog
Drupal 最新事情 June 2019
VueとAWSAppSyncで始めるチャットアプリ開発
Scrum-Fest-Sapporo-2021-Keynote-Our-Journey
Webアプリを公開するまで
Sparkコミュニティに飛び込もう!(Spark Meetup Tokyo 2015 講演資料、NTTデータ 猿田 浩輔)
LODEO開発ストーリー
Sap inside track2019tokyo_d3-caa-dev04_sap-graph
190717meetalive_vol10_session
「進化し続けるインフラ」のためのマルチアカウント管理
Ad

More from Kenjiro Kubota (15)

PDF
gRPC入門
PDF
Akkaとは。アクターモデル とは。
PDF
中・大規模でLaravelを導入するTips
PDF
FirebaseとNuxtでLPを作って見た
PDF
introducing vue-wait-component
PDF
HHVM/Hackを本番投入した話
PDF
HackのAsyncCurlで死んだ話
PDF
LaravelでAPI定義を管理する
PDF
2017: A CSS Design Odyssey
PDF
Introducing hhvm hack-async
PDF
Responsableを使ったadr実装
PDF
土日でLineみたいなチャット作ってきた!
PDF
Viewを活用して複雑化と戦う
PDF
Laravel aspectで関心の分離
PDF
Laravelでfacadeを使わない開発
gRPC入門
Akkaとは。アクターモデル とは。
中・大規模でLaravelを導入するTips
FirebaseとNuxtでLPを作って見た
introducing vue-wait-component
HHVM/Hackを本番投入した話
HackのAsyncCurlで死んだ話
LaravelでAPI定義を管理する
2017: A CSS Design Odyssey
Introducing hhvm hack-async
Responsableを使ったadr実装
土日でLineみたいなチャット作ってきた!
Viewを活用して複雑化と戦う
Laravel aspectで関心の分離
Laravelでfacadeを使わない開発

アイスタイル特設サイトにおけるVue.jsの導入事例