エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

JJUG CCC 2016 Spring 参加報告

公式サイトリンク

JJUG CCC 2016 Spring | 日本Javaユーザーグループ

受講セッション

  • 日本Javaユーザーグループ定例総会
  • GH-1 Type Annotation for Static Program Analysis
  • F-2 Thymeleaf 3 を使ってみよう!
  • AB-3 Javaでつくる技術ドキュメントのバリデーション環境
  • GH-4 春だからJavaプログラミング再入門
  • GH-5 Spring Framework/Bootの最新情報とPivotalが進めるクラウドネイティブなアプローチ
  • F-6 人工知能ERP「HUE」の開発裏話。本当に起こった速度問題とチューニング事例を一挙公開
  • M-7_1 古のJavaを使うということ
  • AB-7 若者にJavaの好きなところ嫌いなところきいてみた
  • 懇親会(Room E+F)

内容報告

日本Javaユーザーグループ定例総会

いつものJJUGの収支報告。
去年のJJUG CCC はSpring/Fallの両方共600名超の人が参加。
登録は1000名程度。
いつも通り目立ったことなく終了。来季も継続してイベントを行う予定とのこと。

ブログ書くまでがJJUG CCCってのが心に響いた!

あと、幹事の移動が結構あったなぁ〜っていうのを感じました。

GH-1 Type Annotation for Static Program Analysis

参加の背景

Java8で追加となった型アノテーションの話+Checker Framework
当然、知っていることだけど、あんまり上手い使い方が思いつかなくて参加。
Checker Frameworkは使いたいと思っているんだけど、現場のセキュリティとかの関係上、使えないので、いい代案ないか聞きたいとおもったのも背景にある。

内容

珍しく櫻庭さんが遅刻。そういえば、字を見て思ったのだが、桜って難しい方の字があるのな!
旧字体は、やっぱりカッケェなぁ〜と思いながら、宮川さんのとりとめのないその場しのぎ話を聞き流してました。

Annotationの役割

  • コードの生成
  • 条件の記述
  • 静的解析

Type Annotationによって何が変わったかというと、書ける場所が増えただけではない。
型をどう使用したいかを書けるようになったことが大きい。
いままで、Find BugsやPMDでやっていた静的解析でチェックしきれなかったところがチェックできるようになる。

マイケルエリンソーが熱い人で、彼のせいでアメリカの気温が上がっている話があった。
これを聞いて松岡修造を思い出したのは、僕だけじゃないはず!

話戻します。
型がいろんなところに書けるようになった一方、使い過ぎは可読性を落とす。
助長な書き方をなるべくしないことが、上達への第一歩だと思いました。
実際にどこに書けるか、ライブコーディングっぽいことをされていました。
改めてコードを見ると、(アノテーションを書けるところと書き過ぎが)相当キモい。
オレっちは、書けることを知っているけど、知らない奴が見ると違和感の塊だろうなぁ〜と思ってみたり

話の途中で、JSR-305の話が上がった。
内容は、Check Frameworkみたいなやつだけど、議論は凍結状態。。。
Disってないアピールを必死にしていましたが、逆効果になっていましたよ、櫻庭さん。。。。
むしろ、Disりたいアピールに聞こえてしまった。。。

最後にCheck Frameworkの話を少し。
コイツのおかげで、今までカバーできていなかったチェックができるようになったのが大きいとの話だった。

実際に自分もJava8の現場で開発をしていて、使いたいと思っている。
理由としては、Null Pointer Exceptionを起こしたくないから。
知っているか?
これは知り合いの知り合いの話だが、ヌルポを起こすようなコードが本番にあがって、四方八方からDisられるんだぜ。。。
もう、死にたくなるぐらいメールでDisられて死にたくなった。。。

