JJUG CCC 2019 Spring に行ってきた

書き手(私)のコメント/感想

  • JJUG CCC 2019 Spring に参加したのでそこで聞いて来た話のメモ
    • 完全に聞き取れたわけではないので話し手の意図と合っていない箇所があるかもしれません
    • (後ろに行くに連れてコメントが少なくなっていますが発表内容自体に何かあるわけではなく、単に私の体力と集中力が無くなってメモが取れていないだけです)
  • バリエーションに富んだセッションで聞いていて興味深いものばかりでした
    • あと、休日にこれだけの人が勉強会に来ていることにも驚いています (何もやっていないとすごい勢いで置いていかれる的な意味で)

JJUG Keynote #ccc_e1

  • Speaker: 谷本 心

現代に求められている Java コミュニティとは

  • 資料公開しないつもり
  • 反社会的な組織にする ※反社会的と言っているが、別に法を逸脱して何かをするというわけではない (聞き手としてのコメント)

アジェンダ

  • JJUG でやりたいこと
  • なぜ JJUG と CCC を分けたのか
  • いまの日本や IT 業界の状況を見つめ直す

本編

Java のリリースへの追従

  • 背景
    • 半年ごとのリリースサイクル
      • 学ぶスピードが速くなる
    • ライセンスモデルの変更
      • それに伴う混乱
  • 今後やること
    • 勉強会でのアップデート
    • グッドプラクティスの共有

海外 JJUG との連携

  • 背景
    • 新しい技術は海の向こうから
    • 新しい技術の情報を得る イコール 選択肢を増やす
      • 中上級者向け
        • 使い込んだ情報を共有する
          • 選択肢を減らす -> 初中級者向け
  • 双方向の連携
    • 海外 -> 日本
    • 日本 -> 海外
    • Oracle のイベントより JJUG のほうがレベル高いよ (余談)
  • 英語の壁を乗り越えろ
    • 海外カンファレンスに参加するほうが手っ取り早い
      • CCC 英語セッションを増やす
  • 今後やりたいこと
    • CCC の英語セッション継続 改善
    • JOnsen バイクツアーの継続
    • 海外の Java エンジニアが旅行する際にイベント参加してもらう
    • 日本の Java エンジニアが海外イベントに参加 登壇するのをサポートしたい
  • 情報を得ること発信することは自分達のやり方を客観的に見つめる機会になる
  • OpenJDK のネガティヴな話もあるはず ポジショントーク多いのでは

地方 Java コミュニティとの連携

  • 背景
    • 地方の Java コミュニティが登壇者を呼ぶ際の費用サポートをしている

初心者向けコンテンツの充実

  • 背景
    • Call for Paper
    • レベルの高い応募者がおおい
  • なぜそうなるか
    • 登壇するエンジニアはレベルが高い
  • 初心者向けの話をしたい人は貴重
  • やりたいこと
    • セッション、ハンズオンの充実
    • 企業と組む
    • 初心者向け講習にインセンティブを払う
    • 運営の手が足りない

組織を分離した理由

  • CCC ボランティアの募集など
    • 幹事が疲弊しなくなった
  • が、JJUG 幹事が不足している
    • 積極的な人ほど負荷が集中する
  • 幹事会の話題
    • 次の JJUG CCC の話
  • 課題
    • 年1にする?
      • 運営スキルが継続できなくなる
    • 委託する
      • 予算が無い
    • 有償化
      • 幹事へのプレッシャー大
  • やりたいことをもっとできるようにするため

いまの日本や IT 業界を見つめ直す

  • インターネットの普及により海外から技術だけで無く文化も一緒に伝わってくる
  • 日本文化と欧米文化の相違
    • 画一性 / 多様性
    • 感情的情緒的 / 合理的
    • 終身雇用 / Job Description
  • 日本的なサービス
    • 人中心
    • 現場の人間が柔軟に対応する
  • 欧米的なサービス
    • システム中心
    • システムとマニュアルで幅広く対応するが外れた要求には対応しない
  • 雇用の相違
  • 日本
    • 終身雇用
    • 優秀な人とそうで無い人の差が付きにくい
  • 欧米
    • ジョブ型雇用 適材適所 仕事が無くなれば終了
    • 優秀な人と層で無い人の差が付きやすい
  • 欧米型の雇用にシフトしている
  • サービスも欧米型に モンスターカスタマー
  • インターネット、旧来メディアによる分断
  • IT エンジニアの誤謬
  • IT エンジニアは未来に生きている 一般の人に比べて
  • 現在はその価値観が入り交じっている
  • 日本文化を好む人は、非協力的和を乱すやつと見なす
  • 欧米文化を好む人は、非効率 だから日本はダメという
  • IT エンジニアはなぜこれを IT 化しないのかと言いがち
  • インターネットで可視化されるようになった
  • 生きづらくない?

