JavaDayTokyo2016 行ってきた| Advent Calendar 2016
IT系の勉強会行ってきた Advent Calendar 2016 - Adventar の13日目!
基調講演
- 人口減る事によりITによる生産性向上が急務
- Javaを愛してください。(We Love Java)
- NETFLIXやUBERやスマート家電、Blu-rayもJava使ってる
(Androidには触れない) - Jigsaw、NetBeans IDE、Javaコミュニティ、企業事例とドローンやPepper使ったデモ
コンテナクラウドとJava Flight Recorderで始めるアジャイル開発
- モノリシックとMicroservicesのお話
- デモ:OracleJET使ってフロントエンド作ってバックエンドのJSONをごにょごにょ
- Aplication Container Cloud:Dockerベースの軽量プラットフォーム 紹介
アジャイル開発がどの辺に出てきたのかよくわからんかったし、Java Flight Recorderがほぼ出てきてない。
Java EE 7アプリケーションとWebセキュリティ
- IPAの安全なウェブサイトの紹介
- XXS:JS実行→エスケープ
- CSRF:外部サイト経由で攻撃
- SQLインジェクション:動的パラメーター連結でSQL実行されちゃう
- セッション管理の不備:セッションIDの推測や固定化によるなりすまし
- HTTPヘッダーインジェクション
JavaEE7の話ではなくIPAの教材を使ったWebセキュリティ入門だった。
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
- Java8でラムダ式が入ったり前よりモダンな感じになってきた
- Java9:Jigsaw,JShell(REPL),HTTP2 クライアントが正式に入るのが大きい
- セッションタイムアウトとかでのぬるぽとか
→Optional使ったりしてぬるぽを防ぐ - Mixinを活用
多重継承出来無い事に決起するメソッドやクラス増大を防げる - シンタックスだけでなく機能の向上と共に設計の手法もアップデート
実践して分かったJavaマイクロサービス開発
- マイクロサービスは目指すものではなく結果論
- 実際やったことの紹介
Struts2とかJava6とかのシステムを改修 - API化を進める
AngularやSpring、AWS上で開発/構成、典型的なトランザクション - バックエンドの処理の改善
商品情報サービス、在庫サービスとかにわけたり処理を共通化
同期処理、非同期処理ともに依存を明確化する Open Call Hierarchyによるトレース - テスト!JUnitの範囲を明確化
- 管理画面や購入画面のマイクロサービス化
SpringBootとEurekaがバージョンが微妙に違い苦戦
SpringSession + Hazelcast - マイクロサービスは最適か?
- 文化や環境によって最適は異なる
安定の谷本さんの発表で良かった。
Javaエンジニアのための“クラウド時代の過ごし方”
- クラウド時代とは
リリース×改善を停止しないで動き続ける
→作るから運営するへ - アジャイル
プロジェクトマネジメントの基本
計画や計測や調整 関係者で話す調整がとても大切
ウォーターフォールの限界、計画が重要だがFIX出来るわけがない
変化に適用するプロセス。早く作るための手法ではない - クラウド
ハードウェアの仮想化、ソフトウェア化
コンピューティングリソースにおける規模の経済と従量課金
クラウドネイティブ:クラウドを前提としてシステムを作る 主にPaaSの活用 - DevOps
開発と運用が離れていたのを継続的なリリースを行うために効率化
CI/CDの発展形
カナリアリリース、ブルーグリーンデプロイ
様々な物がコード化+仮想化+自動化によって環境とか複数保持可能 - マイクロサービス
小さく分割してサービス連携によるサービス
先進企業の仕組みを調べて行ったらそうなっていたという結果論
変化するために分割する - 考えることが増えた
企画+開発+運用 すべてにエンジニアとしてやれることがある - Javaエンジニアの価値
ちゃんとJavaでアプリが作れるは価値、さらにサービス運営の視点を持つ
開発生産性 < 保守性 の方が大切 - 生き残る作戦
スペシャリストになる。専門性を特化
ゼネラリストになる。分野をまたがってバランスを調整
安定の鈴木会長の発表で良かった。