I have a basic question--apologies if this not the right forum. But I thought this question might be useful to others as well as myself.
I want to design Web Apps on Spring more quickly and cleanly than I currently do. I have programmed in
Java, C++ and other OO languages for 10 years. I have used several frameworks, and mapped objects to databases, and have designed databases themselves.
But when I turn to design webapps, I sometimes find myself confused. It seems that online use-cases are most naturally described in terms not of objects, but of WEB PAGES AND THEIR FLOW. "The user gets a greeting page." "The user hits return and is served a Login Page." "On the Login Page, the user enters her name, address(es), and ID.", and and so on. The flow of web-pages, not business objects, or persisted objects, would seem to me the first thing of design.
Where can I find a clear methodology that proceeds from web page flow, rather than object-level design? Or least page-flow in conjunction with OOA/OOD? Spring WebFlow looks interesting as a tool--but are their design methodologies described elsewhere?
At stake are several things. For example, the definition of Controller responsibilities. How many would be used in the above example? Perhaps a GreetingController and a LoginController? How are command objects defined? Command objects or form objects are by no means business objects, it seems ot me.**
1. Tell me if I am entirely wrong about this.
or
2. Any references to books, webpages, blogs, etc. on web-page driven would be greatly appreciated.
Opinions of any kind are most welcome!
**not to distract with trivia, but this issues seems to me to give rise to inconsistencies in the Spring online documentation. A command object, if I remember correctly, is, in one example, called "Person." Corresponding form actions in html or
jsp pages are, in this example, labeled "Person". References are recurrently made by disjunction--for example, "a command or form object," or "command/form object." That dichotomy seems problematic. "Person" is not a command. Nor, in my above example, is the user's Login data (for example, 1 name and 2 addresses), a business object. This is not just a matter of semantics. As Robert Martin has pointed out, there are difficulties with the Command-Pattern falling short of purely object-oriented design. Which is fine by me, but then I would prefer that all html actions, and associated Commands, be just that--actions--command: "displayLoginData", "DisplayLoginCommand," etc.
Thanks in advance!