Лучшие практики для разработки приложений с Neo4J - PullRequest
0 голосов
/ 22 ноября 2018

Недавно я наткнулся на приложение, которое использует NEO4j в качестве бэкэнда.Из моего опыта работы с SQL и другими базами данных на основе значений ключей я понял (что можно уточнить), что другие базы данных хранят данные, и ваше приложение получает информацию, а с помощью NEO4J вы сохраняете эту информацию.Это означает, что логика получения информации уже зафиксирована в модели NEO4J.Я не могу обдумать это, потому что теперь у меня не может быть логики, которую можно составить, и, самое главное, что-то, что можно проверить с помощью модульных тестов.Конечно, я могу провести тесты на уровне компонентов с использованием встроенного neo4j, но это не то же самое.Может кто-нибудь помочь мне понять философию / методологию разработки приложений с NEO4J.

1 Ответ

0 голосов
/ 23 ноября 2018

... другие базы данных хранят данные, и ваше приложение получает информацию, в то время как с NEO4J вы сохраняете информацию.

Хммм .... Определите данные иопределить информация .В основном это так: данные - это то, что требует дальнейшей обработки, чтобы стать информацией (то есть чем-то информативным - чем-то, из чего можно сделать какие-то выводы или выводы).

В любом случае, сомневайтесь, что это как-то связано с базами данных Graph противреляционные / агрегированные базы данных.База данных, как следует из названия, хранит данные.

Это означает, что логика получения информации уже зафиксирована в модели NEO4J.

I'mне уверен, что вы подразумеваете под "логикой ... уже захвачен".Некоторые запросы гораздо проще с Neo + Cypher, чем с скажем SQL;например, «Найти всех друзей моих друзей, которые живут в Берлине», но я вряд ли связал бы это с «логикой».

У меня не может быть логики, которая может быть составлена, и, самое главное, что-то, что может бытьпроверено с помощью модульных тестов.

Что вы подразумеваете под «логикой, которую можно составить»?И я боюсь, что модульные тесты не имеют к этому никакого отношения - нет логики для тестирования, если вы говорите о графе и других базах данных.

Может кто-нибудь, пожалуйста, помогите мне понять философию / методологию разработки приложений с NEO4J.

Там действительно не так много.Neo4J - это база данных, как и любая другая база данных, только в том, что она использует модель, отличную от реляционной / агрегированной базы данных.

Чтобы выделить две ее сильные стороны:

  • Нет объединений - это проблема с реляционными / агрегатными базами данных, особенно со сложными запросами.По сути, почти во всех системах используется модель данных, представляющая собой график (для этого вам нужно только одно отношение «многие ко многим» в вашей модели данных), а отказ от использования базы данных «граф» является формой уменьшения размерности.Причины, по которым реляционные базы данных преобладали в течение стольких лет, - это не что иное, как набор исторических совпадений.
  • Упрощенная миграция БД - и это база данных без схемы.Вы воспользовались теми же преимуществами с любой другой базой данных без схемы.

Я настоятельно рекомендую вам прочитать приложение 'NOSQL Overview' из бесплатной Базы данных графиков .Он сосредоточен на многих из этих пунктов.

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