This is an appropriate and timely thread for the community which, at large,
needs a heavy dose of pragmatism on a regular basis.

In my refactoring session, I cover some stuff that isn't really considered
patterns per se, but rather techniques for pulling out behaviour from
procedural code. I tell the audience that Extract Method and Extract Object
are probably the most useful and most used refactors they will use in their
application refactoring, but they won't sell patterns books. We then step
into some procedural code and pull out the behaviour.

These sorts of things aren't celebrated academically, nor do they sell
books. Maybe lacking a nice name and a concrete description really prevents
this from being talked about enough. I can say that both Extract Object and
Extract Method  provide a mechanism to get more object orientation out of
code.

DW




On Tue, Jun 24, 2008 at 2:26 PM, Peter Bell <[EMAIL PROTECTED]> wrote:

> Hi Dan,
> Well, I have something that just works for me because I question my
> methodology all the time! I do agree though that in all communities
> (including Java, Python, PHP, etc) OO (and design patterns like MVC) can
> become "cargo cult programming". That was really what my RAD OO presentation
> was about - examples of where breaking the conventional wisdom was an
> appropriate choice given the design forces for a given use case. I still
> love that I'm breaking MVC in two different ways and it's working quite
> nicely for my use case.
>
> Best Wishes,
> Peter
>
> On Jun 24, 2008, at 2:22 PM, Dan Vega wrote:
>
> At the same time you have something that just "works" for you Peter. I
> think what concerns me is on top of what Hal and even Adam said. People are
> doing things because that seems to be what everyone else is doing. If it
> works for you and you are productive and you don't find yourself questioning
> your methodology that is all that matters at the end of the day.
>
> Thank You
> Dan Vega
> [EMAIL PROTECTED]
> http://www.danvega.org
>
> On Tue, Jun 24, 2008 at 2:17 PM, Peter Bell <[EMAIL PROTECTED]>
> wrote:
>
>> I find the OO still helps for data mapping even in fairly simple, data
>> centtric apps. I love to be able to ask for User.FirstName, User.LastName,
>> Boss.Title and Auctions.TotalSpent and get that without having to write the
>> left outer joins and aggregates by hand. But maybe that's just beause I suck
>> at SQL :-)
>> Its also nice to be able to Order.getAssociated("Items") or
>> Author.getAssociated("Articles") - I find that stuff is just nice.
>>
>> Best Wishes,
>> Peter
>>
>>
>> On Jun 24, 2008, at 2:08 PM, Dan Vega wrote:
>>
>> I think Sean brings up a really great point here. In very data centric
>> applications (bunch of forms and reports) a light mvc pattern to help
>> seperate your model and view might be all you need. Maybe only certain
>> features will follow a pattern. Its your job to learn the patterns and as
>> Sean said always be mindful of them.
>>
>> "if you have a very data-centric app with almost
>> no "behavior" (i.e., it's almost pure data entry or pure reporting)
>> then OO might be a waste of time for you - or maybe only parts of the
>> app will benefit from OO, perhaps at a very high level in the service
>> layer."
>>
>> Thank You
>> Dan Vega
>> [EMAIL PROTECTED]
>> http://www.danvega.org
>>
>> On Tue, Jun 24, 2008 at 2:05 PM, Peter Bell <[EMAIL PROTECTED]>
>> wrote:
>>
>>> Thats why I tend to prefer code gen/frameworks that start with a
>>> description of the model and then gen any persistence required if your use
>>> case (read no DBA and a green field app) allows it.
>>> Best Wishes,
>>> Peter
>>>
>>>
>>> On Jun 24, 2008, at 1:49 PM, Brian Kotek wrote:
>>>
>>> This is caused in a large part by the code generators that introspect the
>>> database and generate CFCs. While those can be great time saving tools, the
>>> reality is that most people just take what gets generated and then run with
>>> it without thinking further about what they're doing.
>>>
>>> This is why we get people with 5 CFCs for every single table in their
>>> database, and why people think that just because they're following these
>>> "patterns" (bean, DAO, etc.) that they are doing OOP. If everything is
>>> data-centric and there is no actual behavior in the objects, then all one
>>> really has is a totally procedural, data-centric application that has been
>>> shoved into CFCs. It really ends up being the worst of both worlds: all the
>>> complexity of OO with none of the benefits.
>>>
>>> Hal is completely correct that we need to get away from the fixation on
>>> data or slavishly following patterns without really understanding the
>>> tradeoffs involved. Each pattern has consequences, and not all of them are
>>> good. The unfortunate reality is that truly groking OOP takes a long time
>>> and a major shift in mindset. There's no easy route to getting there, but
>>> one route that is probably among the most difficult is to blindly apply
>>> patterns or let code generators "do the work" without truly understanding
>>> what's going on or why these patterns exist.
>>>
>>> On Tue, Jun 24, 2008 at 1:38 PM, Dan Vega <[EMAIL PROTECTED]> wrote:
>>>
>>>> Adam,
>>>> I am sure you going to hear some slack for that but I am huge fan of
>>>> what you just said. In Hal Helm's presentation he noted that we really need
>>>> to quite being so data centric when thinking of OO development. MVC is a
>>>> great start for people to solve a specific problem but everyone really 
>>>> needs
>>>> to stop following everyone and thinking that 5 cfcs are OO development. I 
>>>> am
>>>> doing a lot of research at the moment about OO in other languages and hope
>>>> to share my findings soon.
>>>>
>>>> Thank You
>>>> Dan Vega
>>>> [EMAIL PROTECTED]
>>>> http://www.danvega.org
>>>>
>>>> On Tue, Jun 24, 2008 at 1:34 PM, Adam Haskell <[EMAIL PROTECTED]>
>>>> wrote:
>>>>
>>>>> At the end of the day we all need to stop talking about DOA and
>>>>> Gateways and all this Database crap as much as we do. Its old, trite, and
>>>>> quite honestly doesn't make a hill of beans difference most of the time.
>>>>> Honestly, ask yourself, "How many applications would I have been 
>>>>> completely
>>>>> screwed if I chose to split my gateway and DAO up, or vice versa?" If you
>>>>> have a use case for that please by all means share it I'd love to hear it.
>>>>> If all we are concerned about is DAO or gateway then chances are something
>>>>> else, much more important, is being overlooked (not pointing fingers at
>>>>> anyone here :) ). If all you are doing is a large reporting app chances 
>>>>> are
>>>>> you don't need to be doing complete OO anyway, yes I know sacrilege. Its
>>>>> true though ColdFusion is perfect for reporting without the heavy OO we 
>>>>> try
>>>>> to apply to it in too many cases. Thinking back through some of the
>>>>> reporting apps I did and shoehorning them into an OO architecture I can
>>>>> confidently say I should have stuck with a light version of MVC and moved
>>>>> on.
>>>>>
>>>>> Adam Haskell
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
>
>
> >
>


-- 
"Come to the edge, he said. They said: We are afraid. Come to the edge, he
said. They came. He pushed them and they flew."

Guillaume Apollinaire quotes

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CFCDev" 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/cfcdev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to