エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

【参加報告】JJUG CCC 2021 Spring

イベント内容

【オンライン】 JJUG CCC 2021 Spring - 日本Javaユーザーグループ/Japan Java User Group | Doorkeeper

全部見ることはできなかったけど、興味関心あるものは見れた。

参加セッション感想+メモ

フロントエンド・バックエンド分離の道のり

  • 昔ながらのMVC
    • 責務が多い
    • コードがトレースしにくい
    • 並行開発が困難

技術的境界をまたぐ必要が多い=責務が多い=やるべきことがおおい=知識が多い=辛たん

  • 独自FWが醸成されやすい環境

    • 処理が共通化されやすい
    • 時間が経つと
      • コードが読みづらい
      • FWを知っている人間がいなくなると問題対応が難しくなる
  • JSP

    • カスタムタグの理解がむずい
  • JS

    • javascriptの進化に追いついてイケてない
    • DOM操作の複雑化

JavaエンジニアがJSP/JSを扱うのは辛い

  • 問題を解決するには

    • 技術境界をなくす
    • 並列化開発可能にする
  • 解決方法を実践する方法

    • サーバーサイドをAPI
    • フロントはサーバーとは別FWを利用

API化のメリット

  • テストしやすい
  • 表示の考慮がいらなくなる
  • JSP書かなくていい
  • 再利用性が高くなった

API化のデメリット

  • フロントが完成しないと画面の確認できない(疎通的な意味)
  • 画面表示して気づくミスが残る
  • フロントとバックが結合部分になり、バグが混在しやすくなった
  • 中途半端な棲み分けは、複雑さを残す
  • フロント・バックエンドで作業が分かれる
    • 情報連携、重要
    • 連携ミスがあると結合時にバグになって時間がかかるため、情報連携の手順を整備をする必要がある
    • 事前にノウハウがないと教育コストが高い

感想

技術境界は変えられない壁なんだな~と見ていて思った。
分断したときの問題点は、やはり結合部分に集約されるのだと感じた。

あなたの勘と経験は本当に合っていると断言できますか? プロダクション環境での計測のススメ

  • プロファイリングの意味

    • 思い込みの改善をなくすため
    • データに基づかないものは、オカルト
  • プロファイリングしないことのデメリット

    • 性能が分からない
    • 対応が後手になる
    • 再現できない
    • 平常時と非常時の差がわからない

カバレッジツールの導入→人への技術的依存を消せる。

感想

jacocoは、知ってた。
一時期、カバレッジの計測のため、ローカル環境で使っていた記憶がある。
使っていたときは、デバック実行でテストしていたときにカバレッジ図るのに使っていた気がする。

メソッドorクラスが死ぬまでのフローは、初めて見た気がする。
カバレッジの利用法として、コードの生死判断にも使っているわけね。

@Deprecatedに行くことはほとんどないかと思ったが、思い返すと、たぶん、ほとんど@Deprecatedに行く気がする。。。
有識者だから確実ってことのほうが少ないと思う。
そもそも、カバレッジで利用箇所が少ないところを見ているのだから、有識者でも知らないのは当然な気がする。

ソフトウェアアーキテクチャの選び方

ソフトウェアアーキテクチャが必要になるとき=長く運用するとき

将来は予測不可能。ワンタイムではないサービスを作る場合、一定の期間以上のサービスを作る際に、考慮の余地がある。

ソフトウェアの品質と開発効率の損益分岐点=1ヶ月

  • アーキテクチャの目的・達成したいこと
    • 抽象化
      • 抽象度の粒度を合わせる
    • 問題の分割
    • シンプル化
      • コード間の結合を複雑化しないようにする

アーキテクチャの種類

オンラインイベントの感想

アンカンファレンスの様子を見ようと思ったが、操作がイマイチ分からなくて断念した。。。
なんかAmong Usのゲーム画面みたいだな~とは見ていて思った。
キルされそうだから、あんまり長い時間は滞在しなかった。

自宅で見えるから、快適に視聴できた。
デュアルモニタで見ながら検索したりできるのは楽だった。
あと、部屋に人数制限がないから、見れないことがないのも良かった。

今回は、Java16のアップデート内容があんまりないから、事例紹介が多かった印象。
今の現場でJavaは使ってないけど、内容的にはついていけるから問題なし。
ドメイン駆動系のセッションが多かった気がする。
ドメイン駆動は、何回で雰囲気で聞き流しちゃうけど、どっかでちゃんと勉強はしたいとは思うが、座学だけだと理解するのは無理な気がする。。。