Wady platformy Force.com [zamknięte]

89

Obecnie rozważamy wykorzystanie platformy Force.com jako naszej platformy programistycznej, a sprzedawcy i witryna force.com mają mnóstwo powodów, dla których jest to najlepsza platforma na świecie. To, czego szukam, to jednak realne wady korzystania z takiej platformy.

lomaxx
źródło
Ten post jest bardzo stary, ale Salesforce NADAL strasznie się rozwija. Nawet 8 lat później wciąż wydaje mi się zdumiewające, ile czasu i wysiłku trzeba poświęcić na obejście wielu niedociągnięć.
NickJ

Odpowiedzi:

142

Oto 10 na początek.

  1. Apex to zastrzeżony język. Poza wtyczką force.com Eclipse dostępnych jest niewiele narzędzi, takich jak refaktoryzacja, analiza kodu itp.
  2. Apex został wzorowany na Javie 5, który jest uważany za opóźniony w stosunku do innych języków i bez narzędzi (patrz punkt 1), może być dość kłopotliwy.
  3. Wdrażanie jest nadal dość ręczne, z wieloma problemami i ręcznymi krokami. Ta sytuacja powoli się poprawia z czasem, ale będziesz rozczarowany, jeśli jesteś przyzwyczajony do automatycznych wdrożeń.
  4. W Apex brakuje pakietów / przestrzeni nazw. Wszystkie Twoje klasy, interfejsy itp. Znajdują się w jednym folderze na serwerze. To sprawia, że ​​kod jest znacznie mniej zorganizowany, a nazwy klas / interfejsów z konieczności są długie, aby uniknąć kolizji nazw i zapewnić kontekst. Jest to jedna z moich największych skarg i nie zdecydowałbym się swobodnie budować na force.com tylko z tego powodu.
  5. „Force.com IDE”, znane również jako plugin force.com eclipse, działa niewiarygodnie wolno. Zapisywanie dowolnego pliku, czy to pliku klasowego, pliku tekstowego itp., Zwykle zajmuje co najmniej 5 sekund, a czasem nawet 30 sekund, w zależności od tego, ile obiektów, typów danych, plików klas itp. Znajduje się w Twojej organizacji. Zapisywanie jest również działaniem blokującym, wymagającym nie tylko kompilacji, ale także pełnej synchronizacji projektu lokalnego z serwerem. Rzędy wielkości wolniej niż Java lub .NET.
  6. Społeczność programistów online nie wydaje się zbyt zdrowa. Zauważyłem, że wiele postów na forum pozostaje bez odpowiedzi lub nierozwiązanych. Myślę, że może to mieć coś wspólnego z oprogramowaniem forum używanym przez Salesforce.com, które wydaje się być dość trudne.
  7. Dostęp do danych DSL w Apex pozostawia wiele do życzenia. Nie jest nawet zdalnie konkurencyjny w przypadku (N) Hibernate, JPA itp.
  8. Tworzenie aplikacji w Apex / VisualForce to ćwiczenie z zakresu inżynierii ograniczeń zarządcy. Z łatwością połowę czasu programisty poświęca się na próby optymalizacji, aby uniknąć licznych ograniczeń regulatora i innych problemów, takich jak ograniczenia stanu widzenia siły wizualnej. Można argumentować, że jeśli napiszesz wydajny kod na początku, nie będziesz mieć tego problemu, co jest do pewnego stopnia prawdą. Jednak wiele razy masz uzasadnione powody, aby wykonać więcej niż x zapytań w sesji lub przejrzeć więcej niż x rekordów itp.
  9. Cykl save-> compile-> run jest bardzo powolny, zwł. kiedy wymaga spakowania i przesłania całego statycznego pakietu zasobów tylko po to, aby przetestować niewielką zmianę CSS lub javascript.
  10. Ogólnie rzecz biorąc, ból młodej, raczkującej platformy bez korzyści wynikających z tego, że jest open source. Nie masz możliwości sprawdzenia i / lub naprawienia błędów w platformie. Mówią, aby opublikować to w swojej IdeaExchange. Taa, powodzenia.

Zastrzeżenia / ujawnienia: Hostowana platforma, taka jak force.com, ma wiele zalet. Force.com regularnie ulepsza platformę. Jest w nim mnóstwo rzeczy, które mi się podobają. Zarabiam na force.com

