JJUG CCC 2016 Spring 行ってきた| Advent Calendar 2016
IT系の勉強会行ってきた Advent Calendar 2016 - Adventar の12日目!
JJUG CCC 2016 Spring | 日本Javaユーザーグループ
先月行われたFallではなくSpringの方です。
JavaでSpringって言うとSpring Frameworkが真っ先に浮かぶので紛らわしい。
資料のリンクはこの辺にまとまってた。
参加したセッションのメモを投下します。
Thymeleaf 3 を使ってみよう!
- メリットとしてはデザイナーが作ったHTMLをそのまま使える!
→Natural Template デザインが失われずに見れる。常に元のデザインを気にし続けるのが良い - 開発中のときはDisableCache設定でキャッシュをoffにして開発するのがよい
- Thymeleaf 3
→文法はほとんど変わらずに中身のパフォーマンス改善がメイン - FragmentExpression:タグのかたまりを渡せるようになってる(ver3から)
- ver3から呼び方が#requestや#session って名前に短くなった httpとかつかなくなった
- <!--/* */-->ってやると出力時にコメント消してくれるので便利
- Full HTML5 Support
- HTMLの中に[[]]っていうのがあるとパースされてしまう。特にJSの配列とか危険
Jenkins2.0
- アメリカのテレビドラマ(シリコンバレー)内でJenkinsの画面が出てきてテンション上がった
- Jenkinsがバザールみたいな状態になってる。それぞれがプラグイン作ったりしててカオス
→2.0からはデフォルトセットみたいな選択肢を入れた - 継続的デリバリをする仕組みを入れたい
→Pipeline機能を作る
→snippet Generator で 色んなテンプレートを作れる - UIは徐々に改善中
春だからJavaプログラミング再入門
Javaと見せかけてシフト演算や文字コードとかPCの中身の話が多かった。
- Javaでプログラムとはなにか
→値の関係+状態遷移+入出力 - OFF:論理積、ON:論理和、TOGGLE:排他的論理和
- 文字セット:文字を集めて番号をふる。JISやUNICODE
- 文字コード:文字セットの番号をコンピュータで表現できる形にする。UFT-8やShift_JIS
Spring Framework/Bootの最新情報とPivotalが進めるクラウドネイティブなアプローチ
慎さんや谷本さんのセッションは毎回資料見たほうが早い気がしてならない。
- 1月からmakingさんがPivotalにjoin
- Spring系の紹介、ケーキに例えてた
SpringBoot:ケーキ、そのまま食べてもいいしカスタマイズもできる
SpringInitiraizer:キッチンに相当
SpringCloud:ケーキの大群を作れるやつ - ネタ:起動時のバナーを変更できる。
1.3:色を付けれるようになる
1.4:画像をサポートされる - TestSimplifications:アノテーションが短く便利になった
- SpringFramework5
JDK8+ Servlet3.0+ HTTP/2 Reactiveサポート:ノンブロッキング機構 - Speed and Safety:すぐに安全にリリースすることで成長を加速
- 12Factorの紹介 The Twelve-Factor App (日本語訳)
Seasar2で作った俺たちのサービスの今
- ピクトリンクというサービスをSpring化したお話
- なぜSpring?
→絶対にやらなければいけないことではない
→WebSocketとかJava8を活かしたい、メンバーの飽きを防ぎたい - メンバーの運用開発を考えるとJava、日々の工数すべて移行にはさけない、作り直しは無理
- 自分たちの置かれている状況でのトレードオフ
Servletで動作させたい、ログの監視は外部の会社とかがやってるのでアレコレ別が厳しい - Javaを6→8やTomcatを6→8に事前に移行!基盤のバージョンアップはできていた
- Java8でdjUnitのユニットテストが動かない
→lamdba式部分は全部書き直す。JMockitにした
雑感:ユニットテストが書かれていたのは救い
移行は成長するにはいいタイミング
古のJavaを使うということ
辛みのあるセッション。今回のJJUG CCCで一番驚いたセッション。
- 参考書に書いてある通り書いてもエラーが出る
- バージョン古いことの弊害が多い
- ひどいコードがたくさん見受けられる
→バージョン管理あるし、修正する
→修正範囲は最低限でお願いしたい
対策:出来る限り不具合を酷く見せる!被害状況を盛ることで改修する! - 辛みポイント
先輩はテストを書いたことがない
TDDをやろうとするも、偉い人から「お客様の業務に取ってメリットがあるの?」 - 古いJavaでも製品としての成立は可能、製品のライフサイクルも考え色々言う
- 実績を積む。最善を尽くす、最善を知ろうとする
- クソコードだからって諦めるのは違う
何がすごかったって、文系新卒3年目の子の発表だった ということ。
発表中に笑いが起こってたけども、個人的には「おっさん達笑ってる場合ちゃうで」とか思ってた。
無事に転職出来たみたいで良かった。
JVM上でのストリーム処理エンジンの変遷
- ストリーム処理、ビッグデータの処理モデル
バッチ処理:レポートとか
対話型クエリ:クエリ実行で結果を取得
ストリーム処理:連続発生データを常時処理を続ける - 変遷
Storm:Clojureで作られてて書けないとつらたん、最初なので問題あれこれあった
SparkStreaming:2013年マイクロバッチを実行しまくる
NiFi:画面上でデータフローを定義
Flink:Scala バッチ処理とストリーム処理、障害対応のための自動保存
Apex:可用性、障害耐性重視 画面でやれる
Gearpump:アクターベースの薄い構成
Beam:バッチ処理やストリーム処理を抽象化してDSL - 比較資料のバイアスが強すぎたり、バージョン上がると色々変わるので比較が難しい
- プロダクトは多くてベストは選びにくい、ただし機能は似ている
最近のストリーム処理や仮想化は流れが激しすぎる。。。
ぜろゆさんの発表がとても素晴らしく、もっと精進しないとなーと感じました。