Sproutcore kullanan var mı?


19

Herkes bir web uygulaması için Sproutcore kullandı mı? Eğer öyleyse, bana deneyiminizin bir tanımını verebilir misiniz? Şu anda bunu düşünüyorum, ancak birkaç endişem var. İlk olarak, belgeler kötü / eksik ve korkarım şeyleri anlamak veya kaynak kodunu kazmak için çok zaman harcayacağım. Ayrıca, nispeten yeni ve önemli değişikliklere uğrayabilecek bir projeyi kullanmaktan biraz tereddüt ediyorum.

Sproutcore'da gelişen insanlardan gelen düşünceler takdir edilmektedir!

EDIT / PS: Evet, bu gönderiyi gördüm: /programming/370598/sproutcore-and-cappuccino . Ancak Sproutcore'un kendisini önemli bir proje için kullanan birinden biraz daha uzun bir açıklama ile ilgileniyorum.


2
Soruyu cevaplayamıyorum, ancak Apple'ın kendi .Mac hizmetleri için SproutCore kullandığını söyleyebilirim. Yani en azından bunun için yeterince olgun.
Chuck

Evet - ilgimi çeken bu. Ama ne az denedim, belgeleri yeterince kötü (özellikle, örneğin, SC.DataSource ve SC.Store için) sorun değer olup olmadığını emin değilim.

Yanıtlar:


20

Yıldan daha fazla sproutcore kullanıyoruz.

İlk olarak mükemmel ama performans sorunları olan KVO, Büyük veri kümeleri vb. Benim için, SproutCore bana javascript kodlamanın uygun yolunu öğretti. Javascript ve SproutCore'u aynı anda öğreniyordum.

Temmuz ayı civarında bir yerde SproutCore 1.0 öncesi alfa yayınladılar. API önemli ölçüde değiştirildi, bu yüzden uygulamamızı daha yeni sürüme dönüştürmek kendi başına bir projeydi. Ve o zaman dokümantasyon sıfırdı.

Şimdi işler değişti, belgeler ve çok güzel wiki var. Her gün yeni eğitimler ve belgeler eklendi.

SproutCore'u kullanmayı / değerlendirmeyi düşünüyorsanız doğru zaman. Ve her gün SproutCore içerdiği yetenek ve güçle beni şaşırtıyor. Hala her gün azaltan çok sayıda pürüzlü kenar var.

Bazı Kaynaklar:

SproutCore Wiki

API Dokümanları

Veri deposu API'sı için son eklenen (çok önemli bir kısımdır)


17

Amiral gemisi uygulaması yeniden tasarımı için SC kullanan bir şirketle çalıştım. İşte düşüncelerim:

  1. Ben gerçekten MVC gibi bir SC uygulamasının düzeni. Diğer JS çerçevelerinin eksik olduğunu düşündüğüm bir şey. Onların bağlayıcı çerçeve güncelleme görünümleri bir çırpıda yapar.

  2. En iyi belgeler kodun kendisindeydi.

  3. Daha iyi dokümantasyon ihtiyacı / daha fazla örnek. Onların örnekleri, başlamanız için yeterlidir, ancak gelişmiş şeyler çoğu kullanıcıyı zorlar.

  4. Veri erişim katmanı çok karmaşık. Bu büyük bir gizem. İnsanların düzgün bir şekilde kullanabilmesi için belgeleri ortaya koymaları veya yolu açmaları için daha fazla örnek vermeleri gerekiyor. Öte yandan, gerçekten güçlü bir neredeyse ORM çerçevesi gibi görünüyor.

  5. Testi strese sokmalarını seviyorum.

  6. Bir ızgara eksikliği gerçek bir sürüklemedir. Çoğu uygulama olmasa da çoğu ızgaraya ihtiyaç duyar. Bununla birlikte, SC, widget (bileşenler) listesi EXTJS'nin bir çerçevesi değil, tam özellikli bir MVC çerçevesidir.

  7. Kodun çoğu aşırı karmaşık görünüyordu. Bir yöntem 10-30 satırdan daha uzun olduğunda, okunabilirliği artırmak için gerçekten parçalanması gerekir.

  8. Belki de en büyük husus şudur: Eğer bir proje üzerinde çalışıyorsanız ve SC'yi düşünüyorsanız, üzerinde çalışmak için yetkili geliştiricileri bulmakta gerçekten zorlanacaksınız. Bu nedenle, küçük bir kişisel proje için iyi olabilir, ancak bakım gerektiren büyük bir proje ile risk alıyorsunuz.

  9. IRC desteği olağanüstüydü. O kanaldaki adamlar gerçekten yardımsever.


