Java開発

Javaのビルドが遅いのは誰のせいか

Javaのビルドが遅いと感じる瞬間 Javaという言語は本当に遅いのか MavenやGradleは悪者なのか アノテーション地獄がビルドを重くする テスト設計が最大のボトルネックになる モジュール分割と依存関係の問題 CI環境が足を引っ張るケース 実際に改善するとど…

バージョンアップを前提にしたJavaの依存設計

なぜJavaの依存関係は壊れやすいのか 「とりあえず最新」が失敗しやすい理由 バージョンアップを前提にした依存設計の考え方 依存の境界を明確にする バージョンは「決めてから使う」 依存の一覧を人が読める形で把握する 実際にやるとこうなる:現場での運…

MavenでBOMを使う理由を現場目線で整理する

MavenでBOM(Bill of Materials)とは何か なぜMavenでBOMを使う理由が生まれたのか 依存関係の数は必ず増える transitive dependencyの存在 BOMを使うと何が変わるのか pom.xmlが読みやすくなる バージョン衝突を事前に抑えやすい 複数モジュールでの統一が…

親POMって結局何が嬉しいのか、現場目線で整理する

親POMとは何かをざっくり整理する 親POMが嬉しい一番の理由は「重複を消せる」こと 同じ設定を何度も書かなくて済む バージョン管理が楽になる 親POMが効いてくるのは「プロジェクトが育ってから」 小規模なうちは恩恵を感じにくい チーム開発で差が出る dep…

lockファイルがないJavaは不安じゃないのか

lockファイルがないJavaは本当に不安なのか なぜJavaにはlockファイル文化が根付かなかったのか 中央集権的なリポジトリの存在 バージョン解決ルールがツール側で安定している 実際にやるとどうなるのか:現場でのリアル 何も指定しないと「じわっと壊れる」…

Maven Centralって何者?Java依存関係の中枢を理解する

Maven Centralとは何か なぜMaven Centralが生まれたのか 実際にやるとこうなる:依存関係解決の裏側 Maven Centralと他のリポジトリの違い 失敗しがちなポイント セキュリティと信頼の話 Maven Centralが向いているケース 向いていない、または注意が必要な…

「とりあえずMaven」で困らない理由

「とりあえずMaven」が選ばれ続ける背景 Mavenの基本構造が「困りにくさ」を作っている pom.xmlに集約される設定 ディレクトリ構成がほぼ固定 依存関係管理でハマりにくい理由 中央リポジトリの存在 依存関係の解決ルールが明確 実務でよくある「Mavenで助か…

MavenとGradle、結局どっちを選べばいい?

MavenとGradleの基本的な違い Mavenは「決まりごと重視」のビルドツール Gradleは「柔軟性と表現力」を重視する 実際に使うと感じる違い ビルド速度と開発体験 設定ファイルの読みやすさ Mavenを選ぶときに向いているケース Gradleを選ぶときに向いているケ…

Apache Mavenとは何者かを現場目線で理解する

Apache Mavenとは何者か Apache Mavenが生まれた背景 Mavenの中核にある考え方 規約より設定(Convention over Configuration) 宣言的な依存関係管理 pom.xmlは何をしているファイルなのか Mavenのビルドライフサイクルを理解する 実際の現場でMavenを使う…