なので、入れて静的チェック、実装時のヒントに使いたいと思っている。(本当はOptionalな気がしないでもないが。。。)
実装するときは、Nullのことを思いながら開発をするように心がけている。
ぬるぽが発生しないようにJavaDocの戻り値のコメントを充実させたり、引数がNullの場合に処理はどうなるかは常に考えている。
だけど、限界はある。
他人のぬるぽの恐怖に縛られていないソースを見ると、本当にぬるぽ発生しないか隅々までチェックしなきゃ気が済まない病になっており、 病から回復する意味でも、明文化されるアノテーションは是非使いたいと思う今日このごろ。

得たもの

Type Annotationの記述の考え方を再認識できた。やり過ぎは禁物!
あと、否定のやり過ぎは肯定になることを理解しました!!!

F-2 Thymeleaf 3 を使ってみよう!

参加の背景

Thymeleafの存在は知っていたが、バージョンアップに伴う変更点を知らなかったので聞いた。
自分は、最近Thymeleafより、AngularJSをHTMLのテンプレートとして使っているので疎遠だったが、興味が無いわけではないので受講。
(二重否定を使いこなすことのカタルシス!)

内容

Thymeleaf誕生の理由=デザイナー殺しの回避
HTML→JSP変換がめんどくせーんだよっていう裏の意図がヒシヒシと伝わる。。。
過去記事でそこら辺をまとめたことがあるので、興味ある人は閲覧してもらえればと。。。。

suzaku-tec.hatenadiary.jp

Thymeleafは、natural template*1だ!ワハハハッ!
(AngularJSでも同じことはできるけどね!)
実際にThymeleafを現場で使ってみて、デザイナーが積極的に修正を行うようになったとのこと。
あと、ブラウザで常にテンプレートの表示確認をしておく必要がある。
確認を怠ると、HTMLはすぐに壊れて、Thymeleafで解決したはずの問題が、再燃する。
どうでもいいことですが、Thymeleafってかなり打鍵ミスする。スペルが結構特殊だと思いました!

Thymeleaf3の変更点

  • Text,JavaScript,CSSをサポート
  • 解析がSAX Parser→Atto Parserに変更

他にもあった気がするが、メモったのはこれくらい。
Attoって聞いた時に、阿藤快をイメージしてしまった。
Textをサポートできるようになったので、メールテンプレートとしても使用できるのは、いいなと思った。
テンプレートは全てThymeleafで統一ってことができるようになったのは、かなり大きなメリットだと思いました。
JavaScriptの置き換えは、行の最後までになっているので、minified?(あっているか不安)をすると大惨事になる。。。

移行は、案外すんなり行くらしい。
機能で破壊的変更はなく、基本的な機能であれば、バージョンアップだけでいいらしい。
ただ、リッチな機能をFW側で使用していると、手間がかかる可能性がある。

得たもの

Thymeleafで全てのテンプレート統一できる!!
でも、やっぱり、僕はAngularJSの方が好きだなぁ〜

AB-3 Javaでつくる技術ドキュメントのバリデーション環境

RedPenを作ったRTCの伊藤さんのお話。
宣伝の意味合いが強かった希ガスる。

ドキュメント作成システム構築ガイド[GitHub、RedPen、Asciidoctor、CIによる モダンライティング]

ドキュメント作成システム構築ガイド[GitHub、RedPen、Asciidoctor、CIによる モダンライティング]

実は、自分もこの本は読んでいて、書評?っぽいの書いているので、興味がある人は見てもらえればと

suzaku-tec.hatenadiary.jp

内容・感想

ドキュメントの品質=目で確認するしか無い。
小さくNARUTOのサスケの画像が貼ってあったけど、触れずにスルーだった。
恥ずかしくなっちゃったのかな?

電子書籍の普及で、個人で作成するためにマークアップ言語でドキュメントを書く手法が普及しだした。
話は、上の本で書いてあることの発表だったので、大体既知だったのでスルー。
AsciiDocが流行りそうな予感がする。
ドキュメントのCIをしようという発想が個人的に好きです♡
質問であったとおり、図をテキストベースで書ける手法が確立されるのがネックだと思いました。
どこかで、それができるライブラリを見つけた気がするのだが、思い出せん!
AsciiDocでそこら辺をサポートしてもらえるといいなぁ~とは思っている。