Jeremy Ross
źródło
4
To świetna lista, którą tam masz
lomaxx
1
Uwielbiałbym force.com, gdyby zarządzali hostingiem witryn i mógłbym uzyskać moje dane, nie tylko dodatki lub przez jakiś interfejs API, ale co noc. kopia zapasowa mojego zbioru danych Oracle. Czy faceci z działu sprzedaży to oferują? Nigdy nie byłem w stanie uzyskać prostej odpowiedzi od ich sprzedawców, co zawsze odbieram jako nie.
Chris K
3
Nie dają ci tak „surowego” dostępu do twoich danych. Istnieje usługa tworzenia kopii zapasowych, która regularnie udostępnia skompresowane pliki CSV Twojej organizacji. Dostępny jest również interfejs API replikacji, który umożliwia przechowywanie własnych kopii zapasowych obok siebie w pseudo czasie rzeczywistym.
Jeremy Ross
@Jeremy z ciekawości ... ile czasu spędzasz we wtyczce eclipse ide, a nie tylko na ustawianiu rzeczy w menu "setup" w aplikacji Salesforce?
lomaxx
1
Osobiście spędzam 90% czasu w zaćmieniu lub w edytorze tekstu (w moim przypadku TextMate). Ale to dlatego, że ktoś inny zwykle zajmuje się podstawową konfiguracją danych. Konfiguracja niestandardowych obiektów i pól odbywa się w witrynie salesforce.com, a nie w kodzie, ponieważ w świecie force.com nie ma DDL. Istnieje interfejs API metadanych, ale nigdy nie używam go podczas projektowania danych.
Jeremy Ross
38

Widzę, że dostałeś kilka odpowiedzi, ale chciałbym powtórzyć, ile czasu jest marnowane na obejście różnych ograniczeń zarządcy na platformie. Chociaż podoba mi się ta platforma na niektórych poziomach, to bardzo, gorąco, zdecydowanie odradzam ją jako ogólną platformę do tworzenia aplikacji. Jest świetna jako superkonfigurowalna i rozszerzalna aplikacja CRM, jeśli tego chcesz. Chociaż ich marketing jest wyjątkowy w promowaniu idei Force.com jako ogólnej platformy programistycznej, to jeszcze nie jest jeszcze blisko.

Skuteczność posiadania stabilnej platformy i unikania dużych problemów z wydajnością i stabilnością jest łatwo zmarnowana, próbując kodować w okolicach ograniczeń, do których ludzie się odnoszą. Platforma ma tak wiele ograniczeń, że staje się całkowicie szalona. Te limity nie są wysokimi limitami, które osiągniesz, gdy będziesz mieć wielu użytkowników, osiągniesz je prawie od razu.

Chociaż zwykle istnieją techniki ich ominięcia, bardzo trudno jest wymyślić strategie ich unikania, jednocześnie próbując opracować logikę biznesową swojej rzeczywistej aplikacji.

Aby dać ci proste wyobrażenie o tym, jak środowisko jest nieprzyjazne dla programistów, weź pod uwagę „brak środowiska debugowania”, o którym mowa powyżej. To jest gorsze niż to. W dziennikach debugowania można zobaczyć tylko do 20 ostatnich żądań do serwera. Tak więc, gdy tworzysz w aplikacji, musisz utworzyć żądanie debugowania „Nowe”, wybrać swoją nazwę, nacisnąć „Zapisz”, wrócić do aplikacji, odświeżyć stronę, kliknąć z powrotem na kartę debugowania, spróbować znaleźć żądanie, w którym będzie przechowywany dziennik debugowania, naciśnij „znajdź”, aby wyszukać tekst, którego szukasz. To jak dziesięć kliknięć, aby zobaczyć wynik debugowania. Chociaż może się to wydawać trywialne, to tylko przykład tego, jak mało uwagi i uwagi poświęcono doświadczeniu programisty.

Wszystko na temat platformy programistycznej jest zaszczepione po namyśle. To niezwykłe, jak to jest, ale w większości jest to całkowite PITA. Jeśli nie wiesz dokładnie, co robisz (tak jak masz certyfikat i bardzo dobrze rozumiesz Apex), z łatwością zajmie ci to 10-20 razy więcej czasu niż w innym środowisku coś, co wydaje się być absurdalnie proste, jeśli w ogóle możesz odnieść sukces.

