なみひらブログ

学んだことを日々記録する。~ since 2012/06/24 ~

「JJUG CCC 2017 Spring」に行ってきました

Javaの日本ユーザ会のカンファレンスに行ってきたのでメモっときます。
※CCCは「Cross Community Conference」の略らしい。

www.java-users.jp

開催概要

  • 日時
    • 2017/05/20(土)9:30-18:30
  • 場所
  • 主催
    • 日本Javaユーザーグループ
  • 参加者数
    • 約1000人?
  • 発表資料

会場雰囲気

  • 受付
    f:id:Namihira:20170520122926j:plain
  • 会場(このような部屋が8部屋ほどある)
    f:id:Namihira:20170520141943j:plain

セッションメモ

日本Javaユーザーグループ 年次総会

  • 会長による活動
  • 申し込んでいて当日不参加が多くて困る。ちゃんとキャンセルしましょう。
  • 参加者の半分が30代なので、託児所を始めてみた。
  • ユーザグループ結成来年10周年
  • 所感
    • 収支報告もあって総会感がすごい( ゚д゚ )

ふつうのJavaコーディング

  • irofさん
  • コードのアンチパターン紹介
  • コードは読み物
    • コードは書くよりも読むことのほうが多い
  • 説明できるコードは良いコード。
  • 所感
    • 日頃気をつけていることと、気をつけないといけないことを言ってもらった感じ。
    • 自分は六段ぐらい?
  • speakerdeck.com

エンプラ開発におけるレガシーアプリケーションの巻き取りとモジュール分割の戦い

  • 元大手SIerの方の発表
  • レガシーシステムや開発方法の改善事例紹介。
    • 元々あったらシステムの運用開発にて、フレームワーク選定やチームビルディング(振り返り)からCI/CDなど適用事例。
  • 単体テストコードのメソッド名を日本語にしてレビューしやすさを向上させた。
  • 以前のレガシーシステムでは、本番のwarを解凍して、修正したclassファイルを置き換えて再圧縮してデプロイする。
  • 流行りにのるのではなく、モジュール分割の意味をちゃんと考える
    • 「ベンダーを切り口としたモジュール分割」から「リグレッションの局所化など」が目的へ。
  • 所感
    • 教科書的な改善事例。
    • SIerなどお客さん意向や予算もあるので、改善も進めるもの大変そう。
  • www.slideshare.net

SpotBugs(FindBugs)による大規模ERPのコード品質改善

  • HUEを作っている会社の人。SpotBugsのコミッタ。
  • 静的解析の動向と運用事例
  • checkstyleプラグインは簡単につくれる。
    • Java8サポートが弱い。Lamdaの扱いも弱い。
  • PMD:コピペが検出できる。Java以外も使える。
  • SpotBugs:Findbugsの後継(開発が止まっていたのでフォークした)。プラグインが豊富。
  • Checker Framework:Java8のJSR308(アノテーション)を利用する。
  • Google error-prone
  • EclipseFindbugsプログレスバー表示の処理が重い。SpotBugsで治っている。
  • Findbugs、SpotBugsはシングルスレッド。コアを使い切れない。
  • 静的解析はnice to haveではなくmust to have。やったほうが効果が高い。
  • 大事なのは、開発効率を下げないこと。
  • 運用
    • 対象クラスを絞り込む。(onlyAnalysis)
    • 見つける問題を絞り込む。(Vistor)
    • 独自プラグインで、差分Classファイルだけ解析する
  • 所感
    • 普段なかなか聞くことのない静的解析の深いところまで聴けたので良かった。
    • Findbugsの現状が知れてよかった。

What you need to know about HotSpot and Your Code

Introduction of Project Jigsaw

  • スライドの作成サービスを使っていた。匿名で質問できる。
  • JigsawはPublic Review Bolletで棄却された
    • 7月リリースは厳しそう
    • ただしJava9(別のRFP)にはJigsawが入っているので、そちら分はリリースされそう。
  • Module
    • 現状の課題:mavanを使えば依存性は書けるが、Javaとしては依存性は管理できない。
      • 必要なところだけ読み込む。ヒープの節約。ロード時間の短縮。
    • 現状の課題:意図しないPublicクラスが別jarから利用されるケースがある。Publicのスコープを制限したい。
  • module-info.javaに依存パッケージと公開パッケージと書く。
  • 新規では導入簡単だが、既存は使えなくメソッドがある可能性がある。
  • Moduleかどうかかわからなかったら、java -dをすると、module-infoの情報がでる。出力があればModule。
  • module一覧をだす=java –list-module
  • JLink=モジュール指定して自分用の最小構成のJREを作れる。
  • jdeps=既存jarの依存モジュールを調べ方。jdeps -s hello.jar。–generate-module-infoで自動作成できる。
  • Moduleではないjarは、Moduleのディレクトリにおけば使える。モジュール名に議論があり(ファイル名を採用するか or MANIFEST.MFに定義するか)検討中。
  • 所感
    • Jigsawについて理解できていなかったので良かった。
    • ビルドツール(gradleなど)との兼ね合いを考えると、結構運用が複雑になりそう。
  • www.slideshare.net

U-NEXT学生インターン、過激なJavaの学び方と過激な要求

マチコ&河村の怒り新党 〜真の最終回〜

  • 事前投稿された怒りについて、参加者含めディスカッション。
  • 総論。困りごとは自分が動いて解決する。解決できなかったら環境を変える。
  • あった怒り
    • 勉強会が都市部で行われており、地方組が大変。
    • 同僚が勉強しない
    • 上司の頭が固い。

全体所感

  • Javaの新しい仕様など噂では聞いていたが、今回ちゃんと理解できた気がする。
  • 新しい仕様を導入されたらみんな試行錯誤で使っている感じ。学びなど共有大切。
  • ↓も聴こうと思ったけど満席で入れなかった(´・ω・`)

まとめ

  • 調べるより聞いたほうが早かったりする。