I would suggest breaking down his statement further and fill in the blanks
to gain even better insight into his conjecture.

 "it‘s basically a bunch of nodes where you just blob your attributes.‘
Worse than that, to wrap objects around it, you have to have them explicitly
incorporate their node class, which is ugly, smelly, violates every law of
separation of concerns and logical vs. physical models."


"it's" - Neo4j

"to wrap objects around IT" - what is the IT that he is referring to ?

"you have to have THEM explicitly incorporate THEIR node class" - what is
THEM / THEIR really mean for Neo4j here ?

"law of separation of concerns" - what and where are we JOINING that should
be SEPARATING , is it only the Domain objects ?


>From outside looking in, I have seen others not complete their Domain Model
as needed with Neo4j, and also make it entirely TOO SIMPLE.  Why ?  Because
they might be new to graph databases, or their Domain Model really IS NOT
complete yet and they need help from others to assist with putting together
an elegant Domain Model to begin with.  Being able to easily wire up a
Domain Model is the primary reason they were attracted to graph databases in
the first place !... to build it out without resorting to defining a rigid
schema (a SQL table mantra).  But many need help in contorting their Domain
Model over time.  To me, Neo4j is already wide open enough to handle that
contortion and the beauty of Neo4j & graph databases in general.

Folks just need better much more detailed Domain Model examples than what is
available, that would help incredibly so, since many folks have a complex
Domain Model to begin with (they just do not realize it yet) and they are
hoping Neo4j will help them quickly wire it up, stretch it out when needed,
and analyze the hell out of it when the time comes, and stretch it out even
more as they continue to fill it up and expand their Domain Model.  A bottom
up approach (and I mean really BOTTOM) is the best practice, but it does
take thought and research in finding where that generic bottom is at.  A
"Friend" - what is a Friend, what attributes does a Friend have ? Which ones
do I care about now and can worry about later ?  A "Stock Issuing Company",
do I need to think of my relationships first for those, or should I start
with attributes ?  Will those attributes be shared with others ?  Do I care
about it now at this early beginning of my Domain Model, or can I wait on
this ?  Should I start with attributes (properties) always, and leave
relationships alone until the very end, when I build a Domain Model ? (the
answer to that last question is YES, because Neo4j actually DOES allow you
to)

> He attacks our pattern of building domain models with Neo4j, calling it
> > "ugly", "smelly" and "in violation of every law of separation of concerns
> > and logical vs. physical models". Is he right? My feeling is that he is
> > brain washed with too many so called "best practices", but Neo4j has been
> my
> > main model for a long time now, my perspective is likely skewed. I'd like
> to
> > hear your thoughts.
>

Your main model IS NOT Neo4j.  That is your main database that "holds" your
Domain Model.  And if Neo4j is not really doing this from top to bottom,
then I would agree with Richard that the Neo4j infrastructure is not in the
best place right now and might need more work.

-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to