search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
314 gösterim
Redux nedir ve ne amaçla kullanılır?
Javascript kategorisinde 167 puan

1 cevap

0 oy

Aktif olarak kendim hiç kullanmadım ama sanıyorum vuejs'deki vuex muadili oluyor. Muhtemelen redux daha önceden çıkmış vue tarafından da kullanılıyor olma durumu var. Ben kısaca anlatmaya çalışayım ve güzel anlatan bir referans vereyim.

Object oriented programlamada sık sık karşımıza gelen bir sorun vardır. OOP üzerinden ilerleyerek anlatayım anlaması daha rahat olur. En azından bana öyle geldi. Elinde birkaç tane obje var ve bunlardan bazıları aynı bilgiye ulaşmak istiyor. Hemen ufak bir şekil çizelim.

Şimdi elindeki bilgiyi obje1 obje2 ve obje3 e nasıl göndereceksin gibi bir soru çıkıyor. Bu sorunun cevabı için kendi kendine yöntemler geliştirebilirsin ve içinde bulunduğun context (uygulama yapısı diyeyim) sana bazı kolaylıklar sağlıyor olabilir. Temeline indiğin zaman iki farklı yaklaşım karşına çıkar. Mesala dümdüz java için konuşalım. İlki ortan erişim olan bir alan belirlemek. Bir sınıf içine bilgiyi static bir değer olarak tanımlayıp hepsinden ulaşabilirsin. En basit ve etkili yöntem uygulamaya göre işe yarayabilir veya başına bir sürü sorun açabilir. O kısmına girmeyeyim keza şimdilik işimizi görüyor.

....
BizimStaticSınıf.bilgi = new BizimBilgi()

BizimObje obje1 = new BizimObje();
BizimObje obje2 = new BizimObje();
BizimObje obje3 = new BizimObje();
....

BizimStaticSınıf.bilgi.birşeylerYap()

Bu şekilde objelerin hepsi bilgiye staticsınıf üzerinden ulaşabilir ve birşeyler yaptırabilir.

Şimdi başka bir yaklaşıma bakalım. Zincirleme olarak referansı birbirine paslamak.

Uygulama yapısından isole bir şekilde en bariz çözüm yöntemi objelerin constructor kısmında veya herhangi uygun bir kısmında objeye elindeki bilgiyi parametre olarak geçmek. Hemen örnek bakalım

...
 BizimBilgi bilgi = new Bilgi();
 BizimObje obje1 = new BizimObje(bilgi);
 BizimObje obje2 = new BizimObje(bilgi);
 BizimObje obje3 = new BizimObje(bilgi);
....

Sarı R olanlar referans oluyor. Bu şekilde de bilgiye ulaşımı sağladın. Objelerin içinede rahat rahat kullanabilirsin. JS tarafında genelde bu ikinci insanların aklına daha çok geliyor (öyle sanıyorum). Elinde 3 tane sınıf varsa bu bir sorun olmayacaktır. Ama elindeki sınıflar onları daha sonrasında yüzleri bulduğu zaman neyi, ne zaman, nasıl birbirine göndereceğin sorun olup karmakarışık bir duruma gelmeye başlıyor. Aslında tipik olarak üstteki yöntem çok daha kolay hale gelmeye başlıyor, keza bence de öyle. Bir de bu işlemi ortak ulaşılması gereken bütün kod altyapısı için düşünürsek daha da önem kazanıyor. Facebook'da bu işlemi anladığım kadarıyla zor yoldan bir tecrübe etti ve sonrasında şu üstteki yöntemi baz alarak bir yaklaşım geliştirme yoluna gitti. Artık redux (vue için vuex) BizimStaticSınıf'ın yerini alıp işlemlerin sahibi konumuna geçti.

Temel olarak bu problemin nasıl çözüleceğinin cevabı redux oluyor. İkinci yöntem işe yaramaz mı? Tabiki yarar. Her soruda neredeyse söylediğim gibi biri diğeri yerine kullanılabilir. Hangisini ne zaman kullanmak istediğin/kararın senin programcılık tecrüben arttıkça daha açık olmaya başlayacak. Kısaca sana bağlı.

Biraz daha redux'u incelemek istiyorum dersen senin cevabın aşağıdaki linkte. Keza benim çok tecrübem yok. Devnot'dan Zafer Ayan açıklamış. Ben açıklamayı da beğendim.

http://devnot.com/2018/redux-nedir/

6.2k puan

İlgili sorular

0 oy
0 cevap 177 gösterim
177 gösterim
FLUTTER ı google tarafından geliştirilen bir JS kütüphanesi olarak biliyorum. Diğerlerinden farkı nedir acaba? FLUTTER ın günümüzü ve geleceği hakkında öngörünüz nedir?
20 Ağustos 2020 Genel Kavramlar kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 2.1K gösterim
2.1K gösterim
Bir proje yapmak istiyorum, ancak js frameworklerdinen hangisini, neye göre seçeceğimi bilemedim. Hangisini önerirsiniz? Hangisinin ne üstünlüğü vardır?
11 Temmuz 2017 Javascript kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 1.4K gösterim
1.4K gösterim
Selamlar, Tek yönlü şifrelerin ne olduğu ve hangi amaçla kullanıldığı ile alakalı bilgi verebilir misiniz?
15 Kasım 2016 Genel Kavramlar kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 502 gösterim
502 gösterim
React native öğrenmeye başladım ve karşıma virtual DOM çıktı. Bunun normal DOM dan farkı nedir ne işe yarar?
13 Ekim 2020 Genel Kavramlar kategorisinde kupanintorunu 365 puan sordu
0 oy
1 cevap 61 gösterim
61 gösterim 15 Ocak 2023 Python kategorisinde kenan 6.2k puan sordu