CODEOWNERを使う a. チームが見るべきプロジェクトを限定する b. 課題が発生したときに見るべきチームも明確になる(SentryによるCODEOWNER連携) 2. Gradle Build Cacheを活用する a. いらないビルドを減らすのにとても便利、特にテストを省略できるのがいい b. 上流プロジェクトが変更されるとそれに依存する下流プロジェクトも再ビルドになる =上流がたくさんあって下流が少ないほうが良い 3. こういうの↑ができるようにコードの持ち主を明らかにして依存を整理する a. 一番大変 16
テストを書きにくくしている技術的課題の解決 a. マスターデータに依存したコードが多いという前提条件 b. データベースが起動していないとテストが実行できない→Testcontainers c. データベース(Postgres)を起動するのに時間がかかる→Testcontainers d. テストが現在時刻に依存しがち→Clockインタフェースの実装をconstructor injection 2. 自動テストの実行を爆速化 a. マルチスレッド化 b. マルチプロセス化 i. Fan-out ii. Test Distribution c. Predictive Test Selection d. Gradleサブプロジェクトの分割 24