×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ZOZOTOWNリプレイスにおける Webフロントエンドのこれから 株式会社ZOZO ZOZOTOWN開発本部 ZOZOTOWNWEB部 フロントエンド4ブロック 武井 勇也 Copyright © ZOZO, Inc. 2022/02/21 ZOZO Tech Talk #3
Slide 2
Slide 2 text
© ZOZO, Inc. 株式会社ZOZO ZOZOTOWN開発本部 ZOZOWEB部 フロントエンド4ブロック 武井 勇也 2020年4月 新卒入社 ZOZOTOWNのWebフロントエンドの開発を担当 Zenn : @takewell Twitter : @takewell_ Speaker Deck : takewell 2
Slide 3
Slide 3 text
© ZOZO, inc. 目次 ● ZOZOTOWNリプレイスのこれまで ● フロントエンドのこれまで ● フロントエンドリプレイス始動 ● リプレイスに取り組むエンジニアにとって大切なこと ● まとめ 3
Slide 4
Slide 4 text
© ZOZO, Inc. ZOZOTOWNリプレイスのこれまで 4
Slide 5
Slide 5 text
© ZOZO, Inc. リプレイス開始前 5 ● 一つのアプリケーションにすべての責務を集 約したモノリシックな構成 ● Classic ASP/VBScriptで実現できない機能 は独自ライブラリを作成し対応 ● スケールに成功し日本最大級のファッション 通販サイトとして成長 ※ 説明のため簡略化しています
Slide 6
Slide 6 text
© ZOZO, Inc. さらなる成長のための課題 6 ● 技術スタックが時代的に一般的ではなくなってきているため ● クラウド化が困難 ● OSSやSaaSのSDK導入が困難 ● 人材採用が困難 ● モノリシックなため ● 責務が集中し、ロジックが密結合なため変更コストが高い ● 開発組織のスケールが困難
Slide 7
Slide 7 text
© ZOZO, Inc. リプレイスの目的 7 これを達成できる組織にする
Slide 8
Slide 8 text
© ZOZO, Inc. 現在のリプレイス状況 8 ※ 説明のため簡略化しています ● 達成 ● ビジネスロジックをマイクロサービスに移譲 ● クラウド化 ● 人材採用の加速 ● 未着手 ● Webサーバーのリプレイス
Slide 9
Slide 9 text
© ZOZO, Inc. リプレイスの詳細を知りたい方は 過去のMeetupの資料や 弊社sonotsの記事をご覧ください。 9
Slide 10
Slide 10 text
© ZOZO, Inc. フロントエンドのこれまで 10
Slide 11
Slide 11 text
© ZOZO, Inc. 2019以前のフロントエンド 11 ● 主なビューロジックはWebサーバーのテンプレートエ ンジンのような機能(独自ライブラリ)で実現 ● 技術スタック ● ES5 ● jQuery ● メンバー数10名以下、チーム数2
Slide 12
Slide 12 text
© ZOZO, Inc. 現在のフロントエンド 12 ● Webサーバーの技術は変化なし ● 新機能を中心に新しい技術スタックや設計を導入 ● 技術: TypeScript, React, Webpack, CSS Modules, PostCSS, Stylelint, ESLint, Prettier ● 設計: ITCSS, React Container / Presentational Pattern ● メンバー数20名以上,チーム数4
Slide 13
Slide 13 text
© ZOZO, Inc. フロントエンドの新技術スタックの導入 13 ● 達成 ● TypeScriptのモジュールと型システムで堅牢性を獲得 ● Reactを用いて宣言的UI記述とコンポーネントで保守性の向上 ● CSS設計にITCSSを用いることで共同開発しやすくなった ● 残っている課題 ● テンプレートエンジンとReactでビューロジックとUIコンポーネントが二重に存在 ● Webpackの設定が複雑になり、メンテナンスコストが高い ● ビューロジックのリプレイス先がまだないため、新機能をリプレイス予定のWebサーバー上に開発せざるをえない
Slide 14
Slide 14 text
© ZOZO, Inc. フロントエンドの技術課題を解決するための再設計と Webサーバーのリプレイスを同時に行いたい! 14
Slide 15
Slide 15 text
© ZOZO, Inc. フロントエンドリプレイス始動! 15
Slide 16
Slide 16 text
© ZOZO, Inc. フロントエンドリプレイスPhase1概要 16 ● モノリスなWebサーバーの責務移譲先(ビュー・ビジネス)の基盤を作る ためトップページ(zozo.jp)をリプレイス予定 ● 開発スピードのアップのため ● OpenAPI,MSWを用いたスキーマ駆動開発 ● Storybookを用いたコンポーネント駆動開発 ● TypeScriptで型駆動開発 ● コスト削減のため ● クラウド(EKS)化 ● CDN(Akamai)でキャッシュ ● 人材強化のため ● 時代にあった技術スタックを採用 ● 新しい技術スタックのノウハウ蓄積 ※ 説明のため簡略化しています
Slide 17
Slide 17 text
© ZOZO, Inc. フロントエンドリプレイス技術スタック 17 ● Next.js (React フレームワーク) ● ページ単位でレンダリング手法(SSR/SSG/CSR)を柔軟に切り替えられる ● きめ細かいファイル分割など、設定なしで最適なビルドを実現 ● フレームワークなのでドキュメントが豊富 ● Emotion (CSS in JS) ● 現状使っているCSS Modulesはメンテナンスモードのため別のものを検討 ● 記法の柔軟性・パフォーマンスを比較し選択
Slide 18
Slide 18 text
© ZOZO, Inc. リプレイスで取り組みたい課題 18 ● ビジネスインパクトの大きな商品詳細ページ・検索結果ページなどのページをリプレイス ● メンバーのTypeScript/React/Next.js/Emotionへの習熟サポート・コーディング規約の充実 ● マイクロフロントエンドな設計 ● パフォーマンス改善 ● アクセシビリティー対応強化 ● デザインシステム構築 ● etc. チャレンジングな課題がたくさんあります!!
Slide 19
Slide 19 text
© ZOZO, Inc. リプレイスに取り組む エンジニアにとって大切なこと 19
Slide 20
Slide 20 text
© ZOZO, Inc. リプレイスの推進に大切だと思うサイクル 20 ジョン・P・コッターの8ステップを意識 1. 他社の取り組みと比較したり、課題をリストアップ 2. 同じ課題感を持つメンバーと連帯 3. 改善計画を立案し提案 4. 課題を伸び代ととらえ発言 5. 新しい技術を日々検証 6. 新しい技術を小さく使って成果をあげて、テックブ ログの執筆および登壇 7. うまくいったことを他にも展開 8. 7を当たり前の方法に定着 変革を推進する8段階のステップ ジョン・P・コッター (2002) .『企業変革力』日経BP から引用
Slide 21
Slide 21 text
© ZOZO, Inc. リプレイスの推進のための行動 21 ● 既存の技術課題や組織課題への深い理解 のためのインプット ● “いままで”へのリスペクトの姿勢 ● ノウハウのあるひとに教えを乞う ZOZOではWebフロントエンドのエキスパート 古川陽介氏を2021年10月より技術顧問として お招きしています。
Slide 22
Slide 22 text
© ZOZO, Inc. まとめ 22 ● ZOZOTOWNはさらなる成長のためにリプレイスしている ● Webフロントエンドは現状の課題解決するためにNext.jsでリプレ イスする ● ソフトウェアのリプレイスにはステップや心構えも大切
Slide 23
Slide 23 text
© ZOZO, Inc. ZOZOTOWNのフロントエンドをさらに躍進させませんか? 23 ● 募集職種名 : ZOZOTOWNフロントエンドエンジニア ● 業務内容 ● ZOZOTOWNのサイト改善 / 改修におけるUI / インタラクション / LPなどの開発 ● 新サービス開発プロジェクトにおけるUI / インタラクション / LPなどの開発 ● 備考 ● フルフレックス制 ● 全国どこでも勤務可能
Slide 24
Slide 24 text
No content