Недостатки платформы Force.com [закрываются]

Возможно, если следующие условия применяются:

  1. новые программисты уже понимают проект и не требуются никакое время наращивания.
  2. новые программисты уже являются опытными со средой разработки.
  3. Никакое adminstrative время не необходимо, чтобы добавить разработчиков к команде.
  4. Почти никакая коммуникация не требуется между членами команды.

я сообщу в первый раз, когда я вижу все их сразу.

89
задан ЯegDwight 6 September 2012 в 12:47
поделиться

5 ответов

Вот 10, с которых можно начать.

  1. Apex - это проприетарный язык. Помимо подключаемого модуля Eclipse force.com, здесь практически нет инструментов, таких как рефакторинг, анализ кода и т. Д.
  2. Apex был смоделирован на Java 5, которая, как считается, отстает от других языков, и без инструментов (см. # 1), может быть довольно громоздким.
  3. Развертывание по-прежнему выполняется вручную с множеством ошибок и ручных шагов. Эта ситуация со временем постепенно улучшается, но вы будете разочарованы, если привыкли к автоматическому развертыванию.
  4. Apex не хватает пакетов / пространств имен. Все твои занятия, интерфейсы и т.п. живут в одной папке на сервере. Это делает код намного менее организованным, а имена классов / интерфейсов обязательно длинными, чтобы избежать конфликтов имен и обеспечить контекст. Это одна из моих самых больших жалоб, и я бы не стал свободно строить на force.com только по этой причине.
  5. "force.com IDE", также известный как плагин force.com eclipse, невероятно медленный. Сохранение любого файла, будь то файл класса, текстовый файл и т. Д., Обычно занимает не менее 5 секунд, а иногда и до 30 секунд в зависимости от того, сколько объектов, типов данных, файлов классов и т. Д. Находится в вашей организации. Сохранение также является блокирующим действием, требующим не только компиляции, но и полной синхронизации вашего локального проекта с сервером. На порядок медленнее, чем Java или .NET.
  6. Сообщество онлайн-разработчиков не кажется очень здоровым. Я' Я заметил, что многие сообщения на форуме остаются без ответа или нерешенными. Я думаю, это может иметь какое-то отношение к программному обеспечению для форумов, которое использует salesforce.com, что, кажется, довольно отстойно.
  7. DSL доступа к данным в Apex оставляет желать лучшего. Он даже отдаленно не конкурирует с такими, как (N) Hibernate, JPA и т. Д.
  8. Разработка приложения на Apex / VisualForce - это упражнение в разработке ограничений регулятора. Легко, половина времени программиста тратится на попытки оптимизации, чтобы избежать многочисленных ограничений регулятора и других ошибок, таких как ограничения состояния представления visualforce. Можно было бы возразить, что если вы с самого начала напишете эффективный код, у вас не будет этой проблемы, что до некоторой степени верно. Однако во многих случаях у вас есть веские причины для выполнения более чем x запросов в сеансе или циклического перебора более чем x записей и т. Д.
  9. save-> compile-> рабочий цикл очень медленный, особенно когда он включает в себя заархивирование и загрузку всего пакета статических ресурсов только для того, чтобы сделать что-то вроде тестирования незначительного изменения CSS или javascript.
  10. В общем, боль молодой, молодой платформы без преимуществ ее открытого исходного кода. У вас нет возможности проверить и / или исправить ошибки в платформе. Они говорят разместить это на своей IdeaExchange. Да, удачи с этим.

Заявление об ограничении ответственности / Раскрытие информации: У размещенной платформы, такой как force.com, есть множество преимуществ. Force.com регулярно улучшает платформу. Мне в нем много чего нравится. Я зарабатываю на сайте force.com

молодая платформа без преимуществ ее открытого исходного кода. У вас нет возможности проверить и / или исправить ошибки в платформе. Они говорят разместить это на своей IdeaExchange. Да, удачи с этим.

Заявление об ограничении ответственности / Раскрытие информации: У размещенной платформы, такой как force.com, есть множество преимуществ. Force.com регулярно улучшает платформу. Мне в нем много чего нравится. Я зарабатываю на сайте force.com

молодая платформа без преимуществ ее открытого исходного кода. У вас нет возможности проверить и / или исправить ошибки в платформе. Они говорят опубликовать его на своей IdeaExchange. Да, удачи с этим.

Заявление об ограничении ответственности / Раскрытие информации: У размещенной платформы, такой как force.com, есть множество преимуществ. Force.com регулярно улучшает платформу. Мне в нем много чего нравится. Я зарабатываю на сайте force.com

141
ответ дан 24 November 2019 в 07:11
поделиться

Модель безопасности также очень жесткая ... но это еще не самое худшее. В настоящее время вы не можете утверждать, имеет ли пользователь возможность выполнить определенное действие.

Вы можете проверить, какова его роль, но вы не можете проверить, есть ли у этой роли разрешения на выполнение текущего действия.

] Еще хуже реакция техподдержки: «Попробуйте действие, а если возникнет исключение, поймайте его»

