Groovy (grails) size java gibi kontrol etme zamanı verir mi?Groovy (grails) size java gibi kontrol etme zamanı verir mi?
Her zaman türü belirtirseniz, bu çok şey değişecek mi?
Groovy (grails) size java gibi kontrol etme zamanı verir mi?Groovy (grails) size java gibi kontrol etme zamanı verir mi?
Her zaman türü belirtirseniz, bu çok şey değişecek mi?
Groovy derleyicisi elbette sözdizimi hatalarını bulacaktır, ancak Java ile neredeyse hiçbir tür hata içermeyecektir. Bildirilmemiş değişkenlerin kullanılması bile genellikle derlemeyi geçecektir.
Bildirme türleri, yapılan denetim miktarını artıracak, ancak çok fazla değil.
Bunun nedeni, Groovy'nin, derleyici tarafından bilinmesini imkansız kılan güçlü meta programlama özelliklerine sahip dinamik bir dil olmasıdır. Belirli bir nesnenin derleme zamanında hangi yöntem veya alanlara sahip olacağı, bunun başka bir kod tarafından çalışma zamanında değiştirilebilmesi mümkündür. Ancak, IDE eklentileri, sınıf bildirimlerinde bulunmayan bildirilen bir türe sahip değişkenlerin üyelerini olası hatalar olarak işaretleyerek bir uzlaşma sunar. Ardından geliştirici, bu üyenin çalışma zamanında mı yoksa sadece yazım hatası mı yapıp yapmayacağına karar verebilir. Ayrıca, bilinen sınıf üyeleri otomatik tamamlamada görünür.
Bu derleme zamanı kontrol etmek kadar hemen hemen tersidir dinamik-yazma programlama dilleri olacak şekilde tasarlanmıştır
sayılı.
Bunun yerine daha fazla birim sınaması eklemeniz gerekecek.
Groovy 2.0 yana derleme zamanında türlerini kontrol etmek mümkündür edilir. Ek açıklamalar sınıfta veya yöntemde kullanılabilir: @ TürChecked veya @CompileStatic. Bunlardan ilki derleyicinin derleme sırasında tür denetimi yapmasını ve ikincisinin ise, yerel JAVA derleyicisinden olduğu gibi ikili kodla daha çok veya daha az sonuç veren 'statik derleme' yapmasını zorladığını anlatır. Elbette, 2. açıklamanın kullanımı, kendi başına tip kontrolünü içerir.
Grails 2.2, Groovy 2.0 kullanan ilk sürümüdür.
Groovy 2.0 @CompileStatic vardır ve Topr söylediği gibi http://java.dzone.com/articles/groovy-20-performance-compared
... Bu özellik sürüme kadar grails DAİREMİZ olacak Groovy 2.0 ve Java arasındaki bu iyi bir performans testini kontrol edebilirsiniz @TypeChecked 2.2
Sen Senaryo sözdizimi ile Groovy kullanırsanız birim testleri yazamazsınız. Bu, kabuk betikleri için birim testlerini yazmak gibidir. Yine de, bir derlemeniz var, sadece Sustem.out.println() 'in saçmalık olduğunu söylemez. Bu hataları yakalamak için bir derleyici seçeneği mevcut olmalıdır. Her komutta meta programlama ve DSL kodu yoktur.
Bence bu noktaya göre, zamanınızı kontrol etmek için fazla zamanınız yok, bu yüzden kodunuzun doğru olduğunu doğrulamak için daha fazla test yazmak isteyebilirsiniz. – Paul
Tam olarak. Ek bir bonus olarak sadece aptalca tip hatalardan daha fazlasını yakalayacaksınız! – omnisis