Yokohama.groovy #2 を開催してきた #yokohamagroovy

前回第1回に引き続き、およそ2週間後のこの日、第2回を執り行ってきました。

開催場所はこちらも前回同様タネマキ@横浜。そしてこの日の参加者は自分を含めて計4人。19:30頃からゆるりと集まりだし、全員集合の20:00を以てイベント開始。

イベント実践内容は『プログラミングGroovyの読書&写経 #2』。以下の範囲を時間内に読み解き、実践・理解。

プログラミングGROOVY

プログラミングGROOVY

3.3 プログラムの構成
3.4 プロパティ/フィールド/メソッドの参照方法
3.5 データ型

3.3 プログラムの構成

  • バインディング変数
    • スコープはグローバル。値が入った時に型が決まる。
    • スクリプトで使える?
    • Gradle/Groovyshell等でも良く使う
    • また、用途では『ファイルのパスを取る時にも使える』という声も挙がった。

3.4 プロパティ/フィールド/メソッドの参照方法

  • メソッドとコンストラク
    • 引数のMap: Mapで行けると言うことは、Beanでも行ける。(GroovyBean)
    • また、Groovyの場合はフィールド生成+@Canonical でJavaBeanと同様の機能を実現出来て便利。(詳細はP.254)
    • 明示的に定義された場合は、自動生成は抑制される。
    • private/public等の指定があった場合もそれが優先される。
    • 使い方としてありそうなのは、def、 型指定、明示的指定の場合くらいか。
    • 自動生成されるのはいいけど、混乱を招くかも?保守性を考えるとルールを決めて作成した方が良いのかも。
Groovyでの規約チェック

『CodeNarc』というものがあるらしい。

更に、このキーワードで調べて行くと、某なごやこわい国のうさみみさんが1年以上前にブログで採り上げていた。さすがだ。

そしてこの辺りから、TwitterTL上で興味を持ち始める人々が。

新しいハッシュタグ( #twitgroovy )が出来たようです。Groovyに興味をお持ちの方、是非このハッシュタグもチェックしてみてはいかがでしょうか。

3.5 データ型

  • プリミティブ型の扱い
    • 殆どラッパー型に変換されて処理される。

  • Booleanについて
GStringについて

この辺り、当初はサクッと進めてその次の『3.6 クロージャ』でがっつり時間を割こう、と思っていたところ、参加者全員、例題と仕様と挙動について『?』マークが頭の中に浮かび上がって来ていたためここは深堀して理解を深めて行こう!という事で腰を据えて取り掛かる事に。


サンプルコードの内容について理解を進めて行く過程で、

悩む参加者達

なごや方面からうさみみ先生がつぶやきによる解説。

そして大阪方面からはいろふ先生が理解を助けるサンプルコード投下。


お二方の適切なアドバイスつぶやきもあり、GStringに関しては一定の理解を持って把握する事が出来ました。ありがとうございました。

GStringに関しては、以下の公式ドキュメントにも記載・言及あり。理解を深めるために一通り読み進め、写経しておきたいところ。


勉強会本編は22:00でお開き。

次回第3回は、いよいよ肝の1つである『3.6 クロージャ』からのスタートです。この項だけで2時間(若しくはそれ以上?)掛かりそうな予感も。


懇親会

懇親会、と言うほどの長さでは無いですけど。10:00勉強会終了で11:00には店を出てたので正味小一時間無い程度でしたが、立ち飲み屋で軽く執り行いました。


一人だとさっと読み進めてしまいそうな箇所でも、複数人いると1つのテーマでも色々な視点、意見を得る事が出来、学習の深さも幅も広がりますね。Twitterでアドバイスを頂けると言うのもこう言った勉強の醍醐味でもあります。今回の部分は公式ドキュメントなども交えて復習し、次回に備えたいと思います。(現地に/リモートで)ご参加頂いた皆様、ありがとうございました!


その他関連: