Lewati ke konten utama

Filosofi Desain

Flowra sengaja bersifat opinionated. Tujuannya adalah membuat jalur "benar" menjadi jalur yang paling mudah bagi tim yang membangun API produksi, tanpa menyembunyikan ekosistem Express.

Prinsip yang memandu framework

Struktur eksplisit lebih baik dari magic

Flowra mengutamakan penempatan file yang dapat diprediksi dan wiring yang eksplisit. Modul didaftarkan di modules.manifest.js, routes dipasang dari file modul, dan semua dependency di-resolve lewat container. Itu membuat onboarding menjadi sederhana: cukup buka app/Modules dan ikuti alurnya.

Dependency injection, bukan global state

Controllers dan services menerima dependency dari container. Ini memudahkan testing dan menghindari singleton tersembunyi. Jika bisa di-resolve dari container, maka bisa di-mock.

Batteries included, batteries optional

Flowra membawa logging, request context, error handling, database management, caching, dan queue stub. Anda bisa memakai semuanya, atau mengganti dengan komponen Anda sendiri. Express tetap sepenuhnya tersedia.

Batas modular membantu tim skala besar

Setiap modul adalah slice fitur. Modul berisi routes, controllers, services, models, dan queries. Ini memberi kosakata bersama antar tim dan menjaga konsistensi API saat codebase bertambah besar.

Tetap dekat dengan Express

Flowra tetap Express di bawahnya. Artinya:

  • Custom middleware bekerja seperti biasanya.
  • Anda bisa menggunakan library apa pun yang kompatibel dengan Express.
  • Performa dan debugging tetap familiar.
Filosofi dalam praktik

CLI Flowra bukan hanya generator. Ia meng-encode konvensi yang menjaga konsistensi kode lintas tim.

Flowra dirancang untuk membantu Anda menskalakan arsitektur tanpa kehilangan kecepatan developer. Struktur memberi Anda kecepatan; Flowra menjadikan struktur sebagai default.