[ 
https://issues.apache.org/jira/browse/JAMES-3360?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17180464#comment-17180464
 ] 

David Leangen commented on JAMES-3360:
--------------------------------------

Thank you for commenting. I think your comment is kinda proving my point about 
the "technical solution" versus the "model". I will try to explain in my 
comments.
{quote}The change is mostly wording as you say and IMO not something to spend 
much time on it .
{quote}
Right, but a "model" is essentially "just wording". Words express concepts. 
Saying we don't care about the words is the same as saying that we don't care 
about the model.

Are you saying that you don't care about the model?
{quote}As long as it's documented how it works we can name it however we want.
{quote}
True. We could even call it an "apple" if we want. I'm not sure that helps with 
comprehension. The whole point of a model is to try to reduce cognitive 
dissonance. But again, if we don't care about models, then what you say is 
entirely correct.
{quote}I think the name comes from the repository pattern which is not far from 
what it does: [https://deviq.com/repository-pattern/]
{quote}
The repository pattern used by DDD is about persisting domain objects. It is 
not related to actual modeling of the domain. It is important not to confuse 
the two. "Repository" is a technical solution that DDD proposes "to help keep a 
domain focus" (cf p. 107 of "Domain Driven Design" by Eric Evans), while the 
"Directory" concept I am suggesting is an actual model of the domain (looking 
up users).
{quote}Directory is more of a read-only thing (not necessarily) while 
repository is read/write.
{quote}
I don't think so. Otherwise how would a directory get populated with user 
information?
{quote}[https://www.merriam-webster.com/dictionary/repository]
{quote}
The definition I see here is: "a place, room, or container where something is 
deposited or stored".

I think this actually proves my point. We do not store users in a room. Yes, we 
store user **data**. So repository is for storing data, i.e. a technical 
solution if the concept of "user" is actually important in the email domain, 
which I believe it is.

If I am mistaken, please let me know and I will be the first to close this 
issue.

So do we only care about the technical solution to the problem, and don't give 
a rat's a** about the model (assuming "users" are part of the model)? Because 
if we actually care about modeling, then we need to be able to decouple our 
thinking from the technical solution of the model.

> Change "User Repository" to "User Directory"
> --------------------------------------------
>
>                 Key: JAMES-3360
>                 URL: https://issues.apache.org/jira/browse/JAMES-3360
>             Project: James Server
>          Issue Type: Improvement
>            Reporter: David Leangen
>            Priority: Major
>
> I wonder if there isn't a wording problem here.
> I understand that the idea is to have a place to store user data. However, 
> the naming looks at the problem from a purely technical point of view. A 
> "Repository" by definition is a place to "put" something. For example, in the 
> real world, a document repository is an actual place to put documents.
> The wording suggests that we have some place where we put people, which seems 
> very strange to me if we correspond the idea to the real world. It creates a 
> very strange mental model for me.
> I think the concept that should be modeled here is more along the lines of a 
> "Directory". We have a kind of index that gives useful information about how 
> to locate users. It is not a place where we take people and lock them up. 
> Rather, it is a list of information about people. Does that make sense?
> [Here is a 
> definition|https://dictionary.cambridge.org/dictionary/english/directory] we 
> could use:
> {quote}a list of telephone numbers, names, addresses, or other information
> {quote}
> Note that if the Repository is never exposed to anybody except implementors, 
> and it really is just a place to put data, then this issue would not bother 
> me. However, it is my understanding from writing the new documents that this 
> concept is actually exposed, so I think the concept needs to be fixed.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to