Ketika belajar tentang Redux, pola objek-Tuhan (atau pola-anti) muncul di pikiran saya - keduanya memiliki objek besar tunggal yang menampung semua data aplikasi dan metode untuk memanipulasi mereka. Tetapi Redux telah menempatkan beberapa kendala seperti membuat Objek tidak berubah dan acara berfungsi murni mempertahankan tanda tangan yang ketat.
Jadi pertanyaannya adalah, apakah Redux menggunakan versi objek Tuhan yang sudah disanitasi? Atau, ada sesuatu yang bisa dilakukan dengan Javascript tidak menjadi klasik sangat diketik OOP?
DbContext
) tetapi data internalnya dibagi menjadi beberapa bagian yang lebih kecil (tabel, skema).Jawaban:
Apa objek Tuhan? Dari Wikipedia:
Toko Redux hanya berisi satu objek data dan hanya membutuhkan 2 atau 3 metode. Dalam hal ini, sulit membayangkan membayangkannya sebagai objek Tuhan. Jelas tidak "tahu semua."
Sekarang jika peredam Anda tidak rusak sama sekali, jika semua logika ada dalam satu fungsi, maka itu mungkin memenuhi syarat tetapi itu adalah masalah sederhana untuk memecah peredam menjadi sekelompok potongan-potongan kecil untuk menghindari situasi.
sumber
IMO, Pertanyaan di atas seharusnya tidak muncul. Konsep pemrograman fungsional tidak sebanding dengan konsep dalam OOPS, mereka hanya cara yang berbeda untuk memecahkan masalah yang sama.
sumber
Halaman pertama membuatnya sangat jelas bahwa Redux memecahkan masalah yang khusus untuk aplikasi web satu halaman:
Karena persyaratan untuk aplikasi satu halaman JavaScript menjadi semakin rumit, kode kami harus mengelola lebih banyak status daripada sebelumnya. (dari Redux - Motivasi)
Terjemahan saya sendiri adalah - aplikasi web dan kerangka kerja untuk membuat aplikasi web berantakan dan ketika mereka berjalan di browser mereka dihadapkan dengan serangkaian masalah unik yang tidak muncul di luar aplikasi web.
Jangan salah paham - Saya tidak mengatakan aplikasi web itu buruk, atau kerangka kerjanya buruk. Hanya saja halaman web dan seluruh paradigma tentang hal itu tidak dapat disangkal tidak pernah dirancang dengan aplikasi dalam pikiran. Beberapa aplikasi web bekerja dengan sangat baik - Saya suka Google Documents misalnya, lebih baik daripada aplikasi asli yang setara.
Tetapi Redux hanyalah alat untuk mengelola masalah yang muncul ketika Anda harus berurusan dengan keterbatasan dan masalah yang timbul dari membuat aplikasi web yang berjalan di browser.
Untuk aplikasi iOS, atau aplikasi asli dalam bentuk apa pun, itu tidak masuk akal. Model objek menangani perubahan async dan interaksi pengguna dengan mudah. Anda akan selalu tahu apa yang terjadi. Rendering berbagai negara bukan masalah dan terotomatisasi dengan MVC dan memperbarui acara.
Anda tidak pernah dihadapkan pada situasi seperti aplikasi web.
** Jika arsitektur Anda buruk, maka tidak ada yang bisa menyelamatkan Anda, bahkan Redux;)
sumber