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

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

Thank you for the clarification.
{quote}bq. UserRepository is an interface that other people implement when they 
store users in other places.
{quote}
Yes, likely a "UserRepository" is still a useful pattern to use. We still need 
to store the data somewhere, right?

So overall what I understand you are saying is: you don't think that "user" is 
a domain concept: it is only relevant on the technical level. Therefore, what 
we call it is not so important. (If "user" is not a domain concept, then I 
would agree with your assessment.)

You also seem to imply that you do not subscribe to the idea of maintaining 
consistency (i.e. you don't mind using one term in the user docs, and a 
different term in the code). (I do not agree with this approach. I think we 
need consistency throughout the entire stack.)

Therefore, you do not see the value in making the change, especially because 
there are costs (and the cost of breaking the API is high). (My decision 
depends on whether or not "user" is considered as a domain concept or not. If 
it is, then the code ought to reflect the domain, and it must be incrementally 
improved, even at the cost of breaking the current API. If not, then I agree 
that we don't need the trouble.)

So if we could have some consensus around this point (is "user" a domain 
concept or not), if we agree that it is not, then I will reconsider how to 
write the documentation and will close this issue.

> 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