6
ответ дан 24 November 2019 в 07:11
поделиться

Вот несколько вещей, которые я могу дать вам, потратив немало времени на разработку на платформе за последние две недели или около того:

  1. RESTful API отсутствует. У них есть API на основе мыла, который вы можете вызывать, но нет способа сделать действительно успокаивающие вызовы

  2. Нет простого способа взять их объекты SO и преобразовать их в объекты JSON.

  3. Страницы визуальной силы в порядке, пока вы хотите настроить их, и тогда это целый мир боли.

  4. Визуальные форсированные страницы должны быть привязаны к объектам SObject, иначе невозможно будет заставить стандартные поля ввода, такие как datepicker или список выбора, работать.

  5. Плагин eclipse подходит, если вы хотите работать самостоятельно, но если вы хотите работать в большой команде с плагином eclipse, забудьте об этом. Он не обрабатывает синхронизацию с сервером и с сервера, он дает сбой и не работает. Это действительно полезно.

  6. ОТЛАДЧИКА НЕТ! Если вы хотите отлаживать, это буквально отлаживается с помощью операторов system.debug. Это, вероятно, самая большая проблема, которую я обнаружил

  7. . Их модель "MVC" на самом деле не является MVC. Это намного ближе к веб-формам ASP.NET. Ваши представления тесно связаны не только с моделями, но и с контроллерами.

  8. Хранить большое количество документов невозможно. Нам нужно хранить более 100 ГБ документов, и нам назвали смешную цифру. Мы решили реализовать наше хранилище документов в инфраструктуре Amazon S3

  9. . Несмотря на то, что язык основан на java, это не java. Вы не можете импортировать какие-либо внешние пакеты или библиотеки. Кроме того, доступные базовые библиотеки сильно ограничены, поэтому мы Мы обнаружили, что реализуем кучу вещей извне, а затем выставляем эти биты как службы, которые вызываются force.com

  10. . Вы можете вызывать внешние службы на основе SOAP или REST, но тело сообщения ограничено 100 КБ, поэтому это очень ограничивает то, что вы может позвонить.

Честно говоря, несмотря на то, что есть потенциальные выгоды от разработки на платформе force.com, для меня нельзя использовать платформу force.com для настоящих приложений корпоративного уровня. В лучшем случае вы могли бы написать несколько простых приложений в грубоватом стиле, но как только вы перейдете к чему-то отдаленно сложному, я бы избегал этого, как чумы.

Честно говоря, хотя разработка на платформе force.com имеет потенциальные преимущества, для меня нельзя использовать платформу force.com для настоящих приложений корпоративного уровня. В лучшем случае вы могли бы написать несколько простых приложений в грубоватом стиле, но как только вы перейдете к чему-то отдаленно сложному, я бы избегал этого, как чумы.

Честно говоря, хотя разработка на платформе force.com имеет потенциальные преимущества, для меня нельзя использовать платформу force.com для настоящих приложений корпоративного уровня. В лучшем случае вы могли бы написать несколько простых приложений в грубом стиле, но как только вы перейдете к чему-то отдаленно сложному, я бы избегал этого, как чумы.

25
ответ дан 24 November 2019 в 07:11
поделиться

Я вижу, вы получили несколько ответов, но я хотел бы повторить, сколько времени уходит на то, чтобы обойти различные ограничения регулятора на платформе. Как бы мне ни нравилась платформа на определенных уровнях, я бы очень, очень, категорически не рекомендовал ее как общую платформу для разработки приложений. Если вы этого хотите, он отлично подходит как супер настраиваемое и расширяемое приложение CRM. Хотя их маркетинг является исключительным в продвижении идеи Force.com как общей платформы разработки, он еще даже отдаленно не близок.

Эффективность наличия стабильной платформы и избежания серьезных проблем с производительностью и стабильностью легко теряется в попытках обойти ограничения, на которые ссылаются люди. У платформы так много ограничений, что это сводит с ума. Эти ограничения не являются высокими лимитами, которые вы достигнете, когда у вас будет много пользователей, вы достигнете их почти сразу.

Хотя обычно существуют методы, позволяющие их обойти, очень сложно придумать стратегии, позволяющие их избежать, пока вы также пытаетесь разработать бизнес-логику своего реального приложения.

