Почему O / R Mappers являются предпочтительным подходом для постоянных пользователей DDD? - PullRequest
2 голосов
/ 03 сентября 2010

Почему не так много историй DDD, в которых для сохранения настойчивости используются новые инструменты nosql, такие как db4o и Cassandra.

На мой взгляд, усилия, связанные с отображением O / R, кажутся слишком большими для возвращаемого значения. Возможность представлять отчеты сразу из базы данных - главное преимущество, которое я вижу для своих проектов.

С другой стороны, db4o кажется почти be Шаблон репозитория и концепция Cassandra «Семейства столбцов и SuperColumns», кажется, идеально подходят для определения агрегатов и их объектов значений (масштабируемость была бы просто дополнительным бонусом ). Тем не менее, большинство онлайн-ресурсов, в которых приводятся примеры проектов DDD, по умолчанию всегда используют [N] Hibernate.

У меня нет достаточно времени / ресурсов, чтобы рисковать, пробуя эти новые инструменты в моих проектах, что заставляет меня выбрать очень хорошо документированный подход к постоянству. Возможно ли, что отображение O / R остается нормой только потому, что люди боятся отказаться от столь надежного SQL? Должен ли я совершить прыжок?

Ответы [ 2 ]

2 голосов
/ 03 сентября 2010

Из того, что я видел, DDD наиболее распространен в долгоживущих бизнес-ориентированных кодах. Это та область, в которой мышление баз данных SQL господствует почти до сих пор. Некоторые факторы, которые играют в это:

  • Людям, пишущим долгоживущие кодовые базы, обычно нравятся технологии, которые существуют уже давно.
  • Крупные бизнес-ориентированные проекты часто реализуются в крупных компаниях, которые, естественно, являются консервативными.
  • Если вы начинаете свой проект с какими-либо существующими данными, он, скорее всего, будет находиться в базе данных SQL, и существующий код, вероятно, связан с этим.
  • Большинство бизнес-проектов не очень чувствительны к производительности, по крайней мере не так, как чисто технические или ориентированные на потребителя усилия.

И я уверен, что есть и другие.

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

0 голосов
/ 03 сентября 2010

Реляционные базы данных предназначены для конкретной категории вариантов использования, особенно в бизнес-приложениях.Как таковые, они имеют определенные возможности, которые ценны в этих сценариях.Поиск данных часто сопровождается сложным поиском и анализом.Если вы используете NoSql или объектные базы данных, вы можете отказаться от некоторых из этих возможностей в пользу других, таких как обработка огромных распределенных наборов данных, задача, в которой базы данных NoSQL обычно превосходят.

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

...