Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
事業スピードを落とさずにPHP→Kotlinリプレイスに挑戦している話
Search
ar_tama
February 10, 2022
Programming
1.3k
1
Share
事業スピードを落とさずにPHP→Kotlinリプレイスに挑戦している話
ar_tama
February 10, 2022
More Decks by ar_tama
See All by ar_tama
翻訳・対話・越境で強いチームワークを作ろう! / Building Strong Teamwork through Interpretation, Dialogue, and Border-Crossing
ar_tama
4
2.6k
AIコーディングとエンジニアリングの現在地 / A Snapshot of AI Coding and Engineering(Sept. 2025)
ar_tama
0
710
エンジニアリングマネージャー“お悩み相談”パネルセッション
ar_tama
1
2.3k
「好き」から見つける仕事のかたち / Shape Your Career From What You Love
ar_tama
0
140
マネジメントって難しい、けどおもしろい / Management is tough, but fun! #em_findy
ar_tama
8
2k
本当に必要なのは「QAという技術」だった!試行錯誤から生まれた、品質とデリバリーの両取りアプローチ / Turns Out, "QA as a Discipline" Was the Key!
ar_tama
10
12k
自分の「心の声」に耳を傾けよう ――振り返りから始める、キャリアの可能性の広げ方 / Listen to Your Inner Voice: Unlocking Your Career Potential Through Reflection
ar_tama
2
910
偶然 × 行動で人生の可能性を広げよう / Serendipity × Action: Discover Your Possibilities
ar_tama
1
5.6k
チームを主語にしてみる / Making "Team" the Subject
ar_tama
5
790
Other Decks in Programming
See All in Programming
iOS機能開発のAI環境と起きた変化
ryunakayama
0
160
PHPで TLSのプロトコルを実装してみるをもう一度しゃべりたい
higaki_program
0
180
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
550
今年もTECHSCOREブログを書き続けます!
hiraoku101
0
230
PDI: Como Alavancar Sua Carreira e Seu Negócio
marcelgsantos
0
100
The free-lunch guide to idea circularity
hollycummins
0
420
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
3
510
感情を設計する
ichimichi
5
1.2k
アーキテクチャモダナイゼーションとは何か
nwiizo
17
4.3k
Migration to Signals, Signal Forms, Resource API, and NgRx Signal Store @Angular Days 03/2026 Munich
manfredsteyer
PRO
0
240
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
400
forteeの改修から振り返るPHPerKaigi 2026
muno92
PRO
3
240
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
510
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
310
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
160
My Coaching Mixtape
mlcsv
0
94
How to Think Like a Performance Engineer
csswizardry
28
2.5k
How STYLIGHT went responsive
nonsquared
100
6k
Rails Girls Zürich Keynote
gr2m
96
14k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Into the Great Unknown - MozCon
thekraken
40
2.3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
53k
Transcript
事業スピードを落とさず PHP→Kotlinリプレイスに 挑戦している話 Cake.jp Co.Ltd. @Server-Side Kotlin Meetup vol.1
アジェンダ - 自己紹介 - Cake.jp システムの - これまで - これから
- Kotlinリプレイスの感触 - おわりに 2
🙇 コード1行も出てきません🥺 3
自己紹介 あらたま/@ar_tama - 株式会社Cake.jp CTO - ex ロコガイド, セオ商事, DeNA
- 日本もちもち協会 代表 - サウナ好き 4
Cake.jpについて 会員数100万人突破! 国内最大級のケーキ・スイーツ総合通販サイト 5
Cake.jp システムのこれまで ※入社当初のあらたまさん 6
Cake.jp システムのこれまで - 2回のピボット - 足掛け10年ほどのコードベース - 定着しないメンテナ - どんどん生まれる関連事業&機能
- 目まぐるしく変わる業務フロー そして九龍城へ… 7
- 2回のピボット - 足掛け10年ほどのコードベース - 定着しないメンテナ - どんどん生まれる関連事業&機能 - 目まぐるしく変わる業務フロー
そして九龍城へ… Cake.jp システムのこれまで 8 あるある
Cake.jp システムのこれまで =技術的投資がされてこなかった? 9
Cake.jp システムのこれまで =技術的投資がされてこなかった? No! 結果として、技術的投資以外の判断が優先されてきただけ 10
PMFは見えてきた🎂 Cake.jp システムのこれから 11
技術的投資に(も)力を入れよう → 九龍城を解きほぐして、新しいアプリケーションに載せ替えよう - 事業成長のボトルネックをなくすため - システムの寿命を延ばすため - 開発者生産性と楽しさを増幅させるため Cake.jp
システムのこれから 12
3年先の開発組織を考える - 組織規模をどの程度拡大させるか? - メインシステムに殆ど絡まない新規事業が乱立するか? - 既存事業を5以上のチームに分割する可能性はあるか? Cake.jp システムのこれから 13
コンウェイの法則※ に従う 先の問いに… - YES→チームを細かく分割し、マイクロサービスアーキテクチャで - NO→チームを分割しすぎず、モジュラーモノリスアーキテクチャで ※ “組織の設計するシステムには ...
その組織のコミュニケーション構造をそのまま反映した設計になるという制約が ある” Cake.jp システムのこれから 14
コンウェイの法則※ に従う 先の問いに… - YES→チームを細かく分割し、マイクロサービスアーキテクチャで - NO→チームを分割しすぎず、モジュラーモノリスアーキテクチャで ※ “組織の設計するシステムには ...
その組織のコミュニケーション構造をそのまま反映した設計になるという制約が ある” Cake.jp システムのこれから 15
先人の知恵を積極的に借りる Cake.jp システムのこれから 16
- まずは既存の業務フローを洗い出し、あるべき姿とのギャップを知る - あるべき業務フローから業務ロジック(≒ドメインモデル)に落とし込む - Cake.jpは「マーケットプレイス型のECサイト」 - =ECサイトとしての基本機能は固く - 理想形がわからないところは柔軟に
Cake.jp システムのこれから 17
- まずは既存の業務フローを洗い出し、あるべき姿とのギャップを知る - あるべき業務フローから業務ロジック(≒ドメインモデル)に落とし込む - Cake.jpは「マーケットプレイス型のECサイト」 - =ECサイトとしての基本機能は固く - 理想形がわからないところは柔軟に
Cake.jp システムのこれから 18
そこでKotlinですよ 19
- 型安全!Null安全! - 表現が簡潔 - 「どこからでも何でも呼べちゃう」が防げる - アプリケーション特性によって使い分けができる - Spring
MVC / Spring WebFlux + Coroutine 20 そこでKotlinですよ
現在は、一部機能のリプレイスが完了したところ (出荷日やお届け日にまつわる機能群) ※ 注文を受けてから製造する店舗も多いため、条件が複雑 Kotlinリプレイスの感触 21
- 型安全!Null安全! - 表現が簡潔! - Data Classべんり - ExceptionHandlerべんり(Spring) -
「どこからでも何でも呼べちゃう」が防げる - マルチモジュールでモジュラーモノリスを体現 - テストが書きやすい - mockkべんり - ドメインモデルに属性と振る舞いをもたせ、検証対象が明確に - まずはSpring MVCから - 今後WebFluxも積極導入していきたい 22 Kotlinリプレイスの感触
事業計画(開発計画)に絡めながら進めているので、総じていい感じ🥳 - マイナスをゼロにしている感が少なく、モチベーションを維持しやすい - リプレイス先が風化しにくい - ダブルメンテが起きにくい - トレードオフ:リプレイス完了までの時間>< 23
Kotlinリプレイスの感触
時間がなくて盛り込めなかった内容もたくさんあるので、詳細は懇親会で! - 直面している課題 - 今後取り入れたい周辺技術 - パッケージ・モジュールの粒度と狭義のアーキテクチャ 24 おわりに
We’re Hiring!!! Meetyもやってます🙌 お気軽にどうぞ 25 おわりに