Mümkün olduğunda .. Ruby'de parantez içinde mi yoksa dışında mı?
Mümkün olduğunda .. Ruby'de parantez içinde mi yoksa dışında mı?
Yanıtlar:
Gönderen Yakut Style Elements
Ruby, genel olarak bu cazibeye direnmek için parantez bırakmanıza izin verir.
Parantez, kodun izlenmesini kolaylaştırır. Genel Ruby stili, aşağıdaki durumlar dışında bunları kullanmaktır:
- Daima boş parantezleri boş bırakın
- Parantezler, ERb sınırlayıcıları ile çevrelenmiş tek bir komutun dışında bırakılabilir - ERb işaretleri, kodun hala okunabilir olduğundan emin olur
- Tek bir komut olan bir satır ve tek bir basit argüman parantez olmadan yazılabilir. Şahsen, bunu giderek daha az yaptığımı görüyorum, ancak yine de mükemmel bir şekilde okunabilir. Normal ruby kodunda birden çok argümanı olan ve parantez içermeyen tek satırları sevmiyorum.
- Pek çok Ruby-tabanlı Etki Alanına Özgü Diller (Rake gibi), ifadelerine daha doğal bir dil hissi vermek için parantez kullanmaz.
Gelecekte bana yardımcı olmak için yorum olarak parens kullanıyorum ... şu anki benden daha az beyin hücresi olması muhtemel :-)
2 yıl önce yazdığınız bir koda bakıp onu yanlış anlamaktan daha kötü bir şey yoktur, böylece onu değiştirirken bir şeyi kırarsınız.
Eğer parenler gelecekte beni birkaç dakika (veya saat) kurtaracaksa, ifadeyi kristal netleştirmek için gerektiği kadar koyacağım.
T.column veya has_many in rails gibi DSL benzeri şeyler yaparken onları dışarıda bırakıyorum. Geri kalan zamanlarda, genellikle netliğe iner ve muhtemelen eşit bir bölünmedir.
İşlev çağrılarını kastediyorsanız, her zaman parantez koyarım çünkü okunması her zaman daha kolaydır. Koşullarda (if, while) demek istiyorsan, sadece gerekli olduğunda parantez koyarım.
Assert_equal gibi iddialar yaparken onları dışarıda bırakma eğilimindeyim. Belki de alana özgü dil benzeri hale getirmektir.
Uzun süredir programlama yapıyorsanız, muhtemelen parantez eklemek için bir "kaşıntı" yaşarsınız ve çoğu durumda bunun için iyi nedenler vardır.
Bana göre kod gözler için daha kolay ve henüz bir sorunla karşılaşmadım - parantezlere ihtiyacınız olacaksa, hata ayıklama betiğine girmeden önce bunu önceden bileceksiniz.
if owner.is_a? thing //worked fine
if owner.is_a? thing && x > 1 //not fine
sadece birkaç haftadır ruby öğreniyorum ve çalıştığım yerde mümkün olan en az sayıda karakter kullanılıyor ve başka bir dilden geliyorsan, bir öğrenme var bir fonksiyona sembollere geçen, dolaylı bir hash, bir dizi sembol, ne zaman geçtiğinizi bilmek için eğri ... ben hayran değilim.
if owner.is_a? thing and x > 1
and
aynı operatör öncelik yoktur &&
vardır