Charles,

As far as orginization goes, I really have not seen much that is as
organized as fuesbox. It is not a object oriented process as much as a
method of reusing your code to your benefit. I will not go into alot of the
ins and outs, but will refer you to the site for that. Best of luck

http://www.fusebox.org



----- Original Message ----- 
From: "Charles Sheehan-Miles" <[EMAIL PROTECTED]>
To: "CF-Talk" <[email protected]>
Sent: Thursday, August 24, 2006 7:15 AM
Subject: Messy messy messy code


> Hi all,
>
> I¹m a relatively new coldfusion programmer (if I can call myself that)
and
> I¹ve been working on an application for about two years now which hosts
> multiple websites under the same code base.  The particular website is
> determined by the host header name, and it works, so far as it goes.
>
> However, the app has grown dramatically, with the introduction of a lot of
> new features, to the point where maintaining the code is a terrible
> struggle.  Currently it has about 500 templates, with snaky, messy code
that
> leads here and there, and whenever I introduce a change or fix it breaks
> something else.  Very procedural, etc, with something in excess of 100,000
> lines of code.
>
> I came to the conclusion that putting together the new version, I¹m
> rewriting it from the ground up, using components as much as possible, but
> I¹m new to thinking in object oriented terms, so I was hoping to bounce my
> thinking off the list.  In particular, I want to make the various
functions
> as portable as possible, so I can reuse them wherever possible, and so I
can
> routinely introduce new features.  I¹m also concerned about performance <
> with some of most recent changes to the app, a few of the hosted sites
have
> taken an exponential leap in traffic (one of the sites is now drawing >
20k
> users/100,000 page views per day).
>
> There¹s a relatively small set of data, including the details of a
> particular organization, their formatting options, stylesheets choices,
> etc., which almost never change.  My intent was to place those in an
> application scoped cfc.
>
> In the past, I¹ve maintained user data in a members table, with associated
> tables for custom fields (defined by the customer), donation histories,
> online profiles, uploaded photos, etc.  This was all keyed off client
> variables, so logins were persistent.  I¹m thinking to set up a session
> scoped cfc to retrieve all of this data when someone visits or logs into
the
> site.  New visitors, or those not logged in, would have null values here
> until they logged in or registered.  Does it make sense to instantiate
this
> object (call it member.cfc) in application cfm?  I want to make sure the
> values in this are available throughout the application.  I¹m not sure
what
> kind of gotchas there are on session scoped components, though I¹ve been
> doing a lot of reading on the topic.
>
> There¹s a set of data which changes on a daily basis < database of
> congressional contacts, phone numbers, faxes, etc., staffers, etc.  Does
it
> make sense to persist something like this in a component?  The key factor
is
> that when a website visitor visits a page, the data is personalized < for
> example, if we have their zip code, the app determines who their
> representatives in Congress are and how they voted on specific
legislation.
> I¹m inclined to create the object in the application scope, then call the
> various functions passing them the values for the members.
>
> The final set of data is the website content, which typically changes very
> frequently, as website visitors post blogs and comments in addition to the
> customer posted articles.  Currently I cache most of these queries for
time
> periods between 2 and 10 minutes to reduce load on the server.  I¹m not
sure
> of the impact of encapsulating all of this data into a persistent CFC.  Do
> caching rules still apply?  For example, if I have a function
³listarticles²
> in a persistent component, can I cache that query inside the CFC so that I
> don¹t impact the database more than currently? In most of these cases, I
> don¹t want the data to be around for the life of the object, both because
it
> changes, and because there are tens of thousands of articles and blogs and
I
> don¹t want to crush my web server.
>
> I hope all these apparently newbee questions aren¹t too vague.  I¹m still
> getting a handle on how to best do this, and wanted to hear some thoughts
> from some of the folks here who are clearly more experienced at this.
>
> Finally < as I recode and test this, I¹m wondering if there are any good
> tools out there which can give a view of what is going on inside the web
> server in terms of persistent component < how much memory they are using,
> etc.  I¹ve used FusionReactor, but that seems to only address currently
> running requests.
>
> Thanks,
>
> Charles
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:250895
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to