Я бачу, що ви отримали кілька відповідей, але я хотів би ще раз наголосити, скільки часу витрачається на обхід різних обмежень губернатора на платформі. Наскільки мені подобається платформа на певних рівнях, я б дуже наполегливо, наполегливо рекомендував не рекомендувати її як загальну платформу для розробки додатків. Це чудово, як супер налаштовується та розширювана програма CRM, якщо це те, що ви хочете. Незважаючи на те, що їх маркетинг є винятковим, просуваючи ідею Force.com як загальної платформи для розвитку, це ще навіть далеко не близько.
Ефективність стабільної платформи та уникнення великих проблем із продуктивністю та стабільністю легко витратити, намагаючись кодувати обмеження, на які посилаються люди. Платформа має стільки обмежень, що вона стає абсолютно божевільною. Ці обмеження не є висококласними обмеженнями, які ви досягнете, коли у вас буде багато користувачів, ви досягнете їх майже відразу.
Хоча зазвичай є методи їх обійти, дуже важко з’ясувати стратегії їх уникнення, тоді як ви також намагаєтесь розробити бізнес-логіку вашого власного додатку.
Щоб дати вам просте уявлення про те, наскільки несприятливим для розробників є середовище, візьміть "відсутність середовища налагодження", згадану вище. Це гірше за це. Ви можете побачити до 20 останніх запитів до сервера у журналах налагодження. Отже, коли ви розробляєте програму, вам потрібно створити запит на налагодження "Новий", вибрати своє ім'я, натиснути "Зберегти", повернутися до програми, оновити сторінку, клацнути назад на вкладці налагодження, спробувати знайти запит, в якому буде розміщено ваш журнал налагодження, натисніть "знайти" для пошуку тексту, який ви шукаєте. Це схоже на десять клацань, щоб переглянути вихід налагодження. Хоча це може здатися дрібницею, це лише приклад того, як мало уваги та уваги було приділено досвіду розробника.
Все, що стосується платформи для розробки, - це прищеплене додаткове мислення. Це чудово тим, що воно є, але загальним ПДФО здебільшого. Якщо ви точно не знаєте, що робите (як, наприклад, ви сертифіковані і дуже глибоко розумієте Apex), це легко забере у вас більше 10-20 разів часу, який було б в іншому середовищі робити щось таке, що здається смішним простим, якщо ти взагалі можеш досягти успіху.
Обмеження губернатора справді такі погані. У вас є комбінація різних обмежень (запити до бази даних, повернені рядки, "виписки сценаріїв", майбутні дзвінки, виноски тощо), і ви повинні точно знати , що ви робите, щоб уникнути цього. Наприклад, якщо у вас є розраховане зведене поле "формула" на об'єкті, і у вас є тригер на дочірньому об'єкті, він виконає тригери батьківського об'єкта і зарахує їх до ваших обмежень. Такі речі не очевидні, поки ви не пройдете болісний процес спроб і невдач.
Ви спробуєте одне, щоб уникнути одного ліміту, а вдарите інше у нескінченній грі "Whack a limit". У процесі вам доведеться кардинально переробити весь ваш додаток і підхід, а також переписати весь свій тестовий код. Ви повинні мати 75% охоплення тестовим кодом для розгортання у виробництві, що насправді дуже добре, але в поєднанні з усіма іншими обмеженнями це дуже обтяжливо. Ви фактично досягнете обмежень губернатора, написавши свій тестовий код, який не з’явиться у звичайних сценаріях користувача, але це завадить вам досягти покриття.
Це не кажучи вже про цілу низку інших питань. Упаковка - це не те, що ви очікуєте. Ви не можете упакувати програму та доставити її користувачам без значного втручання та налаштування користувача з боку адміністратора організації. AppExchange - це жарт, і вони навіть почали заряджати 5K, лише щоб перерахувати ваш додаток. Імпорт за допомогою завантажувача даних відстійний, особливо якщо у вас є тригери. Ви не можете експортувати всі свої дані за один крок, що включає ваші відносини, таким чином, що їх можна легко повторно імпортувати в іншу організацію за один крок (наприклад, організацію розробника). Ви можете оновлювати пісочницю лише раз на місяць з моменту виробництва, без винятків, і ви не можете включити свої дані в оновлення за замовчуванням, якщо ви не зателефонували керівнику свого облікового запису, щоб цю функцію розблокували. Ти можеш' t масове видалення даних у користувацьких об'єктах. Ви не можете змінити імена пакетів. Деякі речі можуть зайняти численніднів до завершення після того, як ви їх запитуєте, наприклад, резервного копіювання даних перед тим, як ви захочете розгорнути програму, без звіту про хід роботи та не надто відчуваючи, коли саме відбувся експорт. Враховуючи, що існують проблеми синхронності даних, якщо між даними існують взаємозв'язки, є серйозні проблеми цілісності даних, оскільки не існує поняття "транзакція", яке може експортувати численні об'єкти за один крок. Можливо, є деякі комерційні інструменти, які полегшують це, але вони не доступні звичайним розробникам, які можуть не мати величезного бюджету.
Все інше, про що інші люди говорили тут, є правдою. Щоб зберегти файл, іноді може знадобитися від п’яти секунд до хвилини.
Я не маю на увазі бути настільки негативним, тому що платформа в чомусь дуже крута, і вони намагаються робити те, що робиться в середовищі з декількома орендарями, чого не робить ніхто інший. Це дуже інноваційне середовище та потужне на деяких рівнях (мені насправді дуже подобається VisualForce), але дайте йому ще рік-два. Вони співпрацюють з VMware, можливо, це призведе до того, що розробники отримають трохи більше манежу, а не тюремної камери для роботи.