2012-07-11 48 views
5

Şimdi kaldırmayı öğreniyorum. Ben şablonları hakkında okuduğumda onlar derleme zamanında typechecked olmayan bir çok şey var anlaşılmaktadır:Kaldırma ve güvenlik yazın

  • SiteMaps olmayan sayfalara
  • bakınız dışı olmasına snippet'lere başvurular olabilir
  • Şablonlar
  • Pasaj sevk yöntemleri bir tür herhangi bir bu sorunlar daha az şiddetli hale getirmek için alternatifler yani harici kod denetleyicisi veya seçenekler kütüphanede aynı şeyi sağlayacak ama var biz kolayca bir yazım hatası

yapabilirsiniz dize parametreleri alır güvenli yol? Ya da bu ilişkide daha katı olan başka bir web çerçevesi olabilir (başka bir dilde olabilir).

+0

Bu tür vakaların çoğu için regexp tabanlı doğrulayıcı yazmanın kolay olabileceğine inanıyorum. Ancak böyle bir şey olmasa da, kodunuzu test etmeyi deneyebilirsiniz - uygun testler tüm bu hataları yakalamalıdır. – Rogach

cevap

1

Tür denetimi, imzaların ve türler arasındaki ilişkilerin doğrulanmasını sağlayan, Scala veya Java gibi güçlü bir şekilde yazılmış dillerin bir derleme zamanı özelliğidir. Bu tür kontroller, Et tipi bir parametre beklendiğinde Banana tipi parametresini geçirmenizi veya Int türünde bir değişkene bir String atamanızı önler. Genellikle, Ruby veya Javascript gibi dinamik dillerde, bu mümkün değildir

Ne arıyorsunuz türü denetleyicisi değil. Programınızın sözdizimsel olarak doğru olduğunu değil, doğru şekilde davrandığını ve bunun için çözümün otomatik test olarak adlandırıldığını doğrulamak istemezsiniz.

Gayet sözdizimsel doğru kod yazmak mümkün, ama yanlış davrandığını: Eğer çevresinde başka bir yol düşünürsek

public boolean isTrue(boolean value){ 
     return !value; 
} 

, nasıl bir derleme zamanlı bir şablon doğruluğunu sınamak hangi bazı verilerle doldurulmalı mı?

<!-- importing a snippet depending on the value of a variable --> 
<import src="${snippetName}.xml"/> 

Yapamazsınız, çünkü tüm değişkenlerinizin derleme zamanında hiçbir değeri yoktur. Bu nedenle otomatik test önemlidir ve uygulamanız için test senaryoları derleme zamanı kontrolleri ile değiştirilemez.

+2

Benim için yazım denetimi derleme zamanında hataları bulmakla ilgilidir. Ve asansörde kontrol edilmeyen şeylerin çoğu teoride kontrol edilebilir. –

+0

Tipo tarama burada açıklanmaktadır: http://en.wikipedia.org/wiki/Type_system. Çalışma zamanı hatalarını derleme zamanı hatalarına dönüştürebildiğin statik kod analizinden bahsediyorsun. Ancak, bir statik kod analizörü yazmak için önemsizdir, deneyin ... – Edmondo1984

+2

Tip kontrolü, hafif bir statik analiz şeklidir. Konstantin'in ne istediği oldukça uygulanabilir. –