Hello...

how do you organize the packages/folders in your projects? (I mean other
than pages, components, mixins, services).

Due to tapestry force us to have separate pakages for pages, components,
etc... I guess we cannot (or shouldn't) organize the whole root package by
"features" of business layer. For example, for "employee" feature, I cannot
put a EmployeeGridDataSource in the page package with the pages of that
feature, because it is not a page.

In the project I'm developing now I have:

pages --> organized by "features" of the business layer
components
...
util
     encoders ---> date encoder, search criteria encoder, etc
     grid ---> for grid data sources and related classes (for example
pagination)
     select --> for custom implementations of certain select models
     viewobjects --> for example classes for store form fields, and classes
that convert them to dto objects for the business layer
     ...
     WebUtils.java --> static methods for general utilities concerned with
web layer
base
     AbstractBasePage.java --> pages inherit from it (attributes/services
like log, messages, etc)


Do you think this approach is ok?
Do you have any best practices or rules to organize better the project?

Inside each util subfolder, do you organize the classes by "feature"? Now I
don't, for example I have all the encoders mixed in the ecoder folder.

Thank you.

Reply via email to