My pleasure (really, literally! ;-)

On Tue, Mar 24, 2009 at 3:36 AM, Joseph Jude <[email protected]> wrote:

>
> Yarko,
> Thank you for the detailed explanation. :-)
>
> Joseph
>
> On Mar 24, 12:22 pm, Yarko Tymciurak <[email protected]> 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 <[email protected]> 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 [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to