Slide 1

Slide 1 text

8割完成済みのJavaプロジェクトにKotlinを 途中導入した話 エムスリー株式会社 川俣 涼

Slide 2

Slide 2 text

自己紹介

Slide 3

Slide 3 text

川俣 涼 @ryoKawamata 1989.04.25 生 前職: 消防士 (エンジニア歴9ヶ月) 好きな言語: Ruby, js, Kotlin

Slide 4

Slide 4 text

報告書作成支援 システム Electron Vue

Slide 5

Slide 5 text

鍼灸院専門の webデザイン事業

Slide 6

Slide 6 text

患者管理システム Ruby Rails

Slide 7

Slide 7 text

今日話すことは?

Slide 8

Slide 8 text

Javaプロジェクトに Kotlinを途中導入してどうだったのか? メリットは? 導入の経緯は? 詰まったところは? デメリットは?

Slide 9

Slide 9 text

どんなプロジェクトに導入?

Slide 10

Slide 10 text

m3.com カンファレンス Java8 maven SpringBoot Tymereaf

Slide 11

Slide 11 text

なぜKotlin導入したの?

Slide 12

Slide 12 text

1. 社内でのKotlin導入の流れ 2. 技術的な挑戦をしてみたい

Slide 13

Slide 13 text

導入にあたっての障害は?

Slide 14

Slide 14 text

以前社内でKotlinでリニューアルを担当した @susan2goさんの存在 チームとしての姿勢 特になし

Slide 15

Slide 15 text

どのように進めている?

Slide 16

Slide 16 text

1. 新規追加するクラス・テストはKotlinで実装 2. 機能追加完了後、全クラスのKotlin化を進める

Slide 17

Slide 17 text

Kotlin化のメリットは?

Slide 18

Slide 18 text

1. コード量の減少で開発効率アップ Data Classの利用, raw string, 強力なコレクションの操作(map, filter) 2. 素敵なNull安全 ヌルポの危険を事前に検知。 いかにJavaでnullの危険のある書き方をしていたかがわかる。

Slide 19

Slide 19 text

ex. コレクションの操作(filter, sorted) Java

Slide 20

Slide 20 text

ex. コレクションの操作(filter, sorted) kotlin

Slide 21

Slide 21 text

Kotlin化のデメリットは?

Slide 22

Slide 22 text

特になし

Slide 23

Slide 23 text

1. まだ情報が少ない 2. javaコンパイラ周りの知識は必要

Slide 24

Slide 24 text

1. まだ情報が少ない

Slide 25

Slide 25 text

Java Kotlin Qiitaの記事数 1250 132 Stack Overflowの質問数 21,434 369 Kotlin or Java ✖ spring bootの情報量 2018/11/7 時点

Slide 26

Slide 26 text

2. javaコンパイラ周りの知識は必要

Slide 27

Slide 27 text

lombokを使っている Javaクラスのプロパティを参照できない

Slide 28

Slide 28 text

Delombok or Kotlin 化 or 別モジュール への切り出し

Slide 29

Slide 29 text

JavaからKotlinのクラスを参照すると ビルドエラー

Slide 30

Slide 30 text

maven-compiler-plugin を追加し ビルド順を変更 Kotlin-maven-plugin maven-compiler-plugin Kotlinをコンパイル後に Javaをコンパイル

Slide 31

Slide 31 text

実際導入はどれくらい簡単なの??

Slide 32

Slide 32 text

Demo

Slide 33

Slide 33 text

まとめ

Slide 34

Slide 34 text

サーバーサイドの Kotlin導入は容易に出来る Kotlin使ってハッピーになろう