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.6k
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
720
Web ComponentsとAngular
honda
0
160
Atomic Design周りについての私見
honda
1
800
え、まだWeb Componentsを未来の技術だと思ってるの?
honda
2
880
Featured
See All Featured
Ethics towards AI in product and experience design
skipperchong
2
310
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Claude Code のすすめ
schroneko
67
230k
Designing Experiences People Love
moore
143
24k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
850
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
400
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
230
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
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 会場に結構メンバー居ます 興味のある方はお話しましょう!