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

ZOZOTOWNの商品の閲覧を支えるJava

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for FUJIMOTO Takuya FUJIMOTO Takuya
March 23, 2023
1.9k

 ZOZOTOWNの商品の閲覧を支えるJava

Avatar for FUJIMOTO Takuya

FUJIMOTO Takuya

March 23, 2023
Tweet

Transcript

  1. ZOZOTOWNの商品の閲覧を
 支えるJava
 2023-03-23 ZOZO Tech Meetup〜Java活用事例紹介〜
 
 
 株式会社ZOZO
 技術本部

    ECプラットフォーム部 マイグレーションブロック
 藤本 拓也 Copyright © ZOZO, Inc. 1
  2. © ZOZO, Inc. ロードマップにおける現在地
 
 
 
 
 
 ZOZO開発組織の2022年の振り返りと現状

    - Qiita (https://qiita.com/sonots/items/eaec792b4ee41ad7ef1b)
 
 
 5 参照系基盤
  3. © ZOZO, Inc. ロードマップにおける現在地
 
 
 
 
 
 ZOZO開発組織の2022年の振り返りと現状

    - Qiita (https://qiita.com/sonots/items/eaec792b4ee41ad7ef1b)
 
 
 6 BFF 検索基盤 カート決済 リプレイス
  4. © ZOZO, Inc. 商品情報を主に扱うサービス(FrontAPI)
 
 商品情報を扱うサービスのこれまで
 8 FrontAPI SQL Server

    Procedure SQL 
 • FrontAPIはマイクロサービス構想以前に作り始められていた
 • ストアドプロシージャからの移行を主目的としていた
 VBScript
  5. © ZOZO, Inc. 商品情報を扱うサービスのこれまで
 9 FrontAPIのアプリケーションの構成
 

 • Java
 •

    Spring Boot
 • MyBatis
 • SQL Server
 • JUnit
 • Testcontainers
 @Controller @Service @Mapper SQL Server
  6. © ZOZO, Inc. 商品情報を扱うサービスのこれまで
 12 FrontAPIの普段の取り組み
 
 • FrontAPIを作成してから長い期間が経過している
 •

    大変になっているところもある
 • 課題はGitHubのIssueとして積み上げている
 • 週一で解消する会をやっている
 ◦ Testが足りないところを追加したり
 ◦ ビルドツールをMavenからGradleに置き換えたり
 

  7. © ZOZO, Inc. これから構築していく商品基盤
 
 
 
 
 
 


    
 ZOZO開発組織の2022年の振り返りと現状 - Qiita (https://qiita.com/sonots/items/eaec792b4ee41ad7ef1b)
 
 
 14 商品基盤構築
  8. © ZOZO, Inc. これから構築していく商品基盤
 16 アプリケーションの構成(検討中)
 

 • Java
 •

    Spring Boot
 • (未定) 永続化フレームワーク (MyBatis or Doma2 ?)
 • (未定) Database (MySQL?)
 • JUnit (+ Spock Framework?)
 • ArchUnit
 Database? ”OpenJDK Wiki”(https://wiki.openjdk.org/display/duke/Gallery)
 “Spring”(https://spring.io)
 

  9. © ZOZO, Inc. これから構築していく商品基盤
 17 ArchUnitを使って実現したいこと
 

 Package間の依存関係をチェック
 プレゼンテーション層のパッケージ ユースケース層のパッケージ

    ドメイン層のパッケージ プレゼンテーション層は自分自身のみ参照できる ユースケース層はプレゼンテーション層からのみ参照できる ドメイン層はいずれからも参照できる
  10. © ZOZO, Inc. これから構築していく商品基盤
 19 その他の展望(ネイティブイメージの作成)
 

 • これまでのJavaで作られたサービスはKubernetes上で実行されている
 •

    Goなどと比べるとどうしても立ち上がりは遅い
 • Spring Boot 3.0からネイティブイメージの作成がサポート
 • これまでよりも素早いスケールを目標に

  11. © ZOZO, Inc. まとめ
 21 • ZOZOTOWNの商品を閲覧するとき、裏ではJavaが使われている
 • ストアドプロシージャから移行した当時と状況が変わってきている
 •

    日々の保守を行いつつ、商品情報に特化したサービスへと変化させていく
 • 一緒にサービスを支えていく仲間を募集中
 
 
 ZOZOTOWN バックエンドエンジニア(マイクロサービス) https://hrmos.co/pages/zozo/jobs/0000005