Bazı cevaplar aldığınızı görüyorum, ancak platformdaki çeşitli vali limitlerini aşmak için ne kadar zamanın boşa harcandığını tekrarlamak isterim. Platformu belirli seviyelerde ne kadar sevsem de, genel bir uygulama geliştirme platformu olarak kesinlikle aleyhinde, şiddetle tavsiye ederim. İstediğiniz buysa, süper yapılandırılabilir ve genişletilebilir bir CRM uygulaması olarak harika. Pazarlamaları genel bir geliştirme platformu olarak Force.com fikrini öne çıkarmada olağanüstü olsa da, henüz uzaktan yakın bile değil.
Kararlı bir platforma sahip olmanın ve büyük performans ve kararlılık sorunlarından kaçınmanın verimliliği, insanların bahsettiği sınırlar etrafında kodlama yapmaya çalışırken kolayca boşa harcanır. Platformun o kadar çok sınırı var ki, tamamen çıldırtıcı hale geliyor. Bu sınırlar, çok sayıda kullanıcınız olduğunda ulaşacağınız üst düzey sınırlar değildir, neredeyse hemen onlara ulaşırsınız.
Genellikle bunların etrafından dolaşmak için teknikler olsa da, gerçek uygulamanızın iş mantığını geliştirmeye çalışırken bunlardan kaçınmak için stratejiler bulmak çok zordur.
Geliştiricinin ortamın ne kadar dostane olmadığı konusunda size basit bir fikir vermek için, yukarıda bahsedilen "hata ayıklama ortamının olmaması" nı ele alın. Bundan daha kötü. Hata ayıklama günlüklerinde sunucuya yapılan en son isteklerin yalnızca 20'sini görebilirsiniz. Bu nedenle, uygulamanın içinde geliştirirken "Yeni" bir hata ayıklama isteği oluşturmanız, adınızı seçmeniz, "Kaydet" e basmanız, uygulamanıza geri dönmeniz, sayfayı yenilemeniz, hata ayıklama sekmenize geri dönmeniz, bulmaya çalışmanız gerekir. hata ayıklama günlüğünüzü barındıracak istek, aradığınız metni aramak için "bul" düğmesine basın. Bir hata ayıklama çıktısına bakmak on tıklama gibidir. Önemsiz görünse de, bu sadece geliştiricinin deneyimine ne kadar az özen gösterildiğinin ve dikkate alındığının bir örneğidir.
Geliştirme platformuyla ilgili her şey sonradan aşılanmıştır. Olduğu şey için dikkate değer, ancak çoğunlukla toplam PITA. Tam olarak ne yaptığınızı bilmiyorsanız (sertifikalı olduğunuzda ve Apex hakkında çok samimi bir anlayışa sahip olduğunuzda olduğu gibi), sizi başka bir ortamda yapacağınız sürenin 10-20 katına çıkarabilir. Eğer başarılı olabilirseniz, gülünç derecede basit gibi görünen bir şey.
Vali sınırları gerçekten o kadar kötü. Çeşitli sınırların bir kombinasyonuna sahipsiniz (veritabanı sorguları, döndürülen satırlar, "komut dosyası ifadeleri", gelecekteki çağrılar, belirtme çizgileri, vb.) Ve bunlardan kaçınmak için tam olarak ne yaptığınızı bilmeniz gerekir . Örneğin, bir nesnede hesaplanmış bir toplama "formül" alanınız varsa ve bir alt nesnede bir tetikleyiciniz varsa, üst nesne tetikleyicilerini çalıştırır ve bunları sınırlarınıza göre sayar. Bunun gibi şeyler, acı dolu deneme ve başarısızlık sürecinden geçene kadar açık değildir.
Bir sınırı aşmak için bir şeyi deneyecek ve hiç bitmeyen bir "limiti aşma" oyununda diğerine ulaşacaksınız. Bu süreçte tüm uygulamanızı ve yaklaşımınızı büyük ölçüde yeniden tasarlamanız ve tüm test kodunuzu yeniden yazmanız gerekecektir. Sen gerekir aslında çok iyi bir şeydir, ancak diğer sınırlarının tüm kombine üretim, içine dağıtmak için% 75 test kodu kapsama sahip, bu külfetli çok var. Aslında, normal kullanıcı senaryolarında ortaya çıkmayan test kodunuzu yazma sınırlarına ulaşacaksınız, ancak bu, kapsama ulaşmanızı engelleyecektir.
Bu, diğer birçok konudan bahsetmek değildir. Ambalaj beklediğiniz gibi değil. Kuruluşun yöneticisi tarafında önemli bir kullanıcı müdahalesi ve yapılandırması olmadan uygulamanızı paketleyip kullanıcılara sunamazsınız. AppExchange tam bir şaka ve hatta sadece uygulamanızı listelemek için 5K şarj etmeye başladılar. Veri yükleyiciyle içe aktarma, özellikle de herhangi bir tetikleyiciniz varsa, berbattır. Tüm verilerinizi, tek bir adımda (örneğin bir geliştirici kuruluş) başka bir kuruluşa kolayca aktarılabilecek şekilde ilişkilerinizi içeren bir adımda dışa aktaramazsınız. Bir korumalı alanı üretimden itibaren ayda bir kez yenileyebilirsiniz, istisnasız ve bu özelliğin kilidini açmak için hesap yöneticinizi aramadıysanız varsayılan olarak verilerinizi yenilemeye dahil edemezsiniz. Yapabilirsin' t Özel nesnelerdeki verileri toplu silme. Paket adlarınızı değiştiremezsiniz. Bazı şeyler sayısız sürebilirbir uygulamayı dağıtmadan önce veri yedeklemesi gibi, talep ettikten sonra tamamlanması gereken günler , yol boyunca ilerleme raporu olmadan ve dışa aktarmanın tam olarak ne zaman gerçekleştiğine dair pek bir anlam ifade etmiyor. Veriler arasında ilişkiler varsa verilerin eşzamanlılık sorunları olduğu göz önüne alındığında, çok sayıda nesneyi tek bir adımda dışa aktarabilen bir "işlem" gibi bir şeyin olmaması nedeniyle ciddi veri bütünlüğü sorunları vardır. Muhtemelen bazılarını kolaylaştırmak için bazı ticari araçlar vardır, ancak bunlar çok büyük bir bütçeye sahip olmayan normal geliştiricilere ulaşılamaz.
Diğer insanların burada söylediği diğer her şey doğrudur. Bir dosyayı kaydetmek bazen beş saniye ile bir dakika arasında sürebilir.
Bu kadar olumsuz olmak istemiyorum çünkü platform bazı yönlerden çok havalı ve çok kiracılı bir ortamda başka hiç kimsenin yapmadığı şeyler yapmaya çalışıyorlar. Bu çok yenilikçi bir ortam ve bazı seviyelerde güçlü (aslında VisualForce'u çok seviyorum), ancak bir veya iki yıl daha verin. VMware ile ortaklık yapıyorlar, belki de bu, geliştiricilere içinde çalışacakları bir hapishane hücresinden ziyade bir oyun parkı sağlamaya yol açacaktır.