Ich sehe, Sie haben einige Antworten erhalten, aber ich möchte noch einmal wiederholen, wie viel Zeit damit verschwendet wird, die verschiedenen Governor-Limits auf der Plattform zu umgehen. So sehr ich die Plattform auf bestimmten Ebenen mag, würde ich sie als allgemeine Anwendungsentwicklungsplattform sehr stark, nachdrücklich und nachdrücklich ablehnen. Es eignet sich hervorragend als super konfigurierbare und erweiterbare CRM-Anwendung, wenn Sie dies wünschen. Während ihr Marketing außergewöhnlich ist, um die Idee von Force.com als allgemeine Entwicklungsplattform voranzutreiben, ist es noch nicht einmal annähernd nah.
Die Effizienz einer stabilen Plattform und die Vermeidung großer Leistungs- und Stabilitätsprobleme wird leicht verschwendet, wenn versucht wird, die Grenzen zu umgehen, auf die sich die Benutzer beziehen. Der Plattform sind so viele Grenzen gesetzt, dass sie völlig verrückt wird. Diese Limits sind keine High-End-Limits, die Sie erreichen, wenn Sie viele Benutzer haben. Sie werden sie fast sofort erreichen.
Während es normalerweise Techniken gibt, um sie zu umgehen, ist es sehr schwierig, Strategien zu finden, um sie zu vermeiden, während Sie gleichzeitig versuchen, die Geschäftslogik Ihrer tatsächlichen Anwendung zu entwickeln.
Um Ihnen einen einfachen Eindruck davon zu vermitteln, wie unentwickler die Umgebung für Entwickler ist, nehmen Sie die oben erwähnte "fehlende Debugging-Umgebung". Es ist schlimmer als das. In den Debug-Protokollen werden nur bis zu 20 der letzten Anforderungen an den Server angezeigt. Während Sie in der Anwendung entwickeln, müssen Sie eine "neue" Debug-Anforderung erstellen, Ihren Namen auswählen, auf "Speichern" klicken, zu Ihrer App zurückkehren, die Seite aktualisieren, auf die Registerkarte "Debug" zurückkehren und versuchen, sie zu finden Klicken Sie in der Anfrage, in der sich Ihr Debug-Protokoll befindet, auf "Suchen", um nach dem gesuchten Text zu suchen. Es ist wie zehn Klicks, um eine Debug-Ausgabe anzuzeigen. Es mag trivial erscheinen, ist aber nur ein Beispiel dafür, wie wenig Sorgfalt und Rücksicht auf die Erfahrung des Entwicklers genommen wurde.
Alles an der Entwicklungsplattform ist ein nachträglicher Gedanke. Es ist bemerkenswert für das, was es ist, aber zum größten Teil eine totale PITA. Wenn Sie nicht genau wissen, was Sie tun (wie bei Ihrer Zertifizierung und einem sehr guten Verständnis von Apex), benötigen Sie leicht das 10 bis 20-fache der Zeit, die Sie in einer anderen Umgebung benötigen würden etwas, das so aussieht, als wäre es lächerlich einfach, wenn man überhaupt Erfolg haben kann.
Die Grenzen des Gouverneurs sind in der Tat so schlecht. Sie haben eine Kombination verschiedener Grenzwerte (Datenbankabfragen, zurückgegebene Zeilen, "Skriptanweisungen", zukünftige Aufrufe, Beschriftungen usw.) und müssen genau wissen , was Sie tun, um diese zu vermeiden. Wenn Sie beispielsweise ein berechnetes Rollup-Feld "Formel" für ein Objekt und einen Auslöser für ein untergeordnetes Objekt haben, werden die übergeordneten Objektauslöser ausgeführt und diese auf Ihre Grenzwerte angerechnet. Solche Dinge sind erst offensichtlich, wenn Sie den schmerzhaften Prozess des Versuchens und Scheiterns durchlaufen haben.
Sie werden eine Sache versuchen, um ein Limit zu vermeiden, und eine andere in einem nie endenden Spiel von "Whack a Limit" treffen. Dabei müssen Sie Ihre gesamte App und Ihren Ansatz drastisch umgestalten und Ihren gesamten Testcode neu schreiben. Sie müssen 75% Testcode-Abdeckung haben, um in der Produktion bereitgestellt zu werden. Dies ist eigentlich eine sehr gute Sache, aber in Kombination mit allen anderen Einschränkungen ist dies sehr aufwändig. Sie werden tatsächlich die Governor-Limits erreichen, wenn Sie Ihren Testcode schreiben, der in normalen Benutzerszenarien nicht auftaucht, aber Sie daran hindert, die Abdeckung zu erreichen.
Ganz zu schweigen von einer ganzen Reihe anderer Themen. Verpackung ist nicht das, was Sie erwarten. Sie können Ihre App nicht verpacken und an Benutzer liefern, ohne dass der Administrator der Organisation eingreifen und sie konfigurieren muss. Der AppExchange ist ein totaler Witz, und sie haben sogar angefangen, 5K zu berechnen, nur um Ihre App aufzulisten. Das Importieren mit dem Datenlader ist zum Kotzen, besonders wenn Sie irgendwelche Auslöser haben. Sie können nicht alle Ihre Daten in einem Schritt exportieren, der Ihre Beziehungen so enthält, dass sie in einem einzigen Schritt problemlos in eine andere Organisation (z. B. eine Entwicklungsorganisation) erneut importiert werden können. Sie können eine Sandbox ausnahmslos nur einmal im Monat aus der Produktion aktualisieren und Ihre Daten standardmäßig nicht in eine Aktualisierung einbeziehen, es sei denn, Sie haben Ihren Kundenbetreuer angerufen, um diese Funktion freizuschalten. Sie können' t Massenlöschdaten in benutzerdefinierten Objekten. Sie können Ihre Paketnamen nicht ändern. Bestimmte Dinge können zahlreiche dauernTage , die abgeschlossen sind, nachdem Sie sie angefordert haben, z. B. eine Datensicherung, bevor Sie eine App bereitstellen möchten, ohne Fortschrittsbericht auf dem Weg und ohne viel Gefühl dafür, wann genau der Export stattgefunden hat. Angesichts der Tatsache, dass es Synchronizitätsprobleme mit Daten gibt, wenn Beziehungen zwischen den Daten bestehen, gibt es schwerwiegende Datenintegritätsprobleme, da es keine "Transaktion" gibt, die zahlreiche Objekte in einem einzigen Schritt exportieren kann. Es gibt wahrscheinlich einige kommerzielle Tools, um dies zu vereinfachen, aber diese sind für normale Entwickler, die möglicherweise kein großes Budget haben, nicht erreichbar.
Alles andere, was die anderen Leute hier sagten, ist wahr. Das Speichern einer Datei kann manchmal zwischen fünf Sekunden und einer Minute dauern.
Ich möchte nicht so negativ sein, weil die Plattform in gewisser Weise sehr cool ist und sie versuchen, Dinge in einer Umgebung mit mehreren Mandanten zu tun, die sonst niemand tut. Es ist eine sehr innovative Umgebung und auf einigen Ebenen leistungsstark (ich mag VisualForce eigentlich sehr), aber geben Sie es noch ein oder zwei Jahre. Sie arbeiten mit VMware zusammen. Vielleicht führt dies dazu, dass Entwickler eher einen Laufstall als eine Gefängniszelle zum Arbeiten haben.