Я вижу, что вы получили некоторые ответы, но я хотел бы повторить, сколько времени уходит на то, чтобы обойти различные ограничения регулятора на платформе. Как бы мне ни нравилась платформа на определенных уровнях, я бы очень, очень, категорически не рекомендовал ее как общую платформу для разработки приложений. Он отлично подходит как супер настраиваемое и расширяемое приложение CRM, если вы этого хотите. Хотя их маркетинг исключительно хорош в продвижении идеи Force.com как общей платформы разработки, он еще даже отдаленно не близок.
Эффективность наличия стабильной платформы и избежания серьезных проблем с производительностью и стабильностью легко теряется, пытаясь обойти ограничения, на которые ссылаются люди. У платформы так много ограничений, что это сводит с ума. Эти ограничения не являются высокими лимитами, которые вы достигнете, когда у вас будет много пользователей, вы достигнете их почти сразу.
Хотя обычно существуют методы их обхода, очень сложно придумать стратегии, позволяющие их избежать, пока вы также пытаетесь разработать бизнес-логику своего реального приложения.
Чтобы дать вам простое представление о том, насколько среда неприятна для разработчиков, возьмите «отсутствие среды отладки», о которой говорилось выше. Это еще хуже. В журналах отладки вы можете видеть только до 20 самых последних запросов к серверу. Итак, по мере разработки внутри приложения вам необходимо создать «Новый» отладочный запрос, выбрать свое имя, нажать «Сохранить», вернуться к своему приложению, обновить страницу, вернуться на вкладку отладки, попытаться найти запрос, который будет содержать ваш журнал отладки, нажмите "найти", чтобы найти текст, который вы ищете. Это как десять щелчков мышью, чтобы посмотреть результат отладки. Хотя это может показаться тривиальным, это просто пример того, как мало внимания и внимания уделяется опыту разработчика.
Все, что связано с платформой разработки, - это второстепенная мысль. Это примечательно тем, что есть, но по большей части это полная PITA. Если вы точно не знаете, что делаете (например, если вы сертифицированы и очень хорошо разбираетесь в Apex), это легко займет у вас в 10-20 раз больше времени, чем в другой среде. то, что кажется, было бы до смешного простым, если бы вы вообще могли добиться успеха.
Ограничения губернатора действительно настолько плохи. У вас есть комбинация различных ограничений (запросы к базе данных, возвращаемые строки, «операторы сценария», будущие вызовы, выноски и т. Д.), И вы должны точно знать , что вы делаете, чтобы их избежать. Например, если у вас есть вычисляемое сводное поле «формула» для объекта и у вас есть триггер для дочернего объекта, он выполнит триггеры родительского объекта и посчитает их с вашими пределами. Подобные вещи не очевидны, пока вы не пройдете через болезненный процесс попыток и неудач.
Вы попробуете одно, чтобы избежать одного предела, и достигнете другого в бесконечной игре «Ударьте предел». В процессе вам придется кардинально изменить архитектуру всего приложения и подхода, а также переписать весь тестовый код. Для развертывания в производственной среде у вас должно быть 75% покрытия тестового кода, что на самом деле очень хорошо, но в сочетании со всеми другими ограничениями это очень обременительно. Вы фактически достигнете ограничений регулятора, написав свой тестовый код, который не подойдет в обычных пользовательских сценариях, но помешает вам достичь покрытия.
Это не говоря уже о целом ряде других проблем. Упаковка - это не то, что вы ожидаете. Вы не можете упаковать свое приложение и доставить его пользователям без значительного вмешательства пользователя и настройки со стороны администратора организации. AppExchange - это полная шутка, и они даже начали взимать 5K, чтобы ваше приложение было в списке. Импорт с помощью загрузчика данных - отстой, особенно если у вас есть триггеры. Вы не можете экспортировать все свои данные за один шаг, включая ваши отношения, таким образом, чтобы их можно было легко повторно импортировать в другую организацию за один шаг (например, в группу разработчиков). Вы можете обновлять песочницу только один раз в месяц из рабочей среды, без исключений, и вы не можете включать свои данные в обновление по умолчанию, если вы не позвонили руководителю своей учетной записи, чтобы разблокировать эту функцию. Вы можете' • массовое удаление данных в пользовательских объектах. Вы не можете изменить имена своих пакетов. Некоторые вещи могут потребовать множествадней для завершения после того, как вы их запросили, например, резервное копирование данных перед развертыванием приложения, без отчета о ходе выполнения и отсутствия особого представления о том, когда именно был произведен экспорт. Учитывая, что существуют проблемы синхронности данных при наличии взаимосвязей между данными, существуют серьезные проблемы целостности данных, поскольку не существует такой вещи, как «транзакция», которая может экспортировать множество объектов за один шаг. Вероятно, существуют некоторые коммерческие инструменты для облегчения некоторых из них, но они недоступны для обычных разработчиков, у которых может не быть огромного бюджета.
Все остальное, что здесь говорили другие люди, правда. Иногда для сохранения файла может потребоваться от пяти секунд до минуты.
Я не хочу быть таким негативным, потому что платформа в некотором смысле очень крутая, и они пытаются делать то, что в многопользовательской среде не делает никто другой. Это очень инновационная среда и мощная на некоторых уровнях (на самом деле мне очень нравится VisualForce), но дайте ей еще год или два. Они сотрудничают с VMware, и, возможно, это даст разработчикам больше манежа, чем тюремной камеры.