Although it may sound a useless discussion it has been proven ( at least to our organization ) that this kind of worry is healthy specially in the long term.
I can enumerate the following advantages in using good packages for classes:
- It breaks the complexity of hundreds of classes in blocs composed by few classes just like folders for files.
The fully qualified nameFinance.Sevices.DebtManagement tell you what the class actually does.
- It organizes the logic architecture of your software. This is specially useful for layered architecture where the classes are organized according to the class role.
- Packages with vagues names
- Too much debate about packages
In the other hand, organizing classes in packages should not give rise to a long debate. If a class was placed in the wrong package, a code refactoring can solve the problem later.
Thus the package Finance has all classes that compounds a financial application including its UI layer, services and the problem domain classes.