得たもの

UMLをテキストベースで書けるライブラリからお金の匂いがしてきた

GH-4 春だからJavaプログラミング再入門

きしださんのセッションですね。
きしだキッズの一員として受講!

内容・感想

専門学生時代に聞いた、コンピュータ概論の授業に似ていた気がする。
ふ~んで聞き流してたら、終わってしまった。
学生時代の習慣のせいか、ところどころ意識が飛んでいた気がする。
ところどころネタを仕込んでいるのは、やっぱりきしださんっぽい!

型についての説明が頭に残った。
型があることで、論理的な証明がしやすくなっている。
つまり、式にしやすい=プログラミングしやすいになった。
物事の小さい単位を知ることが重要とのこと。
それをすることで、水素水に騙されなくなるには不覚にも笑ってしまった。

得たもの

物事を小さい単位で理解しろ!それが全てを理解するに繋る。

GH-5 Spring Framework/Bootの最新情報とPivotalが進めるクラウドネイティブなアプローチ

慎さんの話ですね。。。
ちょっと話について行けんかった。
資料読んで調査しときます。
取り敢えず、分かった内容だけ

内容・感想

SpringBootの紹介。
Springをケーキに例えている話があった。
Spring Framework→ケーキの材料。
Spring Boot→スタンダードなケーキ
自分のSpringBootのイメージは、素組したガンプラです!!

ロードマップの説明があり、SpringFramework5は2017年の早いうちにとのこと。
SpringFramework5.0は、Reactiveな実装をするためのプラットフォームが提供されるので、関心が高い。
SpringBoot2.0も同時期にリリースされるので、要注目案件!
個人的な開発は、SpringBoot+AngularJSをよく使っているので、SpringBoot2.0は、情報が出たら早めにキャッチアップしたいです。
あと、SpringBoot起動時に出るアスキーアートは、変更可能という驚愕の事実を聞いた。
自分だったら、ギアスマークにしちゃいますね!

得たもの

俺はまだまだ未熟者だった。。。

M-7_1 古のJavaを使うということ

聞いた背景

「古(いにしえ)」って言葉から中二臭さを感じて、居ても立ってもいられなくなり聞いた。

発表資料

speakerdeck.com

内容・感想

期待した通り、古いJavaを知らない人がどうやって古いJavaと付き合ったかの話だった。
文系出身の方だったらしく、自分も最初の頃突き当たったことがあったなぁ〜と思って、暖かい目で見ていた。
保守がメインでその話が主だった。
自分もみたことあるようなソースをみて、過去のトラウマを思い出しそう。。。
修正履歴をコメントで残す文化ってどこから来たのか、不思議でしょうがない。

意外とこの人頭いいと思ってしまった。自分の意見を通すために考える言い訳がセンスの塊だと思いました。
不要な処理をコメントアウトしている箇所を消したが、パイセンに怒られた。
→影響範囲をデカく見せてコメント消すぐらいなんてこと無いさって思わせる。
コメントアウトの削除に成功!!
(ヤダ、この子、策士!!)

テストコードなかったので、手動テストがめんどくせーから書いたらしい。
ちょっとやり方には疑問がある。
テスト対象のコードを丸コピして最新環境のところに移行してJUnit4を使ってテストしたらしい。
テスト対象が同じコードじゃないのは、自分的にはやっぱり許容できないな〜と思った。
なぜなら、バグったときに修正したのを反映漏れする可能性大だから!
これは、知り合いの知り合いの話だが、コードを丸コピしてテストをしていたらしい。
そのコードにいくつかバグを見つけて、修正したのだが、大元のソースへの反映が漏れていた。
そしてそのままコードは納品されて、客先受け入れの時に発覚。
そしてそのまま会議室に連行されて、1時間近く振り返りという名の尋問を受けて、半分泣いた。。。
そういうことがあるから、自分は許容できない。
俺の話じゃないよ。知り合いの知り合いの話だから!

