2014-01-29 3 views
2

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

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

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

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

ответ

2

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

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

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

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

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

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

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

2

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

Одно неоспоримое преимущество Ева является то, что вы получите много возможностей, которые просто работают из коробки, которую я считаю, делает его идеальным для быстрого прототипирования и ЧПК. Вы можете быстро и быстро работать и изменить свою схему/поведение API за минуту, просто обновив settings.py (если вы запустите приложение в режиме отладки, он будет перезагружаться при каждом сохранении). Вам даже не нужно создавать базу данных, поскольку она будет создана для вас, если она отсутствует.

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

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

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

+0

Дело в том, что когда я наткнулся на Eve-Python, мне было интересно, почему люди все еще пишут свой собственный REST Apis, поскольку это, как правило, огромная куча работы. И после того, как я увидел много разных опций, таких как Couchbase Lite, мне было интересно, действительно ли это предназначено для использования как таковое. Большое спасибо за это. – Evils

Смежные вопросы