会社でKotlin勉強会(第8回)を開催した

今週は第8回を開催しました。毎週休まず続けていて偉い。

 

前回の様子はコチラ↓

kdnakt.hatenablog.com

 

 

[第8回の様子]

2020/03/25に第8回を開催した。

 

参加メンバーは自分を含めて7人。今回もほぼみんなリモートワーク状態なので、それぞれオンラインミーティングルームに参加する形式で実施した。モブプロやモブワークの説明でよく言われているように、全員が同じ条件で会議(勉強会)に参加しコミュニケーションのハードルを揃えておくのは、リモート参加者がいる場合にはとても有効だと思う。オフラインで(特にマイクから遠い場所で)いきなり横の参加者と話し始められると、マイクで拾いきれなかったりして、コミュニケーションの濃度に差が出てしまうので。

 

今回は、比較的年次が上のメンバーにドライバを担当していただいた。英語が苦手とのことだったので、自分がしゃしゃり出て適当に翻訳しながらコードを書いてもらった。残念ながら今回マイクがなくてドライバ役を回せなかったそこのあなた、来週はよろしくお願いしますね。

 

内容としては、Learn Kotlin by Exampleの第3章 Special Classesの後半2つ(Sealed  ClassesとObject Keyword)を進めた。始めるのが遅かったのと、Sealed Classesに時間がかかったので、Object Keywordの最初の部分までとなった。

今回も途中で一時的にサイト上でのプログラム実行ができなくなる障害があったが、比較的簡単なコードだったので、あまり問題にはならなかった。

 

特筆すべきことでもないのだけれど、リモートワーク期間が始まって1ヶ月、環境がようやくセットアップできたので、勉強会にVR参加してみた。

f:id:kidani_a:20200326012623j:plain

勉強会と関係ないSlackチャンネルで晒されたりもしたけどまあヨシ。

 

[学んだことや疑問点]

  • Sealed Classes
    • sealed修飾子を使うと同一ファイル内でのみ継承可能なクラスを作ることができる
    • sealedクラスを直接インスタンス化することはできない(ドライバさんが試してくれたおかげで気づくことができた!)
    • サブクラスが同一ファイル内に閉じているので、when式で利用した場合にelseが不要になる
    • サブクラスのサブクラスを作る場合は、open修飾子をつける必要がある(Kotlinのクラスはデフォルトがfinal)
  • Object Keyword(未完)
    • Javaっぽく他のクラスをimportできる
    • objectキーワードをつけると、Javaでいうシングルトン扱いになる
    • 遅延評価なので、初回アクセス時にインスタンス化される
      • 多分、メモリ削減のためにこういう動きをしている
      • アクセスがなければそもそもインスタンス化されない

 

[まとめ]

来週はObject expressionから!

次で第3章が終わる!4月からもやっていくぞ!