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.
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.