Teknik olarak hayır ama başka türlü kesinlikle Evet !!!
"Bu kişisel tercihi" unutun, "kod iyi çalışır", "benim için iyi çalışıyor", "daha okunabilir" yada yada BS. Bir hata yaparsanız ve kodlama yaparken bir hata yapmanın çok kolay olduğuna inanıyorsanız bu çok ciddi sorunlara yol açabilir (İnanmayın ?, ünlü Apple'ın hataya gitmesine bakın ).
Argüman: "Kişisel tercih"
Hayır öyle değil. Mars'tan ayrılan tek kişilik bir takım değilseniz, hayır. Çoğu zaman kodunuzu okuyan / değiştiren başka insanlar olacaktır. Herhangi bir ciddi kodlama ekibinde bu tavsiye edilen yöntem olacaktır, bu yüzden 'kişisel tercih' değildir.
Argüman: "kod iyi çalışır"
Spagetti kodu da öyle! Onu oluşturmanın uygun olduğu anlamına mı geliyor?
Tartışma: "benim için iyi çalışıyor"
Kariyerimde bu problem yüzünden çok fazla hata oluştuğunu gördüm. Muhtemelen kaç kez yorum yaptığınızı 'DoSomething()'ve neden 'SomethingElse()'çağrıldığına şaşkın olduğunuzu hatırlamıyorsunuz :
if (condition)
DoSomething();
SomethingElse();
Veya 'SomethingMore' ekledi ve çağrılmayacağını fark etmedi (girinti aksini ima etse bile):
if (condition)
DoSomething();
SomethingMore();
İşte sahip olduğum gerçek bir hayat örneği. Birisi find & replace "console.log"=> çalıştırmak için tüm günlüğü kapatmak istedi //"console.log":
if (condition)
console.log("something");
SomethingElse();
Sorunu görüyor musunuz?
"Bunlar çok önemsiz, bunu asla yapmam" diye düşünseniz bile; her zaman sizden daha düşük programlama becerilerine sahip bir ekip üyesi olacağını unutmayın (umarım takımın en kötüsü değilsiniz!)
Argüman: "daha okunabilir"
Programlama hakkında bir şey öğrendiysem, basit şeyler çok hızlı bir şekilde çok karmaşık hale gelir. Bunun çok yaygın olduğu:
if (condition)
DoSomething();
farklı tarayıcılar / ortamlar / kullanım senaryoları veya yeni özellikler eklendikten sonra aşağıdakilere dönüşür:
if (a != null)
if (condition)
DoSomething();
else
DoSomethingElse();
DoSomethingMore();
else
if (b == null)
alert("error b");
else
alert("error a");
Ve bununla karşılaştırın:
if (a != null) {
if (condition) {
DoSomething();
}
else {
DoSomethingElse();
DoSomethingMore();
}
} else if (b == null) {
alert("error b");
} else {
alert("error a");
}
Not: Bonus puanları yukarıdaki örnekte hatayı fark edenlere gider.