今後のコミュニティのあり方

  • JJUG を反社会的にしたい
    • 反社会的:社会の秩序や道徳から外れた
  • 多様化する価値観
  • そういう人達を守る
  • 人間は自分を正義だと認識しているときのほうが暴走しやすい
  • 会社の仕事がつまらない
    • そんなことを言ってはならない 道徳
  • 逸脱する人を守ることがコミュニティであればそれは反社会的
  • 道徳を守りたい人のことも理解して受け入れる必要がある
  • 多様な価値観を認める
  • 思考実験
    • PTA
    • 残業
      • 人は時間をかけただけ成長する
      • もっと働いて成長したい人もいる
        • それを助けるためのコミュニティ
        • やりがい搾取と活動機会の提供は紙一重
  • 他人の価値観を否定するのは苦しいこと
  • 人が熱烈に没頭しているときは Happy なはず
  • 技術が好き、成長したい、コミュニティが好き、の受け皿となる
  • コミュニティに属さない人達のことを否定しない
  • Be 反社会的勢力

パッケージ管理していなかった既存システムに後付けで Gradle を導入した話 #ccc_a2

  • https://speakerdeck.com/saiya_moebius/how-to-setup-gradle-to-improve-legacy-java-system
  • Speaker: 矢崎 聖也
  • git clone すると jar が大量に落ちてくる状態
  • OWASP
  • レガシー改善の戦略
    • 真に困っていることを改善するための最小のスコープにする
  • .class ファイルをテキスト形式で差分比較することができる
  • pom.xml はめんどくさがらずに書いたほうがよい
  • 戦略として何をしないのか、を決めることが大事
  • 質疑応答
    • 勝手にリポジトリ上の jar を変えても、Gradle でのビルド時に気づける
    • 闇が深いものが今後のリスクになると思っている
      • 放置しないほうがよいと思っている
      • ビッグバン的にやるか、少しずつやるか
      • SI だと少しずつは難しいこともあるかも
    • テストが無いコードがある画素の場合はどうすればよいか
      • テストを先に作る
        • これを先にやるとなるとメインどころが進められない
      • ライブラリの差分をチェックするというアプローチを取った
    • ビルドプロセスを変えるか?
      • 未定
        • メリットがあまり無さそう

Cloud Native時代の開発環境とアプリケーション基盤(仮) #ccc_el

  • https://speakerdeck.com/nobusue/runtime-for-cloud-native-era
  • Speaker: Nobuhiro Sue
  • Eclipse Che
  • コンテナベースのアプリケーション開発を容易に
  • Language Server は MS が開発していてあんしん
  • 拡張(stack?)をコンテナ上に作ることができる
  • UI にクセがある
  • 入門としては Minisift を使うのがおすすめ
  • デバッグ実行もできる
  • エラーが不親切
  • クライアントからトンネルして Workslapce を使うことも可能
  • 宣伝パート
    • operatorhub
    • TEKTON

実践クリーンアーキテクチャ with Java #ccc_e3

  • https://nrslib.com/clean-architecture-with-java
  • Speaker: Masanobu Naruse
  • フロントのプロトタイプだいじ
  • ドメイン ビジネスルールを表現する
    • 領域
    • 物流システムの場合 ※ドメインモデル
      • トラック
      • 作業者
  • アプリケーションレイヤー
  • Clean Architecture は DIP をふんだんに使っている
  • DS: DataStracture
  • Presentor は Web にマッチしない
    • iOS などにはマッチする
  • レールを用意する
    • ベクトルを同じにすることが大切
  • アーキテクトの役目はレールを敷くこと

テストエンジニアが教える JUnitを書き始める前に考えるべきテスト #ccc_e4

  • https://speakerdeck.com/nihonbuson/jjug-ccc-2019-spring
  • Speaker: ブロッコリー
  • ペアワークあり
  • テストの目的
    • 欠陥の検出
      • 原因究明は別
    • 対象ソフトウェアの品質レベルが十分であることの確認
      • 十分、であること 完璧では無い
    • 意思決定のための情報の提示
    • 欠陥の作り込みの防止
      • 実装の前にできるテスト活動がある
  • 早い段階で不具合を見つけることが大事
  • テスト内容について議論することが大事
    • 実装前に行うことができる
    • 設計などの段階でできる
  • どうやってテストケースを作るのか
  • テストケース作成の心得
    • 理由を説明する
    • テストケース名に役立つ
  • 単体テスト結合テストは開発者の責務 QA はシステムテストをしたい
  • Cheking と Testing
    • Cheking: 意図通り動くか
    • Testing: なんとかして製品を破壊する
    • Cheking は開発者の責務
  • 自動テストは Cheking

1400万ユーザーのWebサービスを15年運用して考える、Javaである理由 #ccc_e5

JJUG会長と一緒に考えたSpring Boot x JavaScript x IntelliJ x アジャイルというモダンな新人研修を今まさにやっている話 #ccc_e6