とはいえ、テストコード書くことは素晴らしいことではある。
そういった前向きな姿勢の子には好感が持てる。
このまま好きになっちゃいそう。。。

ただし、やっぱり広めることはできなかった模様。
やっぱり文化を定着させるには経営層・リーダー層の理解が必須なのはどこの現場も同じだなぁ〜と思いました!

毎回思うのだが、経営層やリーダー層って品質向上のために何かしているんだろうか???
品質向上をやろうとするなら、テスト自動化は必須だと思うんですよね。
それが分からず、否定ばかりして自動化推進をしない奴ってどうなの?と最近思う。
開発手法を学んでいけば、自動化推進の流れは必須だと思いますけどね。
たいして学習しないくせに、配下には学習を強要するような経営層・リーダー陣は、頭にくる
お前は、俺のために何かしてくれたのか?って言ってやりたい衝動に狩られるけど、自分の方が大人なので我慢している。
立場変わったら相撲部屋的な意味で可愛がってやんよ!
以上、愚痴でしたー

得たもの

相手を説得するには、作戦大事!
理解を得るには実績大事!(実績あってもダメなときもあるけど。)
学習することは大切。どの分野にいても!
この子、好き。

AB-7 若者にJavaの好きなところ嫌いなところきいてみた

途中から参加。
まさか、聴衆に意見を聞いてくるとは。。。
自分に当たらないように祈ってた!

内容

とりあえず、他の人のブログみて分かった質問と覚えていた質問についての回答。
ふと思ったことだが、「回答」と「解答」どっちが正しいのか解んなくなった。。。

Q:くそコードしか知らずに育ってしまう

A:なぜ糞コードだとおもったのか、どこが悪いのか考える。
その理由が、開発者として生きる肥やしになる。
むしろ、糞コードがある環境にあるのはいいことでは?
改善できることがいっぱいあって、力をつけやすって意味で、糞コードあるソフトウェアが素晴らしいとは思ってない。
良質なコードしか見てない奴は、「なぜ?」の視点が弱い気がする。
糞コードのだめな点、改善案を交えて開発者と話し、いろんな視点を手に入れることができれば、最強だと思います。
良質コードがある現場にいようと、常に改善する気持ちは持っておく必要があると思っています。
まぁ、糞コードより良質なコードのある現場に行きたいってのが本音です!

あと、糞コードと思うのはいいけど、あんまり言わないほうが無難。
自分は生善論を信じているので、だれも糞コード書きたくて書いたわけではないと思っている。
時間であったり、圧力、力不足など、いろんな要因が生み出した結果だと思う。
雰囲気も悪くなるので、できれば心の秘めておくほうがいいと思いました!
※多分、俺も言われているだろうな~と感じている。

女性のエンジニアに言われたら、多分俺自殺すると思う。。。

現場のお局様的なヤツが書いたコードを貶すのは、一番タブー!!
自分がピンチの時に助けてくれなくなるので、現場の雰囲気は大事。

Q:みんなどうやって勉強しているのか?

A:自分は、興味あることを実際に使ってみて試します。
で、興味もったことと言っても自分が何に興味があるか分からないので、アンテナをかなり広めに貼ってます。
主要なIT系のサイトは、RSSfeedlyにぶち込んで情報収集。
あと、定期購読でソフトウェア関連の情報を読んでます。(会社に買わせています!自分サラリーマンなので、サラリーマンの強みを活かす!)
そうして興味を持ったものは、調べるようにしています。
Javaってわけではないですが。。。

あとは、Java以外のコミュニティイベントに言ってみるとかですかね?
自分は、Pythonに興味津々なので、Pyconに参加したりします。

