公式サイト
https://ccc2019fall.java-users.jp/
毎年2回、春と秋に開催する日本最大のJavaコミュニティイベントです。
確か初参加が2013年で、ほぼ毎年参加してます。
個人的には週末4連休だったので、ホントは自転車旅に出る予定だったのですが、生憎、毎日雨予報・・・
その代わり、JJUG CCCに参加することにしたのでした。
【11/23(土)開催】
— JJUG (@JJUG) November 18, 2019
今週末に開催するJJUG CCC 2019 Fallのタイムテーブルを公開しました!参加登録はまだまだ受け付けております!是非ご参加ください。 #jjug #jjug_ccchttps://t.co/ZSPbKN08Gz
雨の中、久々に自転車でなく電車で会場に向かいました。
以下、自分用の個人メモ。
Spring Cloud AWSをクラウドエンジニアがいじってみた
セッション紹介: https://jjug-cfp.cfapps.io/submissions/5906d187-f746-4a82-9283-e5cd3c30f306
最近、お仕事でAWS触ってるので参加。特にLambdaやAPI Gateway周りに興味あります。
<<資料が公開されたらココに貼る>>
Lambda
Spring Lambda
RDSと相性が悪い
コネクションプールの実装がむずかしい
自動スケールアウトされるので最大同時接続数が制御できない
→ DynamoDB
Springのサブプロジェクトでアクセッサーを提供してる
API Gatewayで流量制御すればRDSいけないこともない
仮装ネットワークにLambdaを作らないといけない
Lambdaの負荷が増えると、動作が遅くなる
NICを早く立ち上げる機能が対応してきた
リージョンごとに順次対応中
個人的にSpring Cloud + Lambdaは待ったほうがいい
【ランチセッション】Java によるクラウドネイティブの実現に向けて
セッション紹介: https://jjug-cfp.cfapps.io/submissions/d7ea35d2-a4a2-4516-b516-832f289f8adc
ランチセッションです。無料でそぼろ御飯のお弁当いただきました。感謝!

ソフトバンクさんのJava関連の技術導入の歴史が纏められてて、とてもよく調べられているなぁと思いました。
ちょと懐かしい技術もちらほら。
ランチセッションとしては技術的な話も多く、The Twelve-Factor Appとかも登場してて、久々に読み直したりと勉強になりました。
Mavenの真実とウソ
セッション紹介: https://jjug-cfp.cfapps.io/submissions/655c0759-cd88-4f9c-9c05-c3f0e9fb9989
お仕事でMaven使ってるけど、知識があやふやで行き当たりバッタリで使ってるので参加。
ちなみにMavenの使い方を説明してる日本語のいいサイトってあるんかな?
いつもググって、行き当たりばったりで解決しちゃってるけど、体系的に学べる日本語のいいサイトあれば知りたい。
以下、聴講メモ。
---
・Mavenはやりたいことをセットで提供してくれる。Antに加えて、依存関係の管理の解決をしてくれる。
・Antに依存管理をプラスしたApache Ivyというのが2004年頃に登場した。依存関係だけの解決に特化してる。
・今どきのMavenは、使うJDKのバージョンだけ書いておけばOKになっている。
・polyglot-mavenを使えば、XMLでなくYAMLで書ける。
・異なるMavenプラグインを組み合わせるのではなく、自分でプラグインを書いたほうがいい。
・Mavenのライフサイクルで、独立したプラグインをフェーズに割り当てる。
・他の言語だとGroupIdが無かったりして、先に名前取ったもん勝ちだったりする。
・他の言語だとSNAPSHOTがないやつもあるので、配ったりするのも難しいやつある。
・これまで、開発中はSNAPSHOTを使いなさい、と言われてた。
→ 自チームのコントロール下にあるモジュールを開発中でテストしたいときのみにSNAPSHOT使うようにする。
・Mavenの優れた仕組みの1つが、リポジトリがユーザーごとにローカルであること。
・MavenのアーキテクチャはJavaの歴史をなぞったようなものになってる。
・GroupiIdを取ればCentralリポジトリにアップできるので、良いもの作ったら上げるのが良い。
まだまだ間に合うJUnit(再)入門
セッション紹介: https://jjug-cfp.cfapps.io/submissions/2c30c05e-ca85-4435-a673-973c6f02276c
JUnitの基礎がとてもよく纏まってました。
・Javaのテストフレームワーク TestNG は、テスティングと読む。
・TDDはテストを先に書くが、コンパイルだけ通るように、最低限の実装はしてから開始する。
FizzBuzzのライブコーディングがありましたが、1つ前の川島さんのMavenのセッションも踏まえ、MavenとJUnitの簡単な写経してみました。
https://github.com/makopi23/JUnit_Fizzbuzz
ちなみにpom.xmlの設定ですが、Eclipseだと↓の設定だけだとJUnit実行時にエラーになります。
エラーメッセージ: java.lang.NoClassDefFoundError: org/junit/platform/engine/EngineExecutionListener
これを解決するにはpox.xmlにjunit-jupiter-apiだけでなく、junit-jupiter-engineも足す必要がありますね。
あと、Eclipseでテストを実行するときは不要ですが、mavenでtestを実行するときはsurefireプラグインが無いと、テストを実行してくれないようでした。
写経したpom.xmlはこんな感じ。
https://github.com/makopi23/JUnit_Fizzbuzz/blob/master/pom.xml
おそらく紙面の都合上、スライドには書いてなかっただけだと思いますが、念のため。
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
- 開発ツールやプロジェクト構成も含めて45分で丸わかり -
セッション紹介: https://jjug-cfp.cfapps.io/submissions/8b6ca4da-a6a0-4526-a874-7bb4e6ad91ee
https://github.com/Masato1986/angular-spring-parent
お仕事でAngularとSpring MVCの組み合わせ使ってるので、とても参考になりました。
・AngularとSpring MVCのプロジェクトを親プロジェクトにぶらさげる。
・Angularの検証用サーバをポート 4200で起動させる。
・proxy.conf.jsonに4200から8080への転送設定を書く。このファイルをangular.jsonでservr.optionで指定する。
・Spring MVCで@CrossOriginアノテーションでCORS対応する。
・Angularをjarの中に含める。
セッション内で紹介されてたサンプルの簡易版だそうな。
先程のサンプルコードの簡易版はこちらです。
— Masatoshi Tada (@suke_masa) November 23, 2019
AngularとSpring Bootで作るSPA+RESTful Webアプリケーション#jjug_ccc #ccc_e5https://t.co/axHCHgHJVH
ちょと↑の動かしてみました。こんな感じで起動する簡易アプリですね。
プロジェクト構成とか参考になります。