Limity gubernatora są rzeczywiście takie złe. Masz kombinację różnych ograniczeń (zapytania do bazy danych, zwrócone wiersze, „instrukcje skryptu”, przyszłe wywołania, objaśnienia itp.) I musisz dokładnie wiedzieć , co robisz, aby ich uniknąć. Na przykład, jeśli masz obliczone pole „formuła” zestawienia na obiekcie i masz wyzwalacz na obiekcie podrzędnym, uruchomi on wyzwalacze obiektu nadrzędnego i policzy je w ramach twoich limitów. Takie rzeczy nie są oczywiste, dopóki nie przejdziesz przez bolesny proces prób i niepowodzeń.

Spróbujesz jednej rzeczy, aby ominąć jeden limit, a trafisz w inny w niekończącej się grze „walnij limit”. W trakcie tego procesu będziesz musiał radykalnie zmienić architekturę całej aplikacji i podejścia, a także przepisać cały kod testowy. Państwo musi mieć 75% pokrycia kodu test wdrożyć do produkcji, która jest faktycznie bardzo dobra rzecz, ale w połączeniu ze wszystkimi innymi ograniczeniami, jest to bardzo uciążliwe. W rzeczywistości osiągniesz limity programu zarządzającego, pisząc kod testowy, który nie pojawiłby się w normalnych scenariuszach użytkownika, ale uniemożliwi to osiągnięcie pokrycia.

Nie wspominając o wielu innych kwestiach. Opakowanie nie jest tym, czego oczekujesz. Nie możesz spakować swojej aplikacji i dostarczyć jej użytkownikom bez znaczącej interwencji użytkownika i konfiguracji ze strony administratora organizacji. AppExchange to totalny żart, a nawet zaczęli ładować 5K tylko po to, aby Twoja aplikacja została wymieniona. Importowanie za pomocą modułu ładującego dane jest do bani, zwłaszcza jeśli masz jakieś wyzwalacze. Nie możesz wyeksportować wszystkich danych w jednym kroku, obejmującym relacje w taki sposób, aby można je było łatwo ponownie zaimportować do innej organizacji w jednym kroku (na przykład organizacji deweloperskiej). Możesz odświeżyć piaskownicę tylko raz w miesiącu od produkcji, bez wyjątków, i nie możesz domyślnie uwzględniać danych w odświeżaniu, chyba że zadzwonisz do kierownika konta, aby odblokować tę funkcję. Możesz' masowe usuwanie danych w obiektach niestandardowych. Nie możesz zmienić nazw pakietów. Pewnych rzeczy może być wieledni do ukończenia po zażądaniu ich, na przykład kopii zapasowej danych przed wdrożeniem aplikacji, bez raportu o postępie po drodze i bez większego zrozumienia, kiedy dokładnie nastąpił eksport. Biorąc pod uwagę, że istnieją problemy z synchronizacją danych, jeśli istnieją relacje między danymi, istnieją poważne problemy z integralnością danych, ponieważ nie ma czegoś takiego jak „transakcja”, która może wyeksportować wiele obiektów w jednym kroku. Prawdopodobnie istnieją komercyjne narzędzia, które mogą to ułatwić, ale nie są one dostępne dla zwykłych programistów, którzy mogą nie mieć dużego budżetu.

Wszystko inne, co powiedzieli tutaj inni, jest prawdą. Czasami zapisanie pliku może zająć od pięciu sekund do minuty.

Nie chcę być taki negatywny, ponieważ platforma jest bardzo fajna pod pewnymi względami i próbują robić rzeczy w środowisku wielu najemców, których nikt inny nie robi. To bardzo innowacyjne środowisko i potężne na niektórych poziomach (tak naprawdę bardzo lubię VisualForce), ale daj mu jeszcze rok lub dwa. Współpracują z VMware, być może dzięki temu dadzą programistom trochę więcej miejsca do pracy, a nie celi więziennej do pracy.

dt.
źródło
Co więcej niż 2 lata po tej odpowiedzi, co z platformą w dzisiejszych czasach? Czy poprawiło się, niektóre z tych uciążliwych problemów zostały rozwiązane lub przynajmniej zniesione?
Jarosław
Bump, chcę też wiedzieć, czy coś się zmieniło w ciągu tych 2 lat.
magallanes
5
Nie mogę komentować AppExchange, ale znalazłem ten wątek po wrzuceniu „salesforce.com do bani” do Google w frustracji z powodu wyzwalaczy i limitów gubernatora oraz przeskakiwania przez obręcze, aby poradzić sobie z bardzo prostymi danymi… po prostu ich dużo. Weź to, jak chcesz;)
BLSully
1
@Yaroslav Zobaczę twoje dwa lata i dodam kolejne trzy i zmienię. Wprowadził pewne znaczące ulepszenia, ale w zasadzie ta odpowiedź jest nadal poprawna.
25

