Spring boot劇的ビフォーアフター

Post on 05-Apr-2017

4.006 views 1 download

Transcript of Spring boot劇的ビフォーアフター

SpringBoot + Kotlin劇的ビフォーアフター@orekyuu

自己紹介• @orekyuu• 京都コンピュータ学院 情報科学科 4 回生• IDE は IntelliJ IDEA が好き

_人人人人人人人人人_> 突然の宗教戦争 < ̄ Y^Y^Y^Y^Y^Y^Y^Y ̄

今回する話

Kotlin は Androidだけじゃないぞ!

そんな話

この会場で Kotlinを使っている方会場の 10 割くらいを想定

Kotlin を Androidで使っている方Kotlin を使ってる方の 8 割を想定

Kotlin を Android以外でも使っている方

SpringInitializer の Languageで Kotlin が選べるようになった!

( っ’ ω’c) ほう……

( っ’ ω’c) 悪くない……

( っ’ ω’c) うごいた!

( っ’ ω’c) これからは Kotlin だ!

とはならないよね?

動いたけど・・・• DI と Kotlin って相性悪そう• Java のフレームワークで Kotlin 使うの怖い• 落とし穴多そう

( ^q^)Kotlin+SpringBootのうまくいかない所探すぞ〜〜〜

( ^q^)DI どうすんのよ

@Injectprivate var hoge: Hoge? =

null

▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわあああああああああ

@Injectprivate var hoge: Hoge? =

null

nullable になっているのがダサい

値分かりきってるのに書きたくない

解決策

lateinit を使おう

@Injectprivate lateinit var hoge:

Hoge

Kotlin は DI のこともちゃんと考えられている!

( っ’ ω’c) ええやん

NEXT

( ^q^)JRebel 使える?

JRebel とは

アプリを再起動せずコードの変更を反映できるやつ

DEMO

結論 : 問題なく動く

NEXT

( ^q^)AOP 大丈夫なの?

試してみた

( っ’ ω’c) 実行!

( ^q^)…

( ^q^)……

( ^q^)???

動いてない

Kotlin ではfinal がデフォルト

open にすれば動く

NEXT

@Bean

値を返すだけならfun hoge() = 式と書ける

( っ’ ω’c) ええやん

( っ’ ω’c)oh…

Configuration problem: @Bean method ‘hogeService'

must not be private or final; change the method's modifiers to continue

訳: open にしろや

ハマリポイントまとめ

基本的にopen にする / しないに気をつければ良さそう

??? 「わざわざKotlin使う意味あるの?」

Kotlin を使って嬉しいところ

CASE 1POJO

Kotlin のフィールドにはgetter/setter が生えてくる

class User { private String id; private String name;

public User() {} public User(String id, String name){…} (getter/setter が続く… )}

class User( var id: String = “”, var name: String = “”)

getter/setter👋

CASE 2null の扱い

Java ではnull への対策どうしてますか?

JSR-305@Nonnull@Nullable

@Nullablepublic String hoge( @Nonnull String str1, @Nullable String str2) {}

fun hoge( str1: String, str2: String?): String?

アノテーション書いてって言っても書かない人出てくる💢

Kotlin なら大丈夫👏

Annotation👋

まとめ

ハマリポイント + 資料の少なさVS

Kotlin を使うメリット

天秤にかけてどっちに傾くか

僕は Kotlin に傾きました

Java から Kotlinに移行中です

← 今の僕

用法用量を守って正しく使いましょう

あ、ちなみに

就職先探してます

よかったら声かけてください

おしまい

_人人人人人人_> 質問とか < ̄ Y^Y^Y^Y^Y  ̄