Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

5,489 views

Published on

SpringBoot劇的ビフォーアフター

Published in: Software
  • Be the first to comment

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

  1. 1. SpringBoot + Kotlin 劇的ビフォーアフター @orekyuu
  2. 2. 自己紹介 • @orekyuu • 京都コンピュータ学院 情報科学科4回生 • IDEはIntelliJ IDEAが好き
  3. 3. _人人人人人人人人人_ > 突然の宗教戦争 <  ̄Y^Y^Y^Y^Y^Y^Y^Y ̄
  4. 4. KotlinはAndroid だけじゃないぞ!
  5. 5. そんな話
  6. 6. この会場でKotlin を使っている方 会場の10割くらいを想定
  7. 7. KotlinをAndroid で使っている方 Kotlinを使ってる方の8割を想定
  8. 8. KotlinをAndroid 以外でも使っている方
  9. 9. SpringInitializerのLanguageで Kotlinが選べるようになった!
  10. 10. ( っ’ω’c)ほう……
  11. 11. ( っ’ω’c)悪くない……
  12. 12. ( っ’ω’c)うごいた!
  13. 13. ( っ’ω’c)これからは Kotlinだ!
  14. 14. とはならないよね?
  15. 15. 動いたけど・・・ • DIとKotlinって相性悪そう • JavaのフレームワークでKotlin使うの怖い • 落とし穴多そう
  16. 16. ( ^q^)Kotlin+SpringBootのう まくいかない所探すぞ〜〜 〜
  17. 17. ( ^q^)DIどうすんのよ
  18. 18. @Inject private var hoge: Hoge? = null
  19. 19. ▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂ うわあああああああああ
  20. 20. @Inject private var hoge: Hoge? = null nullableになっているのがダサい 値分かりきってるのに 書きたくない
  21. 21. 解決策
  22. 22. lateinitを使おう
  23. 23. @Inject private lateinit var hoge: Hoge
  24. 24. KotlinはDIのことも ちゃんと考えられている !
  25. 25. ( っ’ω’c)ええやん
  26. 26. NEXT
  27. 27. ( ^q^)JRebel使える?
  28. 28. JRebelとは
  29. 29. アプリを再起動せず コードの変更を反映 できるやつ
  30. 30. DEMO
  31. 31. 結論: 問題なく動く
  32. 32. NEXT
  33. 33. ( ^q^)AOP大丈夫なの?
  34. 34. 試してみた
  35. 35. ( っ’ω’c)実行!
  36. 36. ( ^q^)…
  37. 37. ( ^q^)……
  38. 38. ( ^q^)???
  39. 39. 動いてない
  40. 40. Kotlinでは finalがデフォルト
  41. 41. openにすれば 動く
  42. 42. NEXT
  43. 43. @Bean
  44. 44. 値を返すだけなら fun hoge() = 式 と書ける
  45. 45. ( っ’ω’c)ええやん
  46. 46. ( っ’ω’c)oh…
  47. 47. Configuration problem: @Bean method ‘hogeService' must not be private or final; change the method's modifiers to continue
  48. 48. 訳: openにしろや
  49. 49. ハマリポイント まとめ
  50. 50. 基本的に openにする/しない に気をつければ良さそう
  51. 51. ???「わざわざKotlin 使う意味あるの?」
  52. 52. Kotlinを使って 嬉しいところ
  53. 53. CASE 1 POJO
  54. 54. Kotlinのフィールドには getter/setterが 生えてくる
  55. 55. class User { private String id; private String name; public User() {} public User(String id, String name){…} (getter/setterが続く…) }
  56. 56. class User( var id: String = “”, var name: String = “” )
  57. 57. getter/setter👋
  58. 58. CASE 2 nullの扱い
  59. 59. Javaでは nullへの対策 どうしてますか?
  60. 60. JSR-305 @Nonnull @Nullable
  61. 61. @Nullable public String hoge( @Nonnull String str1, @Nullable String str2) { }
  62. 62. fun hoge( str1: String, str2: String?): String?
  63. 63. アノテーション書いてって 言っても書かない人出てく る💢
  64. 64. Kotlinなら大丈夫👏
  65. 65. Annotation👋
  66. 66. ハマリポイント+資料の少なさ VS Kotlinを使うメリット
  67. 67. 天秤にかけて どっちに傾くか
  68. 68. 僕はKotlinに 傾きました
  69. 69. JavaからKotlinに 移行中です
  70. 70. 用法用量を守って 正しく使いましょう
  71. 71. よかったら 声かけてください
  72. 72. _人人人人人人_ > 質問とか <  ̄Y^Y^Y^Y^Y ̄

×