С ростом NoSQL, в наши дни более распространено иметь веб-приложение без какой-либо модели? - PullRequest
0 голосов
/ 05 декабря 2010

С ростом NoSQL в наши дни более распространено иметь веб-приложение без какой-либо модели и обрабатывать все в контроллере? Это плохой шаблон в веб-разработке? Почему мы должны абстрагировать нашу функцию, связанную с базой данных, в модель, когда достаточно просто получить данные в nosql?

Примечание Я не спрашиваю, является ли RDBMS / SQL не релевантным, потому что это только запустит flamwar.

Ответы [ 3 ]

4 голосов
/ 05 декабря 2010

Я не думаю, что «NoSQL» имеет какое-либо отношение к «без модели».

С одной стороны, MVC возникла в мире Smalltalk для настольных приложений, задолго до текущей архитектуры веб-сервера (или дажесама сеть) существовала.Большинство написанных мною приложений используют MVC (включая M), даже те, которые не используют СУБД (R или иным образом).

Для другого, некоторые виды «NoSQL» явно имеют модель.База данных объектов может выглядеть для кода приложения почти так же, как интерфейс, который пытается представить ваша «SQL RDBMS + ORM», но без всех странных причуд, явного отображения и т. Д.

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

0 голосов
/ 05 декабря 2010

Усилия NoSQL связаны с созданием постоянного уровня, который масштабируется с помощью современных приложений, использующих ненормализованные структуры данных для быстрого чтения и записи, и форматов данных, таких как JSON, стандартный формат, используемый системами на основе ajax. Иногда бывает так, что реляционные базы данных на основе транзакций плохо масштабируются, но чаще всего низкая производительность напрямую связана с плохим моделированием данных, плохим созданием запросов и плохим планированием.

Никакой постоянный слой не должен иметь ничего общего с вашей моделью домена. Используя слой абстракции данных, вы преобразуете данные, содержащиеся в ваших объектах, в схему, реализованную в вашем хранилище данных. Затем вы будете использовать тот же DAL для чтения данных из вашего хранилища данных, преобразования и загрузки их в ваши объекты.

Ваше хранилище данных может быть файлами XML, СУБД, подобной SQL Server, или реализацией NoSQL, такой как CouchDB. Это не имеет значения.

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

0 голосов
/ 05 декабря 2010

Базы данных SQL по-прежнему в порядке вещей.Но становится все более распространенным использование неструктурированных магазинов.Базы данных NoSQL хорошо подходят для некоторых веб-приложений, но не обязательно для всех.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...