Düşünen
- Iş geçmişi
- topluluk desteği
- kullanılabilir uzantılar
- varsayılan özellik kümesi
- kullanım kolaylığı
- ve güvenilirlik
neden birini diğerine tercih ediyorsun?
Düşünen
neden birini diğerine tercih ediyorsun?
Yanıtlar:
Bilgi parçamı eklemeye çalışacağım.
Anladığım kadarıyla, Google Closure sadece başka bir JS kütüphanesi değil, aynı zamanda JS kodunuzu optimize etmenizi sağlayacak bir dizi araçtır. JQuery ile çalışmak size iyi araçlar ve hafif bir kütüphane sağlar, ancak kendi kodunuzu küçültmez. Kapatma derleyici olacak. Kapatma denetçisi bazen küçültülmüş kod orijinal farklı bir davranış vardır ve ayıklamak için bir ağrı olduğu gibi, aynı zamanda, faydalı olabilir. Günümüzde hem geliştiricilerin en iyi arkadaşları olan Firebug ve destek birimi testleri ile entegre oluyor .
Herhangi bir yeni kütüphane VS iyi kurulmuş bir kitap olarak, jQuery sahip uzantıları ve öğretici ton kullanılabilirliği eksikliği sanırım. Bununla birlikte, Google tarafından zorlanmak, destek ve güvenilirliğin hem oldukça iyi olmasını sağlayacaktır. Mevcut belgeler ve öğreticiler de gerçekten iyi görünüyor.
Yine de Closure'un özellikleri iyi görünüyor ve modüler mimarisi de umut verici. Sanırım Google onu uzun zamandır dahili olarak kullanıyor, yani tüm temel özelliklerin (ve daha fazlasının) ve muhtemelen çok optimize edilmiş ve ölçeklenebilir bir şekilde uygulanmasını bekleyebilirsiniz. JavaScript'in STL'si olarak sunmaya çalışıyorlar, bu yüzden cilalamalılardı.
Özelliklere daha yakından baktıktan sonra, bu, jQuery olarak mevcut kütüphanelere kıyasla web uygulamaları geliştirme için bir adım olabilir. Google'daki dahili gelişmelere fayda sağladığını, ancak çevrimiçi durumu ( goog.events.OnlineHandler'a bakın ), AJAX isteklerinin ve JS işlemlerinin tarayıcı geçmişine kolay entegrasyonunu ( goog.History'ye bakın ) veya harika widget'ların lejyonları gibi şeylere fayda sağladığını tahmin ediyor. sağlarlar (bkz. goog.ui paketi ) daha da harika webappsler inşa etmemize yardımcı olabilir;)!
Java ile entegre olan şablon özellikleri ile birlikte gelir (kim GWT dedi ?), Bu da Kapatma için başka bir artı olabilir.
Son olarak, kullanımı oldukça basit görünüyor. Sözdizimi, kısa $ jQuery işlevinden biraz daha ayrıntılı olabilir, ancak IDE'ler ve otomatik tamamlama ile bu gerçek bir sorun değildir. Dahası, Google'dan gelen Eclipse gibi IDE'lerde iyi bir entegrasyon beklediğimizi söyleyebilirim.
EDIT: istendiği gibi, GWT referansı hakkında birkaç kelime söyleyeyim. Google Web Toolkit, AJAX etkin web arayüzleri oluşturmaya izin veren ve gerekli JavaScript kodunu üreten (ve optimize eden) bir Java kütüphanesidir. Google Closure, hem istemci hem de sunucu tarafı (JavaScript ve Java kullanarak) kullanılabilecek Şablonlar oluşturmaya izin verdiğinden, tahminim yakında bunları birlikte kullanmak mümkün olacaktır (zaten değilse).
API'ye kısa bakışımda jQuery ve Closure arasındaki farkları çarpıcı buluyorum.
jQuery temel olarak çapraz işlemleri bir çok sık işlem yapmak için basitleştirilmiş bir yoludur.
Kapatma, <canvas>
örneğin etiketi kullanmak için tarayıcılar arası bir yol sağladıkları ve yeni etkinlikler ekledikleri için çok yeni bir çerçevedir .
Bu, genellikle javascript ile yaptığımız şeyleri ekliyor, insanların yapmak istediği birçok işlemi alıyor ve bunları API'ye koyuyorlar.
Örneğin, çevrimiçi durumun değişip değişmediğini anlatacak bir olayları var. Böylece sistemin çevrimiçi olup olmadığını anlayabilirsiniz.
Javascript ile yapılabilecekleri genişlettikleri gerçeğiyle devam eden Google Gears gibi araçları kullanan javascript işlevlerine sahiptirler.
Tüm değişiklikleri sindirmek bana birkaç gün sürecek, ancak bunun geliştirilebilecek web uygulamaları üzerinde büyük bir etkisi olabileceğini görebiliyorum.
Closure Library'nin en büyük avantajı Closure Compiler için tasarlanmış olmasıdır. Bu, JavaScript geliştirme için tamamen yeni olasılıklar açar ...
Derleyicinin birkaç harika özelliği vardır:
Ayrıntılar için: http://blog.klokantech.com/2010/12/closure-compiler-for-openlayers-3x.html
Düzenleme : Google Closure ile ilgili bazı soruları daha iyi yanıtlayabilen bu youtube videosuna göz atın .
Google'ın kapanmasıyla ilgili muhtemelen en iyi bilgi kaynakları, proje tartışma grubu , wiki, doc sayfaları, demolar ve henüz safari kitapları sitesinden edinilebilen Michael Bolin tarafından tamamlanmamış bir kitap .
hemen söyleyebileceğim bir şey var - closure
vs için daha dik bir öğrenme eğrisi var, jQuery
ancak kütüphanenin genişliği, açık organizasyonu ve derleyici ve şablon aracıyla birlikte kullanmanın yararı nedeniyle buna değebilir.
closure
Michael Bolin'e göre bu açıdan kütüphane daha dojo
çok jQuery
ve bazı kavramlardan ödünç alındı dojo
.
google closure derleyici JSDoc
aynı anda (programcı tarafından doğru bir şekilde oluşturulduysa) dokümantasyon sağlayan ve derleme zamanında birçok hatayı yakalamayı sağlayan dokümantasyon sistemini kullanır .
işlev adları jQuery
's'den daha ayrıntılı olsa da , derleyici kodu daraltır (çeşitli optimizasyon taktikleri kullanarak) ve tür denetimi kod hatalarını ayıklamak için önemli bir zaman kazandıracaktır, bu nedenle daha uzun adlarda zaman yazmak büyük olasılıkla bir sorun değildir. Aynı zamanda daha uzun isimler okunabilirlik sağlar.
kütüphane, tuhaflıklar modunda çalışan tarayıcıları destekler, böylece komut dosyaları "ilginç" html kullanan diğer siteler tarafından gömülebilir
kütüphane, soy
belgelerin içerikle doldurulmasını kolaylaştıran bir javascript şablonlama sistemi ile çalışır (ancak bunlara bağlı değildir) .
jQuery
google gibi closure
, kütüphanenin özel bir bileşenini kullanarak dize tabanlı sorgular ile dom yapısında gezinmeye izin verir.
closure
kütüphane, sınırlandırılmış ad alanlarına daha Java
çok benzer şekilde bağlıdır - çok güçlü bir kurumsal özellik.
bu tür ad alanlarının kullanılması derlenmemiş kodda ek yüke neden olur, ancak derlenmiş kodda bu değişkenler kısa değişken adlarıyla değiştirilir.
like jQuery google closure allows traversing dom structure with the string-based queries using a dedicated component of the library.
beni bununla ilgili bazı belgelere bağlayabilir misiniz?
goog.dom.DomHelper
, ama şahsen jQuery eşdeğer bir sorgu işlevi görmüyorum. @Evgeny: Bize daha fazla ayrıntı verebilir misiniz?
Google Closure hakkında bu soruyu insideRIA'da yanıtlayan oldukça ayrıntılı bir makale yayınladım .
... Kapanış rulez! ^ _ ^
Belki jQuery almıyorum, ama orada gerçek bir UI widget koleksiyonu görmedim (eklentiler var, evet, ama ne kadar iyi test edildiğini asla bilemezsiniz ve genellikle net bir kazanan ve / veya eklenti eksikliği yoktur dokümantasyon).
Kapatma, diğer şeylerin yanı sıra , gmail'de kullanılan imageless düğmeleri de dahil olmak üzere bir widget koleksiyonuna (demolar sekmesine bakın) sahiptir .
Daha genel olarak, sürümün bir parçası olarak uygulanan daha fazla işlevselliğe sahiptir. Büyük bir şey olmayabilir, ama ajax geçmişi modülü veya otomatik tamamlama kadar basit bir şey ararken jQuery eklentilerinin denizi rahatsız oluyor.
Genel olarak büyük bir kütüphane + araç seti ve sadece neyin mevcut olduğunu bilmek için onunla tanışacağım.
Google'ın açık kaynak topluluğuna yaptığı katkıların çoğunu takdir ediyorum ve eminim bazı harika şeyler var ama genel olarak Closure'u hantal, aşırı ve yetersiz buluyorum. Her şeyi Java'ya dönüştürmeniz gerekiyorsa, bunun düpedüz spiffy olduğunu düşünüyorum.
Düzenle:
Yeterince adil. Gerçekten karşılaştırmadım. Kapanış, muhtemelen bir yerde bulunmasını isteyebileceğiniz her araçla dev bir depo gibidir. .NET veya büyük bir Java kütüphanesi gibi. İhtiyacınız olanı bulduğunuzda, son derece spesifik işler yapan son derece spesifik şeyler bulabilirsiniz. Ve sonra üretim için tüm rüzgarı kaldırabilirsiniz.
Öte yandan JQuery, daha kolay değiştirilebilen bir sonik tornavida.
Google Kapanış Kütüphanesi, JavaScript'inizi derlemenize ve optimize etmenize olanak tanır. JQuery gibi bir kütüphane değil. jQuery, kendi javascriptinizi daha hızlı yazmanıza izin veren işlevler sağlayan bir şeydir.
Google Closure, İnternet üzerinden daha hızlı bir dağıtım sağlamak için kendi javascript kodunuzu küçültmenize yardımcı olur.
Uzun lafın kısası, Google Closure bir araçtır, jQuery ise Prototip'e benzer bir kütüphanedir.