Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
事業スピードを落とさずにPHP→Kotlinリプレイスに挑戦している話
Search
ar_tama
February 10, 2022
Programming
1
1.2k
事業スピードを落とさずにPHP→Kotlinリプレイスに挑戦している話
ar_tama
February 10, 2022
Tweet
Share
More Decks by ar_tama
See All by ar_tama
翻訳・対話・越境で強いチームワークを作ろう! / Building Strong Teamwork through Interpretation, Dialogue, and Border-Crossing
ar_tama
4
1.6k
AIコーディングとエンジニアリングの現在地 / A Snapshot of AI Coding and Engineering(Sept. 2025)
ar_tama
0
640
エンジニアリングマネージャー“お悩み相談”パネルセッション
ar_tama
1
1.9k
「好き」から見つける仕事のかたち / Shape Your Career From What You Love
ar_tama
0
110
マネジメントって難しい、けどおもしろい / Management is tough, but fun! #em_findy
ar_tama
8
1.9k
本当に必要なのは「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
850
偶然 × 行動で人生の可能性を広げよう / Serendipity × Action: Discover Your Possibilities
ar_tama
1
4.9k
チームを主語にしてみる / Making "Team" the Subject
ar_tama
5
740
Other Decks in Programming
See All in Programming
AIコーディングエージェント(Manus)
kondai24
0
120
20251127_ぼっちのための懇親会対策会議
kokamoto01_metaps
2
400
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
140
AI時代もSEOを頑張っている話
shirahama_x
0
230
開発に寄りそう自動テストの実現
goyoki
1
350
Evolving NEWT’s TypeScript Backend for the AI-Driven Era
xpromx
0
260
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
110
dotfiles 式年遷宮 令和最新版
masawada
1
670
AIコーディングエージェント(skywork)
kondai24
0
110
関数の挙動書き換える
takatofukui
4
770
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
180
TVerのWeb内製化 - 開発スピードと品質を両立させるまでの道のり
techtver
PRO
3
1.4k
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
69k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
How to Think Like a Performance Engineer
csswizardry
28
2.3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
78
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
GitHub's CSS Performance
jonrohan
1032
470k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
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 おわりに