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
Kotlin + Spring Bootで作るWebアプリケーション
Search
ponday
July 05, 2017
470
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kotlin + Spring Bootで作るWebアプリケーション
fukuoka.kt #1の登壇資料です。
ponday
July 05, 2017
More Decks by ponday
See All by ponday
関数型でGoFのデザインパターンやってみる
honda
1
1.7k
TypeScriptの型表現
honda
10
3.1k
Web Componentsの今
honda
1
480
これまでのReact、これからのReact
honda
0
340
Gatsbyお試し
honda
0
140
styled-components or emotion?
honda
0
730
Web ComponentsとAngular
honda
0
160
Atomic Design周りについての私見
honda
1
800
え、まだWeb Componentsを未来の技術だと思ってるの?
honda
2
890
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
450
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
250
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
410
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
So, you think you're a good person
axbom
PRO
2
2.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
The Curse of the Amulet
leimatthew05
2
13k
Deep Space Network (abreviated)
tonyrice
0
230
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
380
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Abbi's Birthday
coloredviolet
3
8.8k
Transcript
Kotlin + Spring Bootで作る Webアプリケーション fukuoka.kt #1 July 5th 2017
/ June 25, 2017 ponday(@ponday_dev)
Profile ponday (@ponday_dev) name - chibi-developer - ng-fukuoka スタッフ community
- Kotlin, Java, C# etc... - JavaScript - Angular, Vue.js skill
Kotlin、Androidの公式言語に採用!!
これからAndroidはKotlinだ!
ちょっと待って、Androidだけ?
Kotlinとは Kotlin(ことりん、コトリン)は、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、静 的型付けのオブジェクト指向プログラミング言語である。 Kotlin言語は、ロシア連邦レニングラード州都のサンクトペテルブルクにある、ジェットブレインズ社の研究所で 生まれた。 ジェットブレインズ社は Java、Ruby、Python などのプログラミング言語による開発環境などを開発して販売して きた。Kotlin言語は、同社の経験を活かしJava言語をもっと簡潔・安全になるように改良した 産業利用向
け汎用言語として開発され、2011年7月20日に発表された。 オペーレーティング・システムによらずJava仮想マシン上で動く。Java言語で書かれたプログラムと同じほど速く コンパイルされ同じほど速く動作するとしている。 Java言語に望まれている機能であっても互換性を保つために実現できていない機能や、将来のJava言語の仕 様で実現が予定されている機能から、有用と思われる機能を採用した。また、Java仮想マシンで動く点で似てい るスクリプト言語 Groovy や関数型プログラミング言語の要素が強い Scala から、機能や簡易記法(糖衣構文) を採用した。 ※Wikipediaから引用
そう、Kotlinは汎用プログラミング言語です!!
ならサーバ側でも使えるはず!
やってみる ・REST形式のAPIサーバを作る ・Spring Framework(Spring Boot)を使用 ・H2 DatabaseへSelect, Insertしてみる ・データベース処理はDomaを使用 ・フロントエンドはAngular(完全に趣味)
Doma ・Java用のDBアクセスフレームワーク https://doma.readthedocs.io/ja/stable/ ・2-way SQL ・ORMではない ・SQLファイルが直接書ける ・DB層のクラスの自動生成 ・アノテーションベース ・Annotation
Processingに課題ありとのことだったので検証も兼ねて ・個人的なお気に入り
できたもの
モデル層
モデル層 ・モデル層にはdata classが有用 ・定数プロパティの定義が楽(ex. val foo: string) ・setter / getterの定義など余計なコードが無くてすむので
スッキリ
サービス層
サービス層 ・Kotlinのclassを利用 ・Javaのソースとほとんど変わらないイメージで書ける ・DIする場合は ’ lateinit var ’ で定義する ・型推論が効くのでコードがスッキリ
Web層
Web層 ・Kotlinのclassを利用 ・Web層と同様、Javaのソースとほとんど変わらない イメージで書ける ・Springのアノテーションも普通に処理できる ※ @PostMapping(foo)とする場合、fooは ‘ const val
‘ ※ @RequestMapping(~, method=arrayOf(RequestMethod.POST))
感想 ・思った以上に普通に動いた ・Kotlinの文法のおかげでコードがスッキリ&短い ・一部の機能はJava + Lombokでも可能(型推論など) → 言語仕様に取り込まれているぶん安心感がある
気になった点 ・情報が少ない ・build.gradleに’compileKotlin.dependsOn = processResources’とか どこにも情報無くて悩んだ ・Annotation Processingはやっぱり不安定 ・たまにgradle clean
buildしないと動かなくなる ・Javaが混ざるとNullPointerExceptionの危機 ・Kotlinのnull非許容変数に対してJavaからnullが返されると落ちる → Javaから値を受けるときは必ずnull許容型で受けるなど工夫が必要 ・val !== finalという罠 ・const val === final ・完全にKotlinだけでは書けない場合がある
サーバサイドKotlinも流行れ!(願望)
おまけ
ということで宣伝します
None
None
chibi-developer ng-fukuoka 会場に結構メンバー居ます 興味のある方はお話しましょう!