JJUG 「Java エンジニアのためのJava(再)入門」に行ってきた
JJUG ナイトセミナー 「Java エンジニアのためのJava(再)入門」に行ってきました。
仕事で一番使っている言語はJavaなのですが、J2SE1.4、Java 6しか使ったことがないので、いい機会と思い参加しました。
Webシステムで使っていたのはJ2SE1.4で、 Java 6ではサーバ側のバッチ処理やWebサービスで使っていました。
これが、5年前の話しですw
世間では、Java 7〜8と上がり完全に置いていかれた感がががが。
from old Java to modern Java
スピーカー:谷本 心 氏(@cero_t)
1.4時代のコードを、各バージョンごとに変遷した部分を解説したセッション。 Java 7から大きく変わった印象。 特に便利だなーと思ったが、try-with-resources と catch multiple exceptions の2つ。
try-with-resouces
Java 7より以前はこんな感じ。 割れが慣れ親しんだ内容・・・
BufferedReader br = new BufferedReader(new FileReader(path)); try { return br.readLine(); } finally { if (br != null) br.close(); }
これがJava 7からは・・・
try (BufferedReader br = new BufferedReader(new FileReader(path))) { return br.readLine(); }
すげぇ!(イマサラ感)
これで、close()
忘れの心配ないですね!!
なお、catch
はなくても大丈夫とのことでした。
AutoCloseableのサブクラスは、そのオブジェクトが宣言されているtry-with-resourcesブロックの終了時に自動的に呼び出されるんだそうです。
Pythonでもできるんだから、当然Javaでもできるよねーというのは後から思いました。
with open('/tmp/weather.jpg', 'rb') as weatherfile: requests.post(slackbot_settings.API_URL, data=slackapi_params, files={ 'file': ('weather.jpg', weatherfile, 'image/jpeg')})
catch multiple exceptions
これも地味に便利だと思いました。
以下のように、catch
後の処理が同じな場合に例外をまとめることができるという優れもの。
catch (IOException ex) { logger.log(ex); throw ex; catch (SQLException ex) { logger.log(ex); throw ex; }
↑が↓みたいに |
で区切って書くことによって、
1つのブロックで処理できるということでした。
catch (IOException|SQLException ex) { logger.log(ex); throw ex; }
仕事では意外とこういう処理があったりするので、早速使ってみたいです。
ここまでで、だいぶ浦島太郎状態というかカルチャーショックというか。 Javaのバージョンアップ時に記事とかは読んだりしていましたが、 これまでプライベートでコードも書かずに仕事で必要な分だけ使ってたツケがきたというか。
これは、ちゃんと勉強しなくちゃだなーと感じた、1つ目のセッションでした。
数値計算をきわ、、、たしなむ
スピーカー:岡田 拓也 氏(@omochiya)
BigDecimalについてのセッションでした。
正直、BigDecimalだけで1つのセッションとは・・・と思っていたのですが、甘くみていました。申し訳ございません。
多分、この日のセッションの中では一番使っているクラスだったんですが、仕様があんなんなっているとは知りませんでした。
興味がある人は、ドキュメントを一度読んで見ることをオススメします。 とある基幹業務システムの会計機能の改修に携わっていた時に知っていたら、あんな不具合もなかった・・・かもしれない過去を思い出しましたw
割り算注意・・・そうですね・・・注意ですよね・・・
Stream API入門
スピーカー:谷本 心 氏(@cero_t)
完全に未知の領域のセッションでした。
これは手を動かしてみてナンボかと思いましたので、このセッションを見ていた際のツイートを載せておきたいと思います。
別に書き疲れたとかではないですよ!ないですよ!
ランバダ式wwww #jjug
— 怒Mが通る (@do_M_gaToru) 2017年6月28日
めちゃめちゃ省略できるんだなーlambda式。驚いた。#jjug
— 怒Mが通る (@do_M_gaToru) 2017年6月28日
map filter すごい #jjug
— 怒Mが通る (@do_M_gaToru) 2017年6月28日
streamは1本の流れが基本。大事な概念な気がする。分岐はしない。合流は仕組みはあるけど。 #jjug
— 怒Mが通る (@do_M_gaToru) 2017年6月28日
資料について
今回のセミナーの資料は一部公開されています。
最後に
参加して良かったセミナーでした。帰りにJava本格入門を購入して帰りました。谷本氏のサイン入りですw
並んでる方がいらっしゃったので、便乗してみましたw
なお、Java本格入門の正誤表はサポートサイトにて公開しているとのことです。また、指摘についてはIssueに書けばよさそうです。
次回は上級者向けのセミナーを・・・とおっしゃっていたのですが、とりあえず参加してみようかなと思います。 それまでは写経して勉強でもしようかと思います。
ブログを始めてみた
はじめまして。
怒Mが通ると申します。通称「怒M」です。
都内でSE・PG(2017年現在10年目)として働いています。
経験値としては基幹業務システムの開発オンリーです。
ここ、3、4年はSEがメインとなり、
プログラミングをやる機会がめっきり減ってしまい、寂しい限りです。
ということで、改めてプログラミングの勉強をしたいと思い、
過程の記録用としてブログを始めた次第です。
これまではQiitaに結果だけ少しは書いていたのですが、
そちらは結果だけの記録にしていこうかと思います。
ブログの内容としては雑多になるかと思いますが、
以下のような内容が書くことになるのかなぁと考えています。
ただ、好奇心はあるけど飽きっぽいので、
続けて行く中で色々変遷する可能性はありますw
その他、記録用として私事(飯、FF14)なども残し行くかと思います。多分。
ということで、皆様よろしくお願いいたします。
更新頻度は2週に1回は頑張ってみたい。みたい。みたい。。。。