Чтобы дать вам простое представление о том, насколько среда неблагоприятна для разработчиков, возьмите «отсутствие среды отладки», о которой говорилось выше. Это еще хуже. В журналах отладки можно увидеть не более 20 последних запросов к серверу.Итак, по мере разработки внутри приложения вам необходимо создать «Новый» запрос отладки, выбрать свое имя, нажать «Сохранить», вернуться к своему приложению, обновить страницу, вернуться на вкладку отладки, попытаться найти запрос, который будет содержать ваш журнал отладки, нажмите «найти», чтобы найти текст, который вы ищете. Это как десять щелчков мышью, чтобы посмотреть результат отладки. Хотя это может показаться тривиальным, это просто пример того, как мало внимания и внимания уделяется опыту разработчика.

Все, что связано с платформой разработки, было придумано позже. Это замечательно тем, что есть, но по большей части это полная PITA. Если вы точно не знаете, что делаете (например, вы сертифицированы и очень хорошо разбираетесь в Apex), это легко займет у вас в 10-20 раз больше времени, чем в другой среде. что-то такое, что кажется смехотворно простым, если ты вообще сможешь добиться успеха.

Ограничения губернатора действительно настолько плохи. У вас есть комбинация различных ограничений (запросы к базе данных, возвращаемые строки, «операторы сценария», будущие вызовы, выноски и т. Д.), И вы должны точно знать , что вы делаете, чтобы их избежать. Например, если у вас есть вычисляемое сводное поле «формула» для объекта и у вас есть триггер для дочернего объекта, он выполнит триггеры родительского объекта и посчитает их в соответствии с вашими пределами. Подобные вещи не очевидны, пока вы не пройдете через болезненный процесс попыток и неудач.

Вы попробуете одно, чтобы обойти один предел, и достигнете другого в бесконечной игре «Ударьте предел».В процессе вам придется радикально изменить архитектуру всего приложения и подхода, а также переписать весь тестовый код. Вы должны иметь 75% покрытия тестового кода для развертывания в производственной среде, что на самом деле очень хорошо, но в сочетании со всеми другими ограничениями это очень обременительно. Вы фактически достигнете ограничений регулятора, написав свой тестовый код, который не подойдет в обычных пользовательских сценариях, но помешает вам достичь покрытия.

Это не говоря уже о целом ряде других проблем. Упаковка - это не то, что вы ожидаете. Вы не можете упаковать свое приложение и доставить его пользователям без значительного вмешательства пользователя и настройки со стороны администратора организации. AppExchange - это полная шутка, и они даже начали взимать 5 КБ только для того, чтобы ваше приложение появилось в списке. Импорт с помощью загрузчика данных - отстой, особенно если у вас есть триггеры. Вы не можете экспортировать все свои данные за один шаг, включая ваши отношения, таким образом, чтобы их можно было легко повторно импортировать в другую организацию за один шаг (например, в группу разработчиков). Вы можете обновлять песочницу только один раз в месяц из рабочей среды, без исключений, и вы не можете включать свои данные в обновление по умолчанию, если вы не позвонили руководителю своей учетной записи, чтобы разблокировать эту функцию. Вы не можете массово удалять данные в пользовательских объектах. Вы не можете изменить имена своих пакетов. Некоторые вещи могут занять несколько дней после того, как вы их запросили, например, резервное копирование данных перед развертыванием приложения, без отчета о ходе выполнения и отсутствия особого представления о том, когда именно был произведен экспорт. .Учитывая, что существуют проблемы синхронности данных при наличии взаимосвязей между данными, возникают серьезные проблемы целостности данных, поскольку не существует такой вещи, как «транзакция», которая может экспортировать множество объектов за один шаг. Вероятно, существуют некоторые коммерческие инструменты для облегчения некоторых из них, но они недоступны для обычных разработчиков, у которых может не быть огромного бюджета.

Все остальное, что здесь сказали другие люди, правда. Иногда для сохранения файла может потребоваться от пяти секунд до минуты.

Я не хочу быть таким негативным, потому что платформа в некотором роде очень крутая, и они пытаются делать в многопользовательской среде то, что никто другой не делает. Это очень инновационная среда и мощная на некоторых уровнях (на самом деле мне очень нравится VisualForce), но дайте ей еще год или два. Они сотрудничают с VMware, может быть, это даст разработчикам больше манежа, чем тюремной камеры для работы.

37
ответ дан 24 November 2019 в 07:11
поделиться

Учитывая, что Force.com является «облачной» платформой, его способность действовать как клиент для внешней службы, определенной WSDL, не впечатляет. См. http://force201.wordpress.com/2010/05/20/when-generate-from-wsdl-fails-hand-coding-web-service-calls/ , чтобы узнать, что у вас может быть делать.

6
ответ дан 24 November 2019 в 07:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: