Thanks for this advice Mike. I'd forgotten about the cfcdev mailing
list, I'll go sign up for that now. Fortunately for me, this site is
not a high traffic site. These are back end business process tools, so
I'm really refactoring to increase the sensibility and maintainability
of the code. I will hopefully also be getting some other developer
resources on this project in the future and they will likely be either
C# or Java guys, so moving to a more OO framework will make it easier
to bring them on I think.

Judah

On Tue, Oct 21, 2008 at 4:29 PM, Mike Chabot <[EMAIL PROTECTED]> wrote:
> This is a very big topic and you might get a more in-depth response if
> you posted your question on the cfcdev list, which focuses on CFCs and
> OOP.
>
> A word of caution though if you are approaching OOP for the first time
> is that CF isn't an ideal OOP language. Your rewrite might end up
> doing more harm than good if you aren't careful, especially if it is a
> high-traffic site. The code I write in Java and .NET isn't code that I
> would write in ColdFusion. In my experience, ColdFusion suffers
> significant performance and RAM hits when you instantiate numerous
> objects, even simple ones, unless you instantiate them using Java code
> embedded inside of CF. To counteract this performance hit I favor
> light-weight pseudo Data Transfer Objects or pseudo Value Objects
> which focus on data storage, and move the functions to helper classes.
> By "pseudo" I mean structures (StructNew() type structures) that
> mirror DTOs or VOs that you can cast to object instances if necessary.
> Again, I do this because CF isn't good at handling objects and I find
> this technique to work well given that limitation, not because this is
> the purest OOP way to do things. There are plenty of healthy
> discussions on the best techniques in the cfcdev mailing list
> archives. If you prefer a pure OOP design for your site I think you
> will find ColdFusion to be limiting as you dig deeper into this topic.
>
> -Mike Chabot
>
> On Tue, Oct 21, 2008 at 6:35 PM, Judah McAuley <[EMAIL PROTECTED]> wrote:
>> I'm migrating the backend portion of an application from a procedural
>> set of code to a cfc-based and hopefully more OO oriented design. For
>> this first go around I won't be using any of the MVC frameworks (the
>> front end is already written on this project) and I don't plan on
>> using any of the ORM's like Transfer quite yet.
>>
>> Right now I'm sitting down and listing all the classes I'm going to
>> need and sketching out their methods and I've come up against a best
>> practices question.
>>
>> Lets say I have a User object. The user has properties of id, first
>> name, last name, company and date of birth lets say.
>>
>> Some setups I've seen would write a getter/setter (accessor/mutator)
>> for each property in that object along with a method to retrieve a
>> whole object and a set of objects. (at this point I'm using the words
>> object, bean and class interchangeably. I understand that I might be a
>> bit off there). So if I wanted to display a user with the id 10, I'd
>> say currentuser = User.getUser(10) which would return a struct with
>> the User object (bean, whatever). Then if I wanted that user's name,
>> I'd say currentuser.getFirstName(). If I wanted to change that users
>> first name to Bob, I'd say currentuser.setFirstName('Bob')
>>
>> Other setups I've seen don't seem to write getters and setters for
>> each property but rather create methods that act on the object level.
>> So I'd say currentuser = User.getUser(10) and then if I wanted that
>> persons first name, I'd just reference it as currentuser.first_name
>> and if I wanted to set his name to Bob, I'd say currentuser.first_name
>> = 'Bob' and then call User.saveUser(10) and let it persist the change
>> that I made to the struct.
>>
>> Is there a consensus on the best way to approach this? What are the
>> most useful tutorials out there for someone setting up their first go
>> around with OO while not using a framework?
>>
>> Thanks,
>> Judah
>>
>>
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;207172674;29440083;f

Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:314254
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4

Reply via email to