Oto kilka rzeczy, które mogę ci dać po spędzeniu trochę czasu na tworzeniu platformy w ciągu ostatnich dwóch tygodni:

  1. Nie ma RESTful API. Mają API oparte na mydle, które możesz wywołać, ale nie ma sposobu na wykonywanie prawdziwych, spokojnych połączeń

  2. Nie ma prostego sposobu na pobranie ich obiektów SObject i przekonwertowanie ich na obiekty JSON.

  3. Strony siły wizualnej są w porządku, dopóki nie chcesz ich dostosować, a wtedy jest cały świat bólu.

  4. Strony siły wizualnej muszą być powiązane z obiektami SObject, w przeciwnym razie nie ma sposobu, aby standardowe pola wejściowe, takie jak datepicker lub lista wyboru, działały.

  5. Wtyczka eclipse jest w porządku, jeśli chcesz pracować samodzielnie, ale jeśli chcesz pracować w dużym zespole z wtyczką eclipse, zapomnij o tym. Nie obsługuje synchronizacji do iz serwera, ulega awarii i wcale nie jest pomocna.

  6. NIE MA DEBUGERA! Jeśli chcesz debugować, jest to dosłownie debugowane przez instrukcje system.debug. To prawdopodobnie największy problem, jaki znalazłem

  7. Ich model „MVC” nie jest tak naprawdę MVC. Jest znacznie bliżej formularzy internetowych ASP.NET. Twoje poglądy są ściśle powiązane nie tylko z modelami, ale także z kontrolerami.

  8. Przechowywanie dużej liczby dokumentów jest niewykonalne. Musimy przechowywać ponad 100 GB dokumentów i podano nam jakąś absurdalną liczbę. Zdecydowaliśmy się zaimplementować nasze przechowywanie dokumentów w infrastrukturze Amazon S3

  9. Nawet jeśli język jest oparty na Javie, to nie jest Java. Nie możesz importować żadnych zewnętrznych pakietów ani bibliotek. Ponadto dostępne biblioteki podstawowe są poważnie ograniczone, więc znaleźliśmy się zaimplementowaliśmy wiele rzeczy na zewnątrz, a następnie ujawniliśmy te bity jako usługi wywoływane przez force.com

  10. Możesz wywołać zewnętrzne usługi oparte na SOAP lub REST, ale treść wiadomości jest ograniczona do 100 kb, więc jest bardzo restrykcyjna w tym, co możesz wywołać.

Szczerze mówiąc, chociaż istnieją potencjalne korzyści płynące z rozwoju na czymś takim jak platforma force.com, dla mnie nie można używać platformy force.com dla aplikacji na poziomie korporacyjnym. W najlepszym razie mógłbyś napisać kilka podstawowych aplikacji w stylu crud, ale kiedy przejdziesz do czegoś zdalnie skomplikowanego, uniknę tego jak zarazy.

lomaxx
źródło
16
RESTful API jest już dostępne dla force
mirezus
3
Serializacja JSON i de-serializacja są dostępne dla Non SObject.
kadalamittai
W jaki sposób zintegrowałeś magazyn dokumentów Amazon z Salesforce (zakładając, że tak zrobiłeś)?
Michael Paulukonis
Jest teraz debugger, ale kosztuje to więcej. Informacje o zimowym wydaniu 2016
Martin
14

Wow - jest tu wiele rzeczy, o których nawet nie wiedziałem, że są ograniczeniami - po kilku latach pracy na platformie.

Ale żeby dodać kilka innych rzeczy ...

Powodem, dla którego nie masz debugera linia po linii, jest właśnie to, że jest to platforma dla wielu dzierżawców. Tak przynajmniej twierdzi SFDC - wydaje się, że w dobie programowania bogatego w wątki nie jest to wymówka, ale najwyraźniej to jest powód. Jeśli musisz pisać kod, masz debugera „System.debug (String)” - pamiętam, że około 12 lat temu miałem bardziej wyrafinowane narzędzia do debugowania serwera w Javie 1.2.

Kolejną rzeczą, której naprawdę nienawidzę w systemie, jest kontrola wersji. Framework Spring nie jest używany do tego, do czego zwykle używa się Spring - jest bardziej związany z narzędziem konfiguracyjnym w SFDC niż z kontrolą wersji. SFDC zapewnia kontrolę wersji ZERO.