Serverless時代のJavaについて
セッション紹介: https://jjug-cfp.cfapps.io/submissions/f82463fd-e9b5-4f79-af0b-8807a4fd77d4
AWSのセッション聴講2つ目。
Lambdaをちょと触ってて、Javaだとどーやるのがいいんだろ、と思ってたので、とても参考になりました。
・SPAで非同期にしてる場合、コールドスタートが問題にならないことある。
・Lambdaはロジックだけ入れる。他のfat.jarに入れているものはAWSサービスに逃がす。
DIコンテナ入門
セッション紹介: https://jjug-cfp.cfapps.io/submissions/a5ba98a8-bad4-4122-bd61-85f89716c81e
(キーボードの矢印キーでページめくれます)
スライド: https://backpaper0.github.io/ghosts/dicontainer/#1
Springの講師でDIを教えることがあるので、とても参考になりました。
ステップアップセッションで、スライドも手取り足取り親切な構成になっています。
ルックアップじゃなくてインジェクションにする話とか、スコープの話とか、最後の考察も参考になります。
懇親会
前回のJJUG CCCのアンケートに回答して、今回の懇親会のクーポン戴いてたので、今回は懇親会も参加しました。
懇親会も凄い人数ですな~

JJUG CCC恒例の回るお寿司w
LINEからは今年も #jjug_ccc にて回転寿司を提供しております。ご来場の皆さんは現時点ではぐるぐる回るお寿司に興味があると思いますが、Javaエンジニアを募集しておりますのでLINEで働くことにご興味ありましたら職種一覧を見ていただけますと!https://t.co/PSsbOmEjUB pic.twitter.com/na7fz3iAUF
— LINE Developers (@LINE_DEV) November 23, 2019
ビールもお寿司もお惣菜も美味しかった~
お腹いっぱいいただきました。
お知り合いの方と会話したり、LT大会を楽しんだり。
感想
今回は自分の仕事に関わるセッションを中心に聴講しましたが、とても有意義でした。
AWS/サーバレス系が2本、JUnit、DI、Maven、Spring Boot + Angular、などなど。
やっぱ、身近に使ってる技術に関するセッションだと、モチベーションも上がるし、気づきも多いね。
あと、タイムテーブルでステップアップセッションに初心者マーク付いてるけど、中級者以上にも学びは多いと思いました。
自分の知識を補完して整理することができます。
久々に懇親会にも参加したけど、ビールもお寿司も美味しいし、凄い人数でとっても活気がありました。
今回のアンケートに回答すると次回の懇親会無料クーポン貰えるので、次回もぜひ参加したいと思うのです。
あと、スムーズな運営に貢献くださったJJUGスタッフさんやボランティアさんにも感謝。
非常に洗練されたコミュニティ運営とチームワークだったと思います。
冷たい雨が降りしきる中でしたが、参加して良かったです。
また次回も、都合が合えばぜひ参加したいと思うのでした。
JJUG CCC 2019 Fallは2019年11月23日に開催され、無事終了いたしました。ご参加ありがとうございました。
— JJUG (@JJUG) November 24, 2019
次回のJJUG CCC 2020 Springは2020年5月23日開催を予定しております。#JJUG_CCC pic.twitter.com/WxjwI96eqK
- 関連記事
-
- 「Agile Testing Night #1」に参加しました
- 「JJUG CCC 2019 Fall」に参加しました
- 自転車で名古屋から飛騨高山への旅 4日目(最終日)