運用中の JavaプロジェクトにKotlinを導入した話
by
mkimura
×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
運用中の Javaプロジェクトに Kotlinを導入した話 #m3kt どこでもKotlin #3 秋のLT大会
Slide 2
Slide 2 text
自己紹介 ● 木村 正弘 ● 株式会社サイバーエージェント(中途入社4年目) ● アメーバピグ サーバーサイドエンジニア ● ゲームが好き(PSNトロフィーレベル12) ● PlaystationHomeにハマって以来、理想のコミュニティーサービス を追い求めている
Slide 3
Slide 3 text
今日のテーマ
Slide 4
Slide 4 text
もくじ ● 前提 ● 導入の動機 ● 候補 ● 迷い ● 勉強会 ● 比較 ● 本番リリースに向けて ● 導入後 ● 今後の展望
Slide 5
Slide 5 text
前提 ● アメーバピグはサービス開始から8年半 ● サーバーサイドはJava ● 既存のコードは100万行以上 (ー_ー;) ● 自社の技術ブログに書いた内容と重複あり
Slide 6
Slide 6 text
導入の動機 ● 社内でのトレンドはJava→Node.js→Go ● 他部署への人材流出 ● (> 2つの言語をメンテするデメリット)
Slide 7
Slide 7 text
候補 ● Scala ● Go ● Kotlin
Slide 8
Slide 8 text
迷い 候補から絞りきれなかったので 迷いも含めてメンバーを巻き込む
Slide 9
Slide 9 text
勉強会 ● Scala, Go, Kotlin ● 資料はよさげなサイトを使う ● 実習としてWebの掲示板を作成 ● 1言語ごとに振り返り
Slide 10
Slide 10 text
比較 好み プロジェク ト マッチ 社内から の採用 社外から の採用 教育 合計 重み 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 ● 定量化する ● 説明順序は定量→定性 ● コスト削減になる場合は具体的に書く
Slide 11
Slide 11 text
本番リリースに向けて ● コード的にはpom.xmlの修正だけ ● リスクの少ないプロセスから ● テスト用の機能を追加 ● レイヤー(Controller, Service, Dao)も除々に
Slide 12
Slide 12 text
やらなかったこと(時間があれば) ● サブシステムとして独立させない ● 既存JavaコードのKotlin置き換えはしない ● Gradleの導入はしない
Slide 13
Slide 13 text
導入後 ● 導入がゴールではない! ● チーム内で活発に使われるか ● チームメンバーが興味を持ててるか ● チームメンバーが成長できるか ● 組織の外からみて気になる状態
Slide 14
Slide 14 text
今後の展望 ● JRebel導入(済み) ● Google App EngineでKotlin(新規開発で検証中) ● AndroidでKotlin一気通貫の開発 ○ 通信はRPC ○ ローカルのテストではサーバープロセス上げない ● インラインテストデータ作成ツール
Slide 15
Slide 15 text
ご清聴ありがとうございました