1
Veri erişim katmanı çok karmaşık. Bu büyük bir gizem. - aslında. Ayrıca, hata ayıklama bir görev cehennemdir.
c69

@ c69 - Bunu yazdığımda buna inandım. Ama o zamandan beri veri deposunun oldukça güçlü ve anlaşılması çok zor olmadığı sonucuna vardım. Sadece onunla bir şeyler yapmaya başlamanız gerekiyor
hvgotcodes

belki mevcut sürümlerde, bu doğru - ama eski SC ve onun sadece delilik ile çalışmak .. (ve göründüğü gibi güncellenemez değil)
c69

@ c69, belirli sorunlarınız varsa, bir soru sorun ve belki yardımcı olabilirim
hvgotcodes

15

Neler olup bittiğini anlamak için Google gruplarındaki sproutcore grup yayınlarına göz atmanız yeterli.

Birkaç hafta önce birisi dokümanlar hakkında, bir acemi olmaktan ve temelde sahip olduğu şeyden şikayet etti: "Eğer hoşlanmıyorsanız, neden dokümanları oluşturmanıza yardımcı olmuyorsunuz" ... iyi duh !!

Başlangıcından beri böyle sorunlar göreceksiniz. Ayrıca birkaç hafta önce birisi gruba Sproutcore kullanarak nasıl köprü oluşturacağını sordu. Demek istediğim, LOL, görünüşe göre basit bir köprü oluşturmak saatler sürüyor.

Sproutcore, çerçevesini kimin vahşi doğada kullandığını tanıtmaz: genellikle iyi bir işaret değildir.

Apple'ın kullandığı iddia edilir (sproutcore tarafından değil), ancak yakından bakarsanız Apple'ın kendi kod tabanına sahip olduğunu görürsünüz.

Şahsen sproutcore'un hatalarla dolu olduğunu, sade bir masa görüntüsünün rahatsız edici olduğunu, eksik veya çalışmayan örneklerin bulunmadığını ve belgelemenin olmaması ve hatta tam TESTS'in bulunmaması üzerine inşa etmek için iyi bir temel değil.


5
Apple'ın kullandığını ve Apple'ın kendisinden olduğunu iddia ettim. MobileMe SproutCore ile yazılmıştır. appleinsider.com/articles/08/06/16/…
Chuck

Apple'ın kendi kod tabanı var, ancak düzenli olarak halka açık repo ile birleşiyorlar.

Ayrıca, köprü sorununa yanıt olarak, SC zengin web uygulamaları oluşturmak için yapılır. Bu, normalde DOM'ye kendiniz dokunmamanız gerektiği anlamına gelir. Sonuç olarak, kendi köprülerinizi yapmayı amaçlamıyorsunuz.

7

SproutCore kullanıyorum ve sadece harika. Biz gelen anahtarlamalı jQuery için SproutCore jQuery araçlardan küçük bir set sunuyor ve SproutCore güzel yüksek seviyeli mimari sunuyor beri,.

Bu Javascript kütüphanelerini aşağıdaki sırayla değerlendirdik:

  1. Prototip Tamam hissettim ama jQuery vb daha fazla destek ve kitap vardır,
  2. jQuery , ki bu harika hissettirdi, ancak güzel bir üst düzey mimari için herhangi bir desteği yoktu ve bir tane inşa etmeye başladık, ama çok zaman aldı.
  3. Güzel bir üst düzey mimariye sahip olan ancak yol haritası ve dokümantasyondan yoksun olan Cappuccino
  4. SproutCore THE SOLUTION, çünkü bu güzel bir üst düzey mimari sunuyor ve hoş bir dahili yapı sistemine sahip

En iyi listemiz:

  1. SproutCore KAZANAN
  2. jQuery iyi bir araç setidir
  3. Cappuccino umut verici görünüyor ancak henüz orada değil
  4. Prototip tamam, ama bence jQuery kadar iyi değil

Tabii ki daha fazla araç kiti var, ama bunlar değerlendirdiklerimiz. Sonuç olarak, Javrocript kullanarak bir masaüstü sınıfı uygulamaları inşa eden herkese SproutCore tavsiye ederim. Tarih seçiciler vb.Gibi basit bir Javascript'e ihtiyacınız varsa, jQuery'yi tavsiye ederim.

