覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

Java Casual #2に行ってきたよ

Java Casual #2に参加してきました。

以下自分用のメモ

概要

  • 日時: 2016/11/07(月) 19:30~
  • 会場: LINE株式会社 27F カフェ


jcmd便利

@sugarlife

  • JDK9からの診断ツール
    • jcmdとjhsdbを使う
  • jinfo, ihat, jmap ⇒ Experimental
  • Srviceablity Tool(jcmdを含む)
    • Dynamic Attach(Uix domain socket)
  • jcmd
    • CLIのLocal JVM process 診断ツール
    • jcmd [-l | -h | prcess command]
    • Help
      • jcmd prcess help
      • jcmd prcess help command
  • jcmd機能
    • PerfCounter
      • JVM統計情報
    • ManagementAgent
    • Thread
      • Thread dump
    • GC
      • GC機構(Heap/GC/Finalization)
    • VM
      • ランタイム周り。情報出力系
      • クラッシュ時と同等のレベルのログを収集できる
      • Native Memory Tracking(Nativeメモリの状態を記録する)
      • JVM Unified Logging(JEP158)
      • GCログを途中から設定したり、有効にしたり
    • Compiler
      • Compile状況を確認できる
        • JITコンパイルにより最適化がされているかを見たりしている
    • JVMTI
      • JVMTI Agent制御
  • これは覚えておいてほしいコマンド
    • jcmd <proess> VM.info


*.properties と *.yml と 私

@nabedge

  • propertiesファイルについて、Eclipseのプロパティエディタは小文字でエンコード、IntelliJ IDEAは大文字でエンコード
  • 国際化対応の方法は2つ用意されている
    • foo_[ロケール].properties
    • java.util.ListResourceBundleを継承したクラスを作って対応する
      • ResourceBundle.Control#getControl


SCM, CI and Maven Repo

@hdkshjm

  • GitHub Enterprse
    • サービスごとにOrganization
    • Repositoryで1万以上
    • git flow, GitHub FLow を使用
  • Jenkins
    • 1つのJenkinsを共有
    • Java App, Android App, iOS App
    • C_develop
      • 複数の社内ライブラリに依存している巨大なアプリの場合はSkinny Warを作ることも
    • R_master
      • PRを自動でbuild(testまで)
    • Nexus Reporitory Pro
      • 外部RepoをReverse Proxy
        • Reverse Proxyしつつcasheもしてくれる
        • 外部RepoがURL変更になっても既存のpomは影響はない
      • Upload専用のinternal/nightly
        • JenkinsからのみRelease Artifactをupload可能
          • Local PCから間違ってuploadする事故を予防
          • build方法の一子相伝の口伝継承を予防
      • Download専用のreleases/snapshots


How to cook lettuce?

@oklahomers

  • lettuce
    • Redis Client
    • Redis Cluseterをサポート
    • ノード情報のキャッシュやコネクションの適切な管理


Fluency - yet another fluent logger

@komamitsu

  • Fluency
    • fluent-lgger-javaより4倍以上速い
    • PackedForward formtにより速い
    • 拡張性は高い
    • TrasureData社内でも使われている


Openjdkを触ってみた話

@tokuhirom

  • @sugarlifeさんのスライドを読めばよい
  • 中身
    • だいたいC++ or Javaで書かれている
    • わかりやすい
      • 歴史を感じるコードも多い
  • go-hsperfdata
    • hsperfdata を golang で解析する
  • openjdk便利
    • 自分の好きなjavacも作れる