Możesz utknąć na kilka dni, robiąc coś, co powinno wydawać się tak absurdalnie łatwe, jak, powiedzmy, zaplanowanie raportu SFDC w celu wyeksportowania do pliku CSV i wysłania e-maila do listy odbiorców ... Cóż, najłatwiejszym sposobem na to jest utwórz niestandardowy obiekt z niestandardowym polem, z regułą przepływu pracy i szablonem wiadomości e-mail Visualforce ... a następnie dla kodu musisz napisać komponent Visualforce, który przesyła dane raportu do szablonu wiadomości e-mail Visualforce jako załącznik i piszesz anonimowy APEX harmonogram kodu aktualizacja pola obiektu niestandardowego ... Dla programistów SFDC jest to prawie codzienne zadanie ... próba połączenia razem około pięciu różnych technologii w celu wykonania zadań, które wydają się tak proste ... A to może powodować problemy z zarządzaniem i napięcia - zwykle dowiadujesz się o tym po otrzymaniu sugestii, jak zrobić coś, co niet pracować w społeczności użytkowników (jak ktoś już powiedział), a następnie próbować wielu rzeczy, które po ich opracowaniu okazałyby się po prostu nie działać z jakiegoś dziwnego powodu - na przykład „nie możesz zaplanować Strona VisualForce ”lub„ nie możesz wywołać getContent z kontekstu planowanego ”lub z innego tajemniczego powodu.

Na platformie SFDC jest tak wiele, wiele szalonych drobiazgów, że kiedy już wiesz, DLACZEGO tam są, ma to sens ... ale nadal są bardzo złymi ograniczeniami, które uniemożliwiają ci robienie tego, co musisz. Oto kilka moich;

  1. Nie można uzyskać informacji o właścicielu rekordu „po wyjęciu z pudełka” na prawie każdym rekordzie - musisz napisać wyzwalacz, który łączy właściciela podczas tworzenia rekordu z wstawianym rekordem. Czemu? Krótka odpowiedź, ponieważ właściciel może być albo „osobą”, albo „kolejką”, a te dwa to radykalnie różne byty… Ma sens, ale może dosłownie wywrócić projekt do góry nogami.

  2. Irytujący model bezpieczeństwa. Przykład: Uprawnienie „Zarządzaj raportami publicznymi” znacznie różni się od uprawnienia „Tworzenie i dostosowywanie raportów” i dotyczy w zasadzie wszystkiego na platformie… zwłaszcza folderów wszelkiego rodzaju.

  3. Jak wspomniano, wsparcie w zasadzie nie istnieje. Jeśli jesteś wyjątkowo samowystarczalną osobą, masz dużo zasobów SFDC, masz dużo czasu i / lub bardzo wyrozumiałego menedżera lub zarządzasz systemem SFDC, który działa dobrze, jesteś w całkiem niezłym stanie kształt. Jeśli nie zajmujesz żadnej z tych pozycji, możesz wpaść w poważne kłopoty.

SFDC to bardzo kusząca propozycja biznesowa ... brak miejsca na sprzęt, całkiem dobre bezpieczeństwo, stała cena, brak infrastruktury ORAZ otrzymujesz internetowy CRM z przetwarzaniem wsadowym i planowanym ... Ale jak powiedzieli inni plakaty, tak naprawdę jest spory wzrost w nauce programowania, a jeśli pójdziesz z konsultingiem, myślę, że najniższa cena, jaką widziałem, wynosiła 200 USD za godzinę.

Salesforce ma tendencję do integracji z innymi rzeczami lata po tym, jak niektóre technologie stały się powszechne - przychodzą na myśl JSON i jquery ... a jeśli masz inne wspólne infrastruktury, z którymi chcesz przeprowadzić integrację, takie jak JIRA, spodziewaj się dużo więcej, i mogą być dość wadliwe.

I jak jeden z innych wspomnianych plakatów, nieustannie walczysz z ograniczeniami gubernatorów, które mogą po prostu doprowadzić cię do szału ... załącznik NIE może być> 5 MB. Kropka. A czasami <3 MB (jeśli jest zakodowane w base64). Dziesięć wywołań HTTP w klasie. Kropka. Istnieją dziesiątki opublikowanych limitów gubernatorów, a wiele z nich nie jest, które z pewnością znajdziesz i po prostu zechcesz wybiegać z biura z krzykiem.