Sadece bir ipucu daha. Bu cevabı yazarken SproutCore 1.0 en son kararlı versiyon. Ne yazık ki oldukça eski ve SproutCore'un Github sayfasından bulabileceğiniz en son sürümü kullanıyoruz . Kesinlikle tavsiye.


4

SproutCore'a girmeye çalışıyorsanız SproutTweets örnek uygulamasına girmenizi tavsiye ederim. Daha güçlü yapıların çoğu (durumlar, dinamik olarak yüklenen çerçeveler, veri kaynağının yararlı bir örneği) orada.

SproutTweets uygulamasını github'da http://github.com/sproutit/sproutcore-samples/tree/master/apps/sproutweets/ adresinde bulabilirsiniz.

  • Ayrıca, web denetçisi ile Safari'de örnek çalıştırmanın daha yararlı bir dizi hata mesajı verdiğini unutmayın.
  • Sc-sunucusu, yerel bir web sunucusunda çalışan kendi REST veri kaynağınıza erişmek için kullanılabilecek bir proxy içerir. Bunun nasıl çalıştığını görmek için yukarıdaki sprouttweets örnek uygulamasındaki buildfile'a bakın.
  • Sc-serve içindeki vekil oldukça sınırlıdır. Veri katmanı isteklerinizle ilgili sorunlarınız sc-build'i veriyorsa, proxy yerine yerel web sunucunuza dağıtım yapmayı deneyin. 401 kimlik doğrulama döngülerimiz ve büyük veri kümesi yanıtlarının akışıyla ilgili sorunlar bulduk (yığın kodlama).

SproutCore'u bir üretim uygulamasında kullanma niyetiniz olmasa bile, javascript uygulama programlamasına, özellikle KVO ve mixins (yönleri) şeyler için güçlü bir yaklaşım görmek için daha fazla araştırmanız gerekir. Düşünmek ve öğrenmek için çok büyük mimari.

Son nokta - IRC kanalı diğer bilgi kaynaklarından çok daha yararlı olabilir, ikincisi google grup tartışmalarında derin dalışlardan sonra.


2

Geçmişte SproutCore kullanmıştım. Selenium RC adlı aracı kullanarak otomatik web testi komut dosyaları geliştirmek için bir projeye atandım. Selenyum RC, normal HTML kimliklerini ve sınıflarını hedeflemek için oluşturulmuştur, ancak SproutCore, öğe kimliklerini sahte rasgele olacak şekilde öğe kimliklerini derler, bu yüzden görünüm ağacından öğe kimliklerini balık tutabilmek için SproutCore için API'yi bulmak zorunda kaldım.

SproutCore, derleyicilere yakın bir benzetmeye sahiptir. Web sayfanız için oluştururken içe aktardığınız çok fazla öğeniz varsa, uygulamanızı jQuery ile oluşturacaksanız kimliklerde ad alanı çarpışması olasılığı vardır. Web sayfanızı jQuery ile oluştururken, HTML öğelerinin tüm kimlikleri geneldir. Derlenmiş veya yorumlanmış bir dilde olduğu gibi yerel kapsam diye bir şey yoktur.

SproutCore, HTML içeriğini sizin için yönetir. Görünümler javascript kullanılarak oluşturulur ve daha sonra derlenir. SproutCore öğreticisinden geçerseniz (ve SproutCore'un bir iş başvurusu için kaçınmaya çalışmanız için belgelerde eksik olduğunu kabul ediyorsanız), bitmiş projenizin "sc - ###" kimlik öğelerine sahip olduğunu göreceksiniz. Ad alanı çarpışmaları, daha hızlı çalışma potansiyeli vererek web sitesinde çözülür.

Ancak, büyük endişeler var. Belgeler, insanların neden kullanması gerektiğini açıklayan yeterince iyi bir iş yapmıyor. Proje açık kaynaklıdır, ancak görünümlerin nasıl oluşturulduğuna ilişkin alt düzey javascript'i anlamak için yolunuzu kazmak acı verici hale gelir. Javascript işlevsel bir dildir, ancak dinamik işlevsel dillerde yanlış bir şey buluyorum. Çok fazla esneklik var. Scala'yı takıyorum.

Son sayı. SproutCore yavaş olabilir. Ama bu bir bedel

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.