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

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

FUJIMOTO Takuya
March 23, 2023
1.2k

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

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