Naprawdę, NAPRAWDĘ lubię platformę, ale uwierz mi - może to być jedna naprawdę okrutna kochanka.

Ale uczciwie wobec SFDC, powiedziałbym tak: największym problemem, jaki znajduję w związku z platformą, nie jest sama platforma, ale gigantyczne oczekiwania, które prawie każdy, kto widzi platformę, ale nie rozwinął się na niej, ma ... a ci ludzie zwykle zajmują wysokie stanowiska w organizacjach biznesowych; marketing, sprzedaż, zarządzanie itp. Występują ogromne rozłączenia i codziennie toczą się głowy lub grożą im wypadki - wszystko dlatego, że istnieje ta świetna platforma z dziwnymi problemami i tysiącami ludzi, którzy codziennie walczą o to, aby zrozumieć, dlaczego rzeczy powinny po prostu działać, kiedy po prostu tego nie robią i nie chcą.

EDYCJA:
Wystarczy dodać do komentarzy lomaxxa na temat MVC; W terminologii SFDC jest to ściśle związane z tak zwanym „stanem widoku” - i może być naprawdę błędne, ponieważ to, co znajduje się na stronie VF, nie jest tym, co znajduje się w klasie kontrolera strony. Więc musisz przejść przez dziwne zakręty, aby zsynchronizować to, co jest na stronie, z tym, co kontroler zapisze w SF, gdy klikniesz przycisk „zapisz” (lub utworzysz wywołanie HTTP lub cokolwiek innego) .... stary, to denerwujące .

user2223
źródło
+1 za wzmiankę o kontroli wersji.
lindon fox
7

Myślę, że inni ludzie opisali wady bardziej szczegółowo, ale wydaje mi się, że nie używa on paradygmatu MVC ani w ogóle nie wspiera ponownego wykorzystania kodu. Wykonywanie czegokolwiek poza prostymi aplikacjami jest frustracją w porównaniu do tworzenia aplikacji przy użyciu czegoś takiego jak ASP.Net MVC.

Co więcej, narzędzia, warstwa danych i frustracja związana z próbą refaktoryzacji kodu lub zmiany nazw pól podczas procesu programowania nie pomagają.

Myślę, że jako CMS jest całkiem fajny, ale jako platforma dla aplikacji innych niż CMS, nie ma to dla mnie sensu.

Neil M.
źródło
6

Model bezpieczeństwa jest również bardzo restrykcyjny ... ale to nie jest najgorsza część. Obecnie nie można stwierdzić, czy użytkownik ma możliwość wykonania określonej czynności.

Możesz sprawdzić, jaka jest ich rola, ale nie możesz sprawdzić, czy ta rola ma uprawnienia do wykonywania bieżącej akcji.

Jeszcze gorsza jest reakcja działu pomocy technicznej na „wypróbuj działanie, a jeśli jest wyjątek, złap go”

lomaxx
źródło
3

Podsumowując, jestem ciekaw, jak wydanie VMforce, pozwalającego programistom Java na pisanie kodu dla Force.com, zmienia powyższe wady?

http://www.zdnet.com/blog/saas/vmforcecom-redefines-the-paas-landscape/1071

Kris
źródło
złagodzi niektóre problemy, ale nadal będziesz związany z bazą danych Force.com, co jest okropne i nie będziesz mieć prawdziwej kontroli nad swoimi wdrożeniami. To wciąż wczesne dni i może się to zmienić w przyszłości, ale w tej chwili nie wygląda to na zbyt atrakcyjną alternatywę.
lomaxx
VMForce nie żyje: siliconangle.com/blog/2011/09/01/…
Haris Osmanagić
3

Myślę, że próbują rozwiązać te problemy. Na Dreamforce wspomnieli, że próbujemy obniżyć limit gubernatora do tylko 4. Nie jestem pewien, jakie są szczegóły. Mają REST API do wczesnego dostępu i kupili heroku, który jest rubinowym opracowaniem w chmurze. Podzielili bazę danych na bazę danych database.com, dzięki czemu możesz wykonywać wszystkie prace programistyczne w sieci i wywoływać bazy danych za pomocą database.com.

Myślę, że starają się uczynić to tak agnostycznym, jak to tylko możliwe. Ale w tej chwili są to wszystkie ogłoszenia i wczesny dostęp, więc podobnie jak ich oświadczenia Safe Harbor nie kupują za to, co mówią, tylko za to, co obecnie mają.

homersantos
źródło
7 lat i nie odnieśli się do niczego na powyższej liście.
el n00b