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/ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
