2010-09-18 15 views
27

Net, Velocity ve FreeMarker arasındaki karşılaştırmalar ile dolu görünüyor ve makul olarak eşdeğer gibi görünüyor. Ama StringTemplate ve FreeMarker arasında neredeyse hiç karşılaştırma yok gibi görünüyor!StringTemplate ve FreeMarker arasındaki temel farklar nelerdir?

Yani, StringTemplate ve FreeMarker arasındaki temel farklar nelerdir?

Onlar için kullanımım sadece HTML sayfaları oluşturmak olacaktır. İkisinden de FreeMarker'ın daha uygun ve daha yetenekli olmasını beklerdim, çünkü bu daha yaygın olana benziyor - ama hızlı bir bakışla StringTemplate'in daha uygun özelliklere sahip olduğu görülüyor!

Her ikisini de kullanan birinin yorum yapmak için zamana sahip olması harika olurdu - gerçek özellikler için, belgeleri yalnızca yan yana okuyabiliyorum, ancak başlaması gereken bir şey istiyorum.

+0

Hızlı bir açıklama! Ben açık farklar ile ilgilenmiyorum - StringTemplate fonksiyonel ve hiçbir döngüler vb vardır ve FreeMarker neredeyse tam bir programlama dili! Kullanım sırasında ortaya çıkan somut özellik farklılıkları ile ilgileniyorum - bir şey bir diğeriyle kolayca mümkün ama gerçekten çok zor. – Nakedible

cevap

29

Ben JSP'nin "kod şablonunda" modelinin hasta aldıktan sonra jGuru inşa etmek ST tasarlanmış gelen faydalarını anlatıyor Terence Parr dan a paper var. Hız ve arkadaşlar (yani, düşündüğüm diğer her motor) size ihtiyacınız olandan daha fazla güç verir. Temel olarak jGuru.com (kağıtta açıklandığı gibi) oluşturmak için dört özellik kullandım. Daha fazla özellik gereksizdir ve modelinizi şablona dahil etmenize neden olur. Bir kerelik bir prototip oluşturuyorsanız, sorun yok ve herhangi bir motor iyi. Bu durumda, bakımla ilgilenmediğiniz için şablonlardaki kod tamam.

İnsanların görmezden geldiği başka bir şey: bir grafik tasarımcısının şablonlarda kodu nasıl okuyabileceği? Yapamazlar. Peki, o zaman şablonlarda nasıl çalışırlar? Bazı elemanların sırasını değiştirmek bile modelinizi bozabilir. Kodlayıcıya benzeyen bir site istemediğiniz sürece ticari ortamda çalışmak için ayırmaya gerçekten ihtiyacınız var;)

+3

Yorum yapmak için ST hakkında yeterli bilginiz yok! ;-) Ancak cidden olsa da, model görünümü ayrılığının yanında * diğer * özelliklerle daha çok ilgileniyordum. ST'de mevcut olan ancak FM'de olmayan şablon kalıtımı gibi şeyler de aynı şekilde değil. FreeMarker, Velocity ve hatta XSLT'yi karşılaştırırken hiç kimsenin StringTemplate'i dikkate almaması çok garip görünüyor. – Nakedible

+0

hiya. evet, kalıtım şablonları çoğaltmaktan kaçınmak çok önemlidir. Bunu yaygın olarak ANTLR kod nesnesinde kullanıyorum. Ayrıştırıcıları oluşturmak için temel, yani Java şablonları var. Ağaç istiyorsan, ağaç yapım kodunu enjekte etmem ve tüm Java grubunu çoğaltmam gerek. -debug'ı açarsanız, hata ayıklama olay tetikleyicilerini eklemem gerekir. Bazen ikisi de! Kalıtım, basit Java çıktısı ile Java çıktısı arasındaki hata ayıklama/ağaç eylemleri arasındaki farkı açıklamanıza izin verir. –

+3

Miras, ST'yi cazip yapan şey! Aksi halde, MVC değişikliklerine direnemeyen ve çok basit bir VTL'yi anlayamayan efsanevi grafik tasarımcılarımız olmadığı için aşırı sıkı mvc'i sevmiyorum. –

6

Temel fark, StringTemplate'in model görünümü ayırmalarını kesinlikle zorlaması ve şablonlara mantığı koyamazsınız ve FreeMarker, şablonlarda mantığa tam olarak yer vermenizi sağlar. Bu en azından başlangıçta bunu daha da zorlaştırır. kullanın ama daha ölçeklenebilir. Örneğin, kod oluşturuyorsanız ve başka bir dil için başka bir bağlantı noktası oluşturan şablonlarda mantığınız yoksa, her şablonda mantığı çoğaltmanız gerekmediğinden daha az sıkıcıdır.

model görüntü ayırma

+1

Teşekkürler, ama soru hakkındaki açıklamamı okudum - cevap gerçekten bilmediğim bir şey söylemedi. – Nakedible

+0

kağıt link bozuldu –