Yarko, Thank you for the detailed explanation. :-) Joseph
On Mar 24, 12:22 pm, Yarko Tymciurak <yark...@gmail.com> wrote: > Let's look at what is meant by the term "business logic" ---> this is what > implementspart of a solution for a problem statement. If we were talking > 4-tier model, then > we would say business logic and engineering logic; it > is the implementation in language of the solution/problem space, and just a > further > decomposition --- still implementation logic, still about the solution. > > With me so far? > > Now - what is presentation? It is how something is shown to the user. > > Does that require logic? Yes, it certainly can (consider javascript, etc.). > > What differentiates the logic of presentation form the logic of business? > The concern, the > type of processing. Is there some point at the boundary between these two > where it might be fuzzy? Yes. How do you resolve that? You just make > a choice, and do it however you choose. You'll probably do it differntly > than > I would. In the details, there's rarely a "right" or "wrong" - there's a > better for this, > or better for that. > > Back to this question about where do you define forms. > > What is a form? Is it strictly a presentation statement? Or is it a > statement of > required interaction with the user? Look: > > Business logic: "we need name, address, phone to take an order" > Engineering logic" "we need input from user to collect name, address, > phone" > Presentation logic: "we want Name to be above address, address above phone > - all on one form." > > Business logic: "the customer may save his information with us, but that is > not required for an order" > Engineering logic: "persist name, address, and phone if requested (e.g. > offer request to save)" > Presentation: "Checkbox for "save my info"" > > Now - where do you define form? > > It's a design decision - YOU decide. > > But some things are rather clear: validation logic probably should not be > part of the presentation (although there may be valid reasons for this in > your application) > > Defining color of form probably does not belong in the controller (better > left somewhere else). > > Does it make sense to separate basic definition of an HTML form from the > controller? That depends - are you going to allow input through PDF forms? > csv? Then maybe it makes sense to separate this. If you're a web-input > only application, then maybe not. > > By now you get the idea: some questions you can ask over and over, and get > guidelines, and reasons behind them (e.g. color of form), but _most_ of > these details are design decisions. Part of these are made or encouraged a > certain way by the design decisions in the framework you choose to use; > part of these will always be up to you, the software and web designer - > what makes sense for one application will better be done another way; many > things won't matter all that much... until you use them long enough, and > then you will change your mind (e.g. refactor). > > mvc is just another way to say you've split your application into a data > layer, a business layer, and a presentation layer - it's a separation of > concerns; it serves to reduce design coupling. > > The goal is a maintainable and extensible app. > > The devil is in the details. > > Questions of "truly MVC" are like "truly agile" or "truly capitalist / > market economy" or "truly social" --- as long as you don't loose the reasons > behind these, why these abstractions (shortcuts to concepts) came to be in > the first place, you're ok (otherwise you get into trouble): maintainable, > extensible; frequent feedback; efficient, self-regulating allocation of > resources in society; social responsibility to people in your community. > > :-) > > - Yarko > > > > > > On Tue, Mar 24, 2009 at 1:37 AM, Joseph Jude <ceph...@gmail.com> wrote: > > > All, > > Just a question on the best practice - in terms of development & > > continuous maintenance. web2py (like django) allows to define forms in > > controller itself. And it allows having 'business logic' embedded in > > views too. To bring out the application quickly, such mixing is fine. > > But what about long term maintenance and also to call the application > > truly MVC? What are your thoughts basis of your experience. > > > Thank you for sharing your thoughts on this, > > Joseph --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---