Kahve yazısı oldukça havalı görünüyor. Kimse kullandı mı? Artıları ve Eksileri nelerdir?
Kahve yazısı oldukça havalı görünüyor. Kimse kullandı mı? Artıları ve Eksileri nelerdir?
Yanıtlar:
Temelde belirli veri türlerine göz atmak için bir uygulama olan halka açık olmayan bir web sitesi olan ürünümüzde CoffeeScript kullanmaya başladık. CoffeeScript'i bir komut satırı derleyicisi olarak kullanıyoruz (sonunda yapmak istediğimiz sunucuda değil).
Önemlisi, istediğimiz zaman geri dönebiliriz. Coffeeescript derleyicimiz sadece okunabilir javascript üretiyor, bu yüzden herhangi biri fikrini değiştirir veya bir şeyi çözemezse, o zaman kahvenin ürettiği javascript'i kullanmaya devam edebilir ve kodlamaya devam edebiliriz.
this
veya yanlış türü bir işleve göndermediniz mi? Henüz "hata ayıklamak" zorunda kalmadıysanız, ilginç bir şey yaptığınızı sanmıyorum.
-m
ve iyisiniz.
BusyConf'taki tüm javascript için kahve komut dosyası kullanıyoruz . BusyConf'un büyük bir kısmı, çevrimdışı mod desteği de dahil olmak üzere tarayıcılarda çalışan bir istemci tarafı uygulamasıdır.
Tüm kahve kodumuz tamamen test edilmiştir. Testler kahve kağıdına yazılır ve Qunit çerçevesini kullanır (javascript ile yazılmıştır). Ayrıca Qunit çerçevesine testleri daha güzel hale getiren bir uzantı da yazdık. Qunit uzantısı yazılır CoffeeScript . Uygulamamız CoffeeScript ile yazılmış bir mobil versiyona sahiptir ve Sencha Touch çerçevesini (javascript ile yazılmıştır) kullanır.
Bundan çıkarılacak şey, uygulamanızda javascript bağımlılıklarını özgürce karıştırabilmenizdir, ancak yazdığınız tüm kodlar (uygulama kodunuz, testleriniz vb.) Bir kahve dosyası olabilir (ve olmalıdır!).
Neredeyse bir yıl sonra, bazı güncellemeler yayınlamaya değer:
CoffeeScript projelerinin en kesin listesi CoffeeScript wiki'nin In the Wild sayfasındadır.
CoffeeScript'in şimdiye kadarki üretim kullanımının çoğunun iPhone / Android uygulamaları oluşturmak için Appcelerator ile bağlantılı olduğunu söyleyebilirim. (The Changelog'dan Wynn Netherland, CoffeeScript'i "iOS, Android ve WebOS mobil geliştirme için gizli silahım" olarak tanımlayarak kitabımı bulanıklaştırdı), ancak üretim Rails uygulamalarında çok daha fazla kullanım olacak ve umarım başka yerlerde- Önümüzdeki aylarda.
Coffeescript, iPad için Ars Technica okuyucusunda kullanılmıştır http://arstechnica.com/apple/news/2010/11/introducing-the-ars-technica-reader-for-ipad.ars
Bugünlerde Coffeescript'i gerçekten çok seviyorum. Esasen, HotelTonight iPhone uygulamasının tamamı içine yazılmıştır (JavaScript'te "yerel" uygulamalar yazmanıza izin veren Appcelerator Titanium kullanılarak - bunlar Phonegap gibi web uygulamaları değildir). Bu durumda Coffeescript kullanmayı seçtim çünkü büyük miktarda JS'yi organize etmeyi ve sürdürmeyi çok daha kolay hale getiriyor. Ayrıca Coffeescript (JavaScript'e kıyasla) ile kod yazmayı çok daha zevkli buluyorum. Ayrıca Rails uygulamamızda JS için Coffeescript kullanıyoruz, ancak bu, tüm telefon uygulamasına göre inanılmaz derecede küçük / az miktarda koddur.
Profesyoneller çoğunlukla daha hoş bir sözdizimi olmakla ilgilidir, ancak aynı zamanda bir OO mekanizmasını standartlaştırması ve ardından bazı güzel eklemeler (liste anlayışları, bazı kapsam şeyleri vb.) Ekler.
Eksileri benim için neredeyse sıfır. Birincisi, hata ayıklamak için fazladan bir katman olmasıdır. Oluşturulan JS'ye (ÇOK okunabilir ve güzel) bakmanız ve ardından bunu Coffeescript kodunuzla eşleştirmeniz gerekecektir. Bizim için bu hiç sorun değil, YMMV oldu.
Sonunda, benim fikrim, onu bir üretim uygulamasında kullanma açısından sıfır risk var, bu yüzden bunun bir engelleyici olmasına izin vermeyin. O zaman gidip deneyin. Onunla bir miktar kod yazın, bunu JS'de yazdıklarınızla karşılaştırın, oluşturulan koda bakın ve bunu hata ayıklama ihtiyaçları için okuyabilme konusunda rahat olup olmadığınızı görün. Ayrıca, #coffeescript IRC'de takılın, insanlar orada iyi. Ve son olarak, uygulamanızla nasıl bütünleşeceğini görün, örneğin "oluşturma" süreciniz nedir (ör. Rails için, Barista'yı deneyin, bağımsız bir şey için, sadece birlikte verilen "kahve -w" yi kullanın, vb.).
Coffeescript gerçekten JS yazmayı kolaylaştırıyor. Daha temiz, daha verimli kod elde edersiniz.
Bununla birlikte, hala yalnızca vanilya JS'de yapabildiğiniz her şeyi yapabilirsiniz. Coffeescript'i yeterince kullandığınızda, (iyi) JS yazmak çok daha kolay hale gelir.
Yani JS'yi çok kullanmadıysanız, onun yerine kahve yazmayı öğrenmenizi öneririm. Daha iyi, daha temiz ve daha az hatalı kod alacaksınız. JS'de gerçekten akıcı iseniz, "gerçek" bir uygulamada kahve komutunu kullanmaya başlamak iyi bir fikir olmayabilir.
(Ayrıca, cafescript beni biraz rahatsız ediyor, çünkü daha çok "floofy" kodu teşvik ediyor. Bunun iyi bir şey mi yoksa kötü bir şey mi olduğunu bilmiyorum, ancak TMTOWTDI'nin aşırı bir durumu gibi görünüyor)
Bir derleyici olmasına rağmen, JavaScript'in dinamik doğası nedeniyle statik kontrol almadığınızı unutmayın. SSS'de yazıldığı gibi:
Statik Analiz
CoffeeScript, doğrudan kaynaktan kaynağa bir derleyici kullanır. Tip kontrolü yapılmaz ve bir değişkenin var olup olmadığını hesaplayamayız. Bu, diğer dillerin maliyetli çalışma zamanı kontrolleri olmadan yerel olarak geliştirebileceği özellikleri uygulayamayacağımız anlamına gelir. Sonuç olarak, bu tür bir analize dayanan herhangi bir özellik dikkate alınmayacaktır.
IDE desteği JavaScript'inkinden daha az olgun (Cloud9 sözdizimi vurgulama desteğine sahiptir, ancak Eclipse JSDT'nin yeniden düzenlemeleri ve daha fazlası vardır): /programming/4084167/ide-or-its-add-in-for-coffescript -programlama