Best practice for dub registry package and module names
Vijay Nayar
madric at gmail.com
Wed Sep 7 06:12:58 UTC 2022
On Sunday, 4 September 2022 at 01:52:11 UTC, Ali Çehreli wrote:
> Let's say I have three modules that work together, which I want
> to register on dub: A, B, and C.
>
Here I would take inspiration from the Java world, where a
"domain" is used per project. Typically this domain is written
from the most general part of the domain to the most specific, so
"web.example.com" becomes "com.example.web".
For example:
```
import org.springframework.boot.SpringApplication;
```
So you could have: com.alicorp.a, com.alicorp.b, and com.alicorp.c
That being said, D is not Java, thus things like the company
top-level domain could be left out and you end up with alicorp.a,
alicorp.b, etc.
Thus the problem of name collision goes away until someone else
tries to take the name "alicorp". I believe this is why Java uses
the full domain, because unique domain ownership is already a
solved problem, they just ride along.
Packages like `vibe` follow a similar mechanism, where all the
useful modules and packages are nested under a single package.
More information about the Digitalmars-d-learn
mailing list