[Catalyst] ways to do stuff and why

leonard.a.jaffe at jpmchase.com leonard.a.jaffe at jpmchase.com
Fri Aug 18 19:15:12 CEST 2006


------------------------------------------------------------------------------
Leonard A. Jaffe      (614)213-4283
JP Morgan Chase,   DTS Instrumentation Services
leonard.a.jaffe at jpmchase.com




Matt S Trout <dbix-class at trout.me.uk> on  08/18/2006 12:33 PM:
> Eeeeek, not at all. The model should encapsulate *all* business logic 
and 
> similar - it should be a model of the domain with which the app 
interacts. The 
> Controller should be as thin a layer as possible whose sole purpose is 
to 
> arbitrate between the model's view of reality and the user interface 
(i.e. the 
> view)

I disagree.

In an MVC sense:
The model is the data.
The controller is the business logic. 
The controller receives commands from the user interface, and manipulates 
the models.
The models are then displayed via views

The model insulates the controller from the data storage/retrieval 
mechanism.

The controller should be useable via any interface (command line, gui, 
web).

If you want to talk about object composition...

I like for there to be one set of classes that represent the data, 
and encapsulate persistence, like (DBIC, CDBI, homegrown, etc).

I like a layer around those,  representing the domain objects
(contracts, users, invoices) which implement the manipulation of the 
models

Then I like objects that encapsulate the business processes, to manipulate 

the domain objects (new invoice, delete user) . I like objects, but
sometimes I just write functions, because object purists end up with 
Smalltalk,
and then they tell the 3 object to add itself to another three object, and 
at
that point, I'm curled up in the fetal position whimpering "primitives...I
want primitives"

It can all get very messy.  I strive for some kind of workable 
consistency, without
becoming dogmatic.


Len.


-----------------------------------------
This transmission may contain information that is privileged,
confidential, legally privileged, and/or exempt from disclosure
under applicable law.  If you are not the intended recipient, you
are hereby notified that any disclosure, copying, distribution, or
use of the information contained herein (including any reliance
thereon) is STRICTLY PROHIBITED.  Although this transmission and
any attachments are believed to be free of any virus or other
defect that might affect any computer system into which it is
received and opened, it is the responsibility of the recipient to
ensure that it is virus free and no responsibility is accepted by
JPMorgan Chase & Co., its subsidiaries and affiliates, as
applicable, for any loss or damage arising in any way from its use.
If you received this transmission in error, please immediately
contact the sender and destroy the material in its entirety,
whether in electronic or hard copy format. Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.rawmode.org/pipermail/catalyst/attachments/20060818/281b84c2/attachment.htm 


More information about the Catalyst mailing list