On 12/15/06, Barry Beattie <[EMAIL PROTECTED]> wrote:
Denny: please forgive me for butting in here but you've articulated
the kind of angst we've been going thru with a greenfield project/new
start for us.

Thanks for contributing, actually.  If I want privacy I'll send
direct, vs. list. [=

I'm usually an A) keep it all current, kind of guy.  Sometimes speed
makes it so you can't do that; I liked Peter's comment: while B is
unacceptable, A is impossible. Heh.

What I've found, is that most of my projects have core "things" that
are universal.

The ever present "list" screen, for instance.

Instead of wanking with search/pagination, etc., over and over again,
I soon made a function that took a query and a couple of arguments
(the query is the only mandatory argument) and spit out a paginated
list.
 Instantly, my productivity shot up.  Added benefit: only one place
to tweak/add "list" functionality.  Speaking of- I soon realized that,
many times, an Excel extract is wanted, usually pretty close to the
same columns as the "list" view.  So I added the ability to the "list"
function of creating simple HTML excel extracts, and a excel file
name variable, which if populated, adds the needed icons to the
list view.

Now, I tend to use named variables when calling functions, but
sometimes I don't, so I always tack the newest feature argument
after the last feature argument I added.
That way, I don't break any places I was too lazy to use the function
with named arguments (denList(aQry) vs. denList(query=aQry)).

Anyway, long story short, as I've added features (alternate row
color, pdf "extract", fixed the date search;) every single one of my
projects using the code has benefited.  Even old ones.

I'm in a situation where this is acceptable, and we are flexible
with our billing/etc., so it's worlds apart from freelancing (well,
most freelancing, I'd assume), where every minute/penny effects
the next minute/penny, and free != good (to try to condense
the differences in a paragraph).

Also, I'm working on projects that span years, which is quite
different from "a week stint and that's it" types of projects.
Well, theoretically.  (I actually treat even the "weeklongs"
the same, as so many of them have turned "yearlongs").

All that said, I wasn't using any frameworks.  Reactor has
been a boon for me, by and large, for select queries.
Big boon.  Very nice to have SQL objects.  In one place.
But, I'm still not using any validation, or iterating saves...
it's been more productive to just leverage the SELECT
parts (MG scaffolding is changing this, woot validation).

Anywayze, and this is the last one, it's been a challenge
to configure Model Glue in a way that results in easy
upgrade-ability, extension, etc..  A challenge because
there are so many ways one can do things, and I'm new.

I've created and scratched 'prolly 3-5 versions of the list
function so far.  Maybe more.  While using it for about
3 projects.  It would have been over and done with for
project 1, but doing it with 3 at once makes me instantly
aware of ... I guess, code coupling.  Not quite the term
I was looking for, but close enough.  Inflexibilities.
(If I put this in the controller, or this in the message, or
maybe this in the model... no, here in the view... um..)

Yes, ColdSpring IS pretty nifty.  Simple, but complex.
Or complex, but simple.  I always get those confused.
Somehow, it will help with coupling problems. Yup.

I think I think too much, sometimes.  If only I could
push that toward the times I don't think enough... :-)

Did I actually say "long story short" up there?
Yeow-zerze! Blowhard or windbag? Yeeesh...
:Den


-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Reply via email to