Lewati ke konten utama

Modularization

Panduan memecah project menjadi module-module yang independen untuk meningkatkan build time, reusability, dan team scalability.

Kapan Perlu Modularization?​

KriteriaPerluBelum Perlu
Tim > 3 orang✅—
Build time > 2 menit✅—
Shared code antar project✅—
Project kecil, 1-2 developer—✅

Module Types​

app/ # Application module (entry point)
├── feature-home/ # Feature module
├── feature-profile/ # Feature module
├── feature-auth/ # Feature module
├── core-network/ # Core module (networking)
├── core-database/ # Core module (local storage)
├── core-ui/ # Core module (shared UI components)
├── core-common/ # Core module (utilities, extensions)
└── domain/ # Domain module (entities, use cases)

Rules​

  1. Feature modules tidak boleh depend satu sama lain.
  2. Feature modules boleh depend ke core dan domain modules.
  3. Core modules tidak boleh depend ke feature modules.
  4. Domain module tidak boleh depend ke module lain (kecuali core-common).
Gradual Migration

Tidak perlu modularisasi seluruh project sekaligus. Mulai dengan mengekstrak core-network dan core-ui terlebih dahulu, lalu feature modules secara bertahap.