Kotlin Developers Meetup
https://kotlin.connpass.com/event/90679/
に行ってきたので、そのときのレポート
Creating DSLs in Kotlin
JetBrains社のHadi Hariri氏にKotlinについて講演してもらいました。
ただ、英語での講演だったので、全然聞き取れませんでした。。。
LT
LT1: FSM DSL in Kotlin
資料
https://speakerdeck.com/tomoya0x00/fsm-dsl-in-kotlin
Kotlinでtree探索をしようとした話。
私が不慣れなのと、内容の難易度が高くてついて行けませんでした。。。
LT2: Readable Code in Kotlin
資料
https://speakerdeck.com/kaonash/readable-code-in-kotlin
以下、LTを聴きながらのメモ
リーダブルコードの中で
「コードは理解しやすくなければならない」と書かれている。
理解しやすいコードは
簡潔なコードというわけではない。
短いコードは一見かっこいいかもしれないが、
理解がしずらい点もある。
どうやれば理解しやすいコードがかけるか?
1. nullableのハンドリング
できるだけ早くスマートキャストをしてあげて、
nullなのかそうでないのかという状態を明示するようにする。
2. 型推論にあまりたよりすぎない。
型推論は便利。
ただ、あまり頼りすぎると、
この変数の型はなんなんだと分からなくなってしまう。
変数の型を確かめるために、コードをたくさん追わないと行けない。
だから、型推論できる場所でも型を書くようにしましょう。
ではどんなときに型を書くのか?
変数名で型を推測できるときは書かなくてもよいが、
そうでないときは書いたほうがいい。
また、letについてみんながどう思っているのかを知りたい。
letはわかりにくいので
runやmapというネーミングに変えてあげたほうが
英語が苦手な見としては、わかりやすい。
LT3: multiplatform kotlin?
資料
https://speakerdeck.com/panini/kotlin-multiplatform
以下、LTを聴きながらのメモ
登壇者のPaniniさんはKotlinエンジニアなのだが
React Nativeも最近書いている。
React Nativeの良い点としては、
ファイルをセーブしたら、そのまま実行してくれるので便利。
ただ、jsよりもkotlin書きたい。。。。
そんなときに
Kotlin.js
という、kotlinをjsに変換してくれる神と出会った。
Kotlin を React Nativeで書くためには、
一行、ライブラリをimportする文を書くだけでできる。便利。
Hot Reload
jsはコンパイルされないから、すぐに実行できる。
Kotlinでもできないのかな?と思って調べたら、
gradle continuous build
という神の機能がある。
これを使ったら、ファイルの変化を検知してHot Reloadしてくれる。
コンパイルを挟むので少し時間がかかるけど、早いので良い。
LT4:spring fu on graalVM
以下、LTを聴きながらのメモ
登壇者の型は、Kotlin イン アクションとか、あかべこ本を書いた方。
graalVM
というのがある。
jvm言語はもちろん、それ以外の言語もこれの上で走る。
AOT compile
Javaや通常、実行時にバイトコードがマシンコードになるが、
これを使うことで、直接バイナリを得ることができる。
ただ、これはlinuxでしか動かない。
なので、macの上で docker とか使って動かそう。
spring boot も動かせるよ!
ただ、jarファイルを食わせたら、エラーになってしまう。。。
ここで登場するのが
Spring Fu
kotlinでかけるよ!
これをgradlewで動かすと、もちろん動く。
そして、、、jarファイルを食わせると、、、同じようなエラーになってしまう。。。
告知!
kotolin fes 2018やるよ!
品川でやるよ!みんなきてね!
LT5: create minicraft mod with kotlin
以下、 LTを聴きながらのメモ
(英語でのLTだったので、メモが間違っている部分があるかもです。。)
登壇者の方は、Y.A.M の 雑記帳を書いている人。(いつもお世話になってます!!)
mine craft をやっているよ。
登壇者の方の息子さんもmine craftをやっているよ。私のPCでね!笑
mine craft modというものがあるよ
modというのは
オブジェクトのようなもので、
ブロックを追加したり、人のステータスを変更できたりするよ
forgeというもので、modカスタマイズできるよ。
modはInteljとgradleで作れるよ!
そしてjavaを使うんだけど、
今回kotlinでやってみたよ!
今回のゴールは私の息子がmodを作ることだ
ただ、
・子供がタイピングしたりエラーを解消したりいろんなファイルを触ったりするのはとても難しい
・重要なのは、早く、遊びながら作れること
結果として
modは子供がプログラミングに興味を持つのにいいきっかけになった。
そして、早くmodを作ることにも成功した!
Q & A
Hadi Hariri氏に直接質問をできるQ & Aが用意されました。
ただ、質問と回答が英語だったので聞き取れず。。。
英語勉強しよう。