Bunun çok kullanışlı-duruma özgü olabileceğini biliyorum, ama kendimi bunu çok sık merak ediyorum. Genel olarak tercih edilen bir sözdizimi var mı?
Bir işlevdeyken en iyi yaklaşımın ne olduğunu sormuyorum, erken çıkmam mı yoksa işlevi çağırmamam gerektiğini soruyorum.
Wrap eğer etrafında işlev çağrısı
if (shouldThisRun) {
runFunction();
}
Var ise ( bekçi ) işlevinde
runFunction() {
if (!shouldThisRun) return;
}
İkinci seçenek, bu işlev birden çok kez çağrılırsa kod çoğaltmayı azaltma potansiyeline sahiptir, ancak bazen buraya eklemek yanlış olur, çünkü o zaman işlevin tek sorumluluğunu kaybediyor olabilirsiniz .
Heres bir örnek
Bir şeyin durumunu güncelleyen bir updateStatus () işlevim varsa. Sadece durum değiştiğinde durumun güncellenmesini istiyorum. Kodumda durumun değişme potansiyeline sahip olduğu yerleri biliyorum ve meydan okurcasına değiştiği diğer yerleri de biliyorum.
Sadece ben olup olmadığından emin değilim ama bu işlevi olabildiğince saf tutmak istediğim için bu iç işlevi kontrol etmek biraz kirli hissediyor - eğer ararsam durumun güncellenmesini bekliyorum. Ama aramayı bir kontrolle sarmanın daha iyi olup olmadığını anlayamıyorum, bildiğim birkaç yer değişme potansiyeline sahip.