Использовать MongoDB и Eve для быстрой разработки прототипа iOS?

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

Поскольку мне всегда требуется много времени, чтобы настроить базу данных SQL и написать приложение для сервера (RESTful API), я начал читать возможности баз данных NoSQL и их встроенные возможности для связи/синхронизации с удаленным сервером. Что явно уменьшит работу, необходимую для серверной части, насколько я понимаю эти вещи.

Теперь я начал читать MongoDB в дополнение к Eve (Python), который расширяет HTTP REST API, который предлагает MongoDB. Поскольку их RESTful API предлагает все необходимое для тестирования прототипа, я задался вопросом, зачем мне вообще писать свой собственный REST API, если я могу получить все, что мне нужно, от Eve API?

Каковы недостатки использования Eve и MongoDB? Каковы преимущества написания моего собственного RESTful API для моего экземпляра MongoDB?!


person Evils    schedule 29.01.2014    source источник


Ответы (2)


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

Если вы просто строите PoC, то часто не имеет значения, какова специфика конструкции, если только вам также не нужно проверять архитектурные решения. Например, может быть легко связать простую модель документа с вашим iOS-приложением, но добавить уровень безопасности в существующую структуру может быть сложно (я говорю в общем). Или что из-за того, что модели данных не уделяется достаточного внимания, позже становится сложно моделировать базу данных в реляционной базе данных, или что даже при использовании той же технологии, которая использовалась в PoC, она не будет хорошо масштабироваться. под нагрузкой).

Создав или расширив свой собственный Restful API, вы получите полный контроль над всем процессом. Сегодня многие веб-платформы делают создание спокойного API вполне естественным, так что разработчик может сосредоточиться на логике приложения, а не на архитектуре. Таким образом, вам может не понадобиться полное комплексное инфраструктурное решение.

Фреймворки часто самоуверенны, часто не в соответствии с какой-либо официальной спецификацией. После того, как вы переместили свой код за пределы PoC, вам нужно решить, каковы риски для производственной системы. Сколько там движущихся частей и виджетов? Что если что-то пойдет не так? Сможете ли вы понять взаимодействие? Доступна ли поддержка платформы? Активно ли поддерживаются библиотеки и являются ли проблемы в их списке поддержки длинными, решаемыми и т. д.?

Проблема использования базы данных, ориентированной на документы, такой как MongoDb или CouchDb, будет заключаться в передаче технологии, если вы позже решите использовать альтернативную платформу базы данных. Если вам нужно настроить, подумайте, насколько переплетены ваша бизнес-логика и код базы данных с различными платформами, которые вы использовали. Это та же проблема, если вы запустите СУБД и попытаетесь переключиться на базу данных документов. Преобразование модели данных между ними может быть очень сложным независимо от отправной точки.

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

Eve имеет небольшой список проблем, часто обновляется и имеет хорошую документацию. Окончательное решение зависит от вас.

person WiredPrairie    schedule 29.01.2014

[Отказ от ответственности: я автор проекта.]

Одним из явных преимуществ Eve является то, что вы получаете множество функций, которые работают «из коробки», что, по моему мнению, делает его идеальным для быстрого прототипирования и PoC. Вы можете быстро приступить к работе и изменить схему/поведение API за минуту, просто обновив settings.py (если вы запустите приложение в режиме отладки, оно будет перезапускаться при каждом сохранении). Вам даже не нужно создавать базу данных, так как она будет создана для вас, если она отсутствует.

На самом деле у нас есть экземпляр Heroku, который делает именно это, и мы все время каннибализируем его, добавляя новые конечные точки и поля документа по мере необходимости, используя бесплатный экземпляр MongoHQ (или MongoLab, в данный момент не уверен) в качестве одноразового хранилища данных (просто очистите db по мере необходимости, но в большинстве случаев нам даже не нужно этого делать благодаря бессхемному дизайну mongo.)

Само собой разумеется, не запускайте приложение в режиме отладки и не позволяйте ему создавать для вас базу данных, если вы собираетесь использовать его в производстве ;-)

PS: для протокола, вся причина, по которой Eve была создана в первую очередь, заключалась в том, чтобы служить веб-сервисом для наших приложений iOS/Android.

person Nicola Iarocci    schedule 29.01.2014
comment
Дело в том, что когда я наткнулся на Eve-Python, мне было интересно, почему люди до сих пор пишут свои собственные REST API, поскольку обычно это огромная куча работы. И после того, как я увидел много разных вариантов, таких как Couchbase Lite, мне стало интересно, действительно ли это предназначено для использования как таковое. Большое спасибо за прояснение этого.! - person Evils; 29.01.2014