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

David Leangen commented on JAMES-3259:
--------------------------------------

However it gets done, I am 100% for a reorganization.

As you probably know, I have been trying to understand James. The current code 
base is not really helpful in that regard.

Perhaps I have fallen too much in love with DDD concepts, but I believe that 
the "language" we use should be "ubiquitious". In other words, the way we talk 
about James should match the documentation, which should match the code 
structure, the objects, the services etc.

We should **never** use technical jargon if it does not match the "real world".

We should aim to be consistent.

In an ideal world, I should be able to look at the code and almost immediately 
understand what is going on. So yeah... this will be a huuuuuge task. :)

> Reorganize source code
> ----------------------
>
>                 Key: JAMES-3259
>                 URL: https://issues.apache.org/jira/browse/JAMES-3259
>             Project: James Server
>          Issue Type: Improvement
>    Affects Versions: 3.5.0
>            Reporter: Matthieu Baechler
>            Priority: Major
>
> I want to suggest a new organization of the source-code (I won't handle every 
> concerns but some important ones I have about the current state).
> I would like the first level to be:
> {code}
> core (domain code)
> data (that we should rename)
> docs
> extensions (containing mdn and third-party for example)
> infrastructure (containing backends-common, event-sourcing, json, metrics)
> mailbox
> mailet
> products (containing server/container/cli 
> server/container/guice/cassandra-rabbitmq-guice)
> protocols
> server
> testing (containing mpt)
> {code}
> I'm not sure it's the best organization but:
> * it allows to see easily what james most important concepts are
> * put technical details into a common sub-tree
> * have products a top level thing instead of a hidden one
> * group what we think are extensions somewhere
> * put functional testing sources somewhere that is easy to find (because a 
> lot of people starts by reading functional tests)
> What do you think?



--
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