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
0
280
運用中の JavaプロジェクトにKotlinを導入した話
mkimura
October 23, 2017
Tweet
Share
Other Decks in Technology
See All in Technology
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
920
~宇宙最速~2025年AWS Summit レポート
satodesu
1
1.9k
CursorによるPMO業務の代替 / Automating PMO Tasks with Cursor
motoyoshi_kakaku
1
500
変化する開発、進化する体系時代に適応するソフトウェアエンジニアの知識と考え方(JaSST'25 Kansai)
mizunori
1
240
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
210
2025-06-26_Lightning_Talk_for_Lightning_Talks
_hashimo2
2
100
KubeCon + CloudNativeCon Japan 2025 Recap by CA
ponkio_o
PRO
0
220
登壇ネタの見つけ方 / How to find talk topics
pinkumohikan
5
540
作曲家がボカロを使うようにPdMはAIを使え
itotaxi
0
260
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 完全版 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming - Expanded
tomzoh
4
3.3k
OpenHands🤲にContributeしてみた
kotauchisunsun
1
480
Understanding_Thread_Tuning_for_Inference_Servers_of_Deep_Models.pdf
lycorptech_jp
PRO
0
140
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
694
190k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
490
The Language of Interfaces
destraynor
158
25k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Rails Girls Zürich Keynote
gr2m
94
14k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Documentation Writing (for coders)
carmenintech
72
4.9k
Faster Mobile Websites
deanohume
307
31k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
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 ◦ ローカルのテストではサーバープロセス上げない • インラインテストデータ作成ツール
ご清聴ありがとうございました