Почему я должен выбирать веб-сервис, а не добавлять логику в мобильный код?Сеть Salesforce против iOS-приложения - PullRequest
0 голосов
/ 17 декабря 2018

Я работаю с командой, в которой мобильное приложение интегрировано с Salesforce, выступающей в качестве бэкэнда.
Я работаю в мобильной команде.

Я продолжаю спорить с командой Salesforce о том, почемуопределенная логика должна быть написана на SF против мобильного.

Мой обычный аргумент состоит в том, что сборка мобильного приложения должна быть легкой, что тяжелая логическая обработка должна быть на внутренней стороне, что нам нужно держать код более масштабируемым и управляемым из внутренней части, чтобы мы не заканчивалисделать несколько выпусков мобильных приложений.Последняя часть согласуется с тем, что пользователям приходится обновлять приложение каждый раз, когда меняется мобильный код, по сравнению с отсутствием действий от конечного пользователя (с небольшим временем простоя в нерабочие часы), если оно является внутренним обновлением.

Пример сегодняшнего дня:
У нас есть что-то, что называется методом доставки для функциональности нашего приложения.Для этого есть два источника данных.Один из них для случая, когда пользователь выбирает условие A, которое является немного сложным и нуждается в веб-службе REST для мобильных устройств, чтобы получить методы доставки.Другой случай, когда пользователь выбирает условие B, и он простой, и методы доставки могут быть доступны с мобильного телефона с помощью запроса SOQL.
Однако, в обоих случаях вывод одинаковый, точный видданных .

То, что я предложил, было то, что SF обрабатывает оба условия на их стороне как часть одного веб-сервиса, используя аргумент, предоставленный мобильным.
Согласовано условие B, используется только запрос SOQL, с точки зрения производительности - не будет делатьбольшая разница.То же самое, если сделать это из Mobile / Salesforce в рамках веб-сервиса.Однако я чувствую, что это сделает код чище и содержательнее, сократит количество строк кода в целом.

Сотрудники SF просят мобильный телефон позвонить в веб-сервис, если его условие A, и сделать SOQL, когда это условие B.
Данные с обоих устройств должны быть проанализированы на мобильном телефоне отдельно, что означает, чтогораздо больше кода на мобильных устройствах для обработки и обработки точного вида данных - в два раза.
Их аргумент в пользу этого заключается в том, что им приходится писать больше тестовых классов для обработки этого.Правильно ли учитывать экзамен при принятии таких решений?Я не понимаю.

Нужна помощь и руководство для лучших практик.Некоторая документация, которая поможет принять эти решения.

1 Ответ

0 голосов
/ 17 декабря 2018

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

  • Вообще говоря, развертывать исправления / обновления в коде сервера проще, чем в коде клиента, особенно если вам необходимо учитывать циклы утверждения в App Store.
  • Также проще контролировать среду безопасности на сервере.Если вы принимаете решения, которые могут быть взломаны / подделаны / воспроизведены на клиенте, вам все равно придется проверить их на стороне сервера, чтобы убедиться, что они действительны для текущего пользователя / контекста, так почему бы не поместить их впервое место?
...