PyCon JP 2016 in Tokyo | Sep 20th – Sep 23th

JVM系の言語のコミュニティでもいいかもですね。

そして、優秀な開発者を見つけて話すことも重要です。
自分は、嫌われ属性&ぼっち体質なので、できませんが。。。

一番重要なのは、多種多様な考えに触れること。
一つの考えに固執していると、環境の変化についていけず、なんのための勉強なのか分からなくなる。
あ、自分が勉強する目的は、環境の変化についていくためです。
目的が違うと手法も違ってきそうですね~
そもそも、根底が違う場合があるので、目的が違ったらごめんなさいm(__)m

懇親会(Room E+F)

無料とのことなので、顔出しだけ。
チューハイ1杯飲んで退散!

毎回気になるのだが、孤立してない人ってなんなの???
すでに知り合いなの?
俺、誰も知り合い居ないから、居づらいんだけど。。。。
20年以上やってきたぼっち習性で、無言でそこに立っているだけですね。

いつも思うのだが、人の輪に入るってどうやるのだろうか?
いまだに分からない。
内輪揉めしてくれると、内輪には絶対入らない身としては面白いんですけどねっ!(ゲス顔)
やっぱり、こういう空気になれなくて退散しました。

もしかしたら、人に認知されていないのだろうか?
常時ミスディレクションが発動している??
そうか、天性の才能持ちだったのか。。。。

それか、人を寄せ付けないオーラがあるのだろうか?
小学生のころから誰も俺に近づこうともしないから、よく考えていたのだが。
ラスボスの風格を持ち合わせていたってことなのかね?
キングに必要な孤高という状況に自分をおいていたのかと思うと、ゾクゾクする。
どちらにせよ、俺は異質な存在なんだな!
他人と違う俺、カッケー!!!(涙目)

まとめブログ各種(気がついたら随時追加予定)

JJUG CCC 2016 Springに参加してきました。 - シュンツのつまづき日記

JJUG CCC 2016 Springに参加しました - areph’s blog

「JJUG CCC 2016 Spring」 に参加してきました - いろいろメモ

JJUG 初めて行ったら非常に良かったという話 (JJUG CCC 2016 Spring) - Qiita

「JJUG CCC 2016 Spring」に行った - Qiita

なかやまろぐ: JJUG CCC 2016 Springに行ってきた!

JJUG CCC 2016 springに行ってきた | Javaビーム研究所

JJUG CCC 2016 Spring行ってきた » 八雲日録 | まおーぶろぐ

「JJUG CCC 2016 Spring」へ行ってきた - tmk463's blog

全体通しての感想

人が多い。。。
ちょっと個人的には辛いところ。
だって自分の体臭酷くないか気になるじゃない!
臭いとか思われてたら、もうお婿にいけない!!

今回参加者は810名居たらしいから、人多いのは当然か。。。
5/24のJava Day Tokyoはもっと来そうですね。。。
自分も会社の有給取って行きます。
うちの会社おかしいんですよね。
こういうイベントには休暇扱いで行き、「〜コミュニケーション教育講座」みたいな参加して意味あるのか怪しい奴には金を払うんですよ。
おいおい、技術スキルで食っていくんだから、技術系コミュニティへの参加は奨励すべきだろうっていっつも思う。
愚痴ばっかりだ。。

あと、感じたこととしては、自分より下の子が増えたなぁ〜って印象がある。
東京に越してきた時は、ぶっちぎりで自分が一番下だと思ったけど、今じゃ俺より下の子が登壇している。
若干焦りはある。
将来的な目標としてJJUG等のイベントでの登壇は、キャリアパスで必須だと思っているが、なかなか人前にでることが難しい。
どこかで踏ん切りを付けたいとは思っている。

Java Day Tokyoは、楽しみにしてます。
まだ参加できるみたいなので、まだの人はお早めに〜

www.oracle.co.jp

*1:ブラウザで見れるHTMLのテンプレート