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
260
運用中の JavaプロジェクトにKotlinを導入した話
mkimura
October 23, 2017
Tweet
Share
Other Decks in Technology
See All in Technology
どうするコスト最適化のトレードオフ
tetsuyaooooo
1
520
require(ESM)とECMAScript仕様
uhyo
3
670
Terraformあれやこれ/terraform-this-and-that
emiki
8
1.4k
Google Cloud の AI を支える裏側のインフラを垣間見る!
maroon1st
0
350
Cloud Native Java with Spring Boot (CNCF Aarhus, April 2024)
thomasvitale
1
170
レガシーをぶっ壊せ。AEONで始めるDevRelの話 / Qiita Night 2024-2-22
aeonpeople
3
1.3k
Google Cloud Next '24でブログを10本書いた方法と勉強会を沸かせた方法
yasumuusan
0
300
生産性向上チームの紹介
cybozuinsideout
PRO
1
870
VSCodeの拡張機能を作っている話
ebarakazuhiro
1
400
SIEMを用いて、セキュリティログ分析の可視化と分析を実現し、PDCAサイクルを回してみた
coconala_engineer
0
320
Building Dashboards as a Hobby
egmc
0
210
Azure犬駆動開発の記録/GlobalAzureFukuoka2024_20240420
nina01
1
210
Featured
See All Featured
Side Projects
sachag
451
41k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
Statistics for Hackers
jakevdp
789
220k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
116
18k
Fireside Chat
paigeccino
21
2.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
274
13k
Adopting Sorbet at Scale
ufuk
68
8.6k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Ruby is Unlike a Banana
tanoku
96
10k
Happy Clients
brianwarren
92
6.4k
Build your cross-platform service in a week with App Engine
jlugia
225
17k
The Language of Interfaces
destraynor
151
23k
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 ◦ ローカルのテストではサーバープロセス上げない • インラインテストデータ作成ツール
ご清聴ありがとうございました