T: Tapi itu juga berarti saya harus meletakkan logika bisnis di front-end, di aplikasi web Angular2, kan ?
Iya. Jika tidak didukung oleh server, bisnis harus diimplementasikan di suatu tempat.
Setelah akuisisi Google, Firebase berevolusi menjadi platform untuk pengembang aplikasi seluler yang tidak mampu (atau tidak perlu) untuk menyebarkan backend mereka sendiri. Meskipun sebagian besar layanannya cukup transversal: penyimpanan, masuk, analitik, dan layanan pesan, memang benar bahwa ia juga menyediakan Fungsi Cloud (semacam lambdas) yang dapat digunakan untuk melakukan beberapa aturan khusus bisnis. Namun, untuk aplikasi perusahaan atau aplikasi besar dengan domain yang kompleks dan logika bisnis, dukungan semacam ini tidak memadai.
Jadi, seperti yang Anda duga, Firebase tidak membebaskan kami dari backend yang didedikasikan untuk menjadi tuan rumah dan menjalankan operasi khusus bisnis.
T: Jadi jika suatu hari nanti saya ingin membuat aplikasi mobile front-end, saya harus menduplikasi kode logika bisnis?
Belum tentu. Jika aplikasi web dibangun di atas Angular, lintas platform seperti NativeScript dapat memungkinkan Anda untuk menggunakan kembali komponen web, libs, utilitas, model, dll. Saya belum menyelidiki subjek sehingga saya tidak dapat memastikan kompatibilitas penuh Anda. Kuncinya terletak pada TypeScript , baik Angular dan NativeScript mengharuskan kita untuk kode pada TS.
Masalahnya adalah di mana harus meng-host Javascript untuk distribusi dan versinya . CDN kata .
T: Saya kira alternatifnya adalah membuat backend yang berisi logika bisnis dan menggunakan Firebase untuk penyimpanan datanya, tetapi tampaknya agak aneh (tidak bisakah saya hanya menggunakan ORM atau sesuatu langsung di backend saya untuk mencapai hal yang sama hasil tanpa lebih banyak pekerjaan?)
Beberapa pertimbangan.
Di satu sisi, hosting, menggelar, mengelola dan memelihara database bukanlah hal yang kecil. Belum lagi menangani keamanan, skalabilitas, ketersediaan, dll. Jadi, memiliki penyedia DB menjaga hal-hal ini menarik. Bukan ide gila akhir-akhir ini memiliki basis data kami di suatu tempat di cloud. Tentu saja, saya tidak akan menyarankan ini jika kami menerapkan middleware dan back-end untuk bank. Tetapi masuk akal untuk sesi klien, profil pengguna, preferensi, dan data seperti ini yang biasanya hidup di sisi klien atau data yang tidak kami pedulikan.
Di sisi lain, memiliki back-end kami berguna karena alasan sederhana, decoupling .
Alih-alih menyambungkan klien kami ke semua jenis layanan yang tidak kami kelola dan kontrol, kami menggunakan aplikasi sisi-server dari tempat kami menangani hal-hal ini sehingga klien kami tidak perlu khawatir tentang masalah seperti penutupan atau pemecahan layanan perubahan. Selain itu, kami memperoleh kesederhanaan karena back-end kami bertindak seperti fasad.
T: Bagaimana orang biasanya menyusun aplikasi semacam ini, jika mereka ingin menggunakan Firebase misalnya?
Sangat bervariasi dari proyek ke proyek. Misalnya, kami menggunakan Firebase + back-end.
Firebase DB untuk berbagi data antara perangkat-akun-sesi . Juga sebagai changelog, ketika backend kami sementara tidak tersedia, klien mengirim operasi tulis ke log, yang kemudian disinkronkan.
Firebase Cloud Messages memberi kami pemberitahuan dan topik push upstream / downstream. Kami menggunakan layanan untuk pertukaran pesan pub / sub.
Analitik Firebase Sebagian besar untuk metrik.
Back-end untuk segala sesuatu yang terkait erat dengan bisnis