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
運用中の JavaプロジェクトにKotlinを導入した話
Search
mkimura
October 23, 2017
Technology
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
運用中の JavaプロジェクトにKotlinを導入した話
mkimura
October 23, 2017
Other Decks in Technology
See All in Technology
AI Coding Agent時代のcdk-nagガードレール 〜組織ルールを強制CIで守り抜く設計の挑戦〜
mhrtech
3
210
誤解だらけの開発生産性 / Myths and Misconceptions about Developer Productivity
i35_267
2
610
CDKで書くECSのベストプラクティス、 改めて考え直す2026 #cdkconf2026
makies
0
420
Control Planeで育てるBtoB SaaSの認証基盤 - SRE NEXT 2026
pokohide
1
2.4k
Genie Ontologyは銀の弾丸かを考える / Is Genie Ontology a Silver Bullet?
nttcom
0
300
はじめてのWDM
miyukichi_ospf
1
140
実装だけじゃない! CCA-F取得エンジニアが教えるClaude Code開発プロセス活用術
diggymo
2
740
関数型の考えを TypeScript に持ち込んで、テストしやすい純粋関数を増やす / Pure at the Core, Effects at the Edge: Bringing Functional Thinking into TypeScript
kaminashi
1
120
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
270
[2026-07-15] AI Ready なはずだったアーキテクチャと、見えてきた課題・次に目指す状態
wxyzzz
8
3.7k
SRE依存からの脱却 運用を開 発チームへ移す、 フルサイ クル開 発体制の実践
joooee0000
0
2.8k
Gen3R: 3D Scene Generation Meets Feed-Forward Reconstruction
spatial_ai_network
0
130
Featured
See All Featured
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
230
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Design in an AI World
tapps
1
260
First, design no harm
axbom
PRO
2
1.2k
Skip the Path - Find Your Career Trail
mkilby
1
170
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.6k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
380
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Site-Speed That Sticks
csswizardry
13
1.3k
Transcript
運用中の Javaプロジェクトに Kotlinを導入した話 #m3kt どこでもKotlin #3 秋のLT大会
自己紹介 • 木村 正弘 • 株式会社サイバーエージェント(中途入社4年目) • アメーバピグ サーバーサイドエンジニア •
ゲームが好き(PSNトロフィーレベル12) • PlaystationHomeにハマって以来、理想のコミュニティーサービス を追い求めている
今日のテーマ
もくじ • 前提 • 導入の動機 • 候補 • 迷い •
勉強会 • 比較 • 本番リリースに向けて • 導入後 • 今後の展望
前提 • アメーバピグはサービス開始から8年半 • サーバーサイドはJava • 既存のコードは100万行以上 (ー_ー;) • 自社の技術ブログに書いた内容と重複あり
導入の動機 • 社内でのトレンドはJava→Node.js→Go • 他部署への人材流出 • (> 2つの言語をメンテするデメリット)
候補 • Scala • Go • Kotlin
迷い 候補から絞りきれなかったので 迷いも含めてメンバーを巻き込む
勉強会 • Scala, Go, Kotlin • 資料はよさげなサイトを使う • 実習としてWebの掲示板を作成 •
1言語ごとに振り返り
比較 好み プロジェク ト マッチ 社内から の採用 社外から の採用 教育
合計 重み 100% 100% 40% 30% 30% Scala 5 4 4→1.6 2→0.6 2→0.6 11.8 Go 3 3 4→1.6 3→0.9 4→1.2 9.7 Kotlin 4 5 2→0.8 2→0.6 4→1.2 12.6 • 定量化する • 説明順序は定量→定性 • コスト削減になる場合は具体的に書く
本番リリースに向けて • コード的にはpom.xmlの修正だけ • リスクの少ないプロセスから • テスト用の機能を追加 • レイヤー(Controller, Service,
Dao)も除々に
やらなかったこと(時間があれば) • サブシステムとして独立させない • 既存JavaコードのKotlin置き換えはしない • Gradleの導入はしない
導入後 • 導入がゴールではない! • チーム内で活発に使われるか • チームメンバーが興味を持ててるか • チームメンバーが成長できるか •
組織の外からみて気になる状態
今後の展望 • JRebel導入(済み) • Google App EngineでKotlin(新規開発で検証中) • AndroidでKotlin一気通貫の開発 ◦
通信はRPC ◦ ローカルのテストではサーバープロセス上げない • インラインテストデータ作成ツール
ご清聴ありがとうございました