Jared, have you taken a look at the book, "UML for Mere Mortals"? It's on my Safari bookshelf (another great resource) and has been pretty helpful in getting UML into my workflow. I still prefer to do tons of rough UML-ish sketches before opening up Poseidon, but the book has helped me to move beyond simple class diagrams and inheritance relationships to think more... model-y? That is, to stop thinking of individual classes/CFCs and concentrate on the different objects in the particular part of the domain I'm trying to model. I still have a long, long, long way to go on learning and using UML well, but the fact that I actually use it now is an improvement!
Now I just have to teach my coworkers and clients... ugh. Do you know of any good UML resources? On 2/21/06, Jared Rypka-Hauer <[EMAIL PROTECTED]> wrote: > OK, I'll throw in here. > > When I first started with CF back in '97, I'd been programming or > "developing" as a hobby since I was 9... which means (blech) that I wrote my > first computer program almost 25 years ago. HELP ME!! ;) > > I was still doing CFMX like it was CF5 as late as 2002... call me oblivious, > I just didn't have a lot of exposure outside my little environment. But I > got back to going to CFUGs and started reading more about CFMX and CFCs and > stuff... and I met Sean on CF-Talk. Finally after years and years of > wondering and even asking repeatedly, someone started to explain things a > bit and I started reading blogs, articles online, and things like Ray > Camden's ColdFusion Dev Guide... Guy Rish's chapter on OO and encapsulation > was the thing. I "officially" started learning OO one year, one month and > nine days ago. I don't know why Jan 12 2005 got glued into my head, but it > did. I caught the bug. > > I still get lost in my applications... I think I tend to overcomplicate > things by trying to write n-tier applications from the start rather than > letting controllers have a little more authority than they should. Often I > get the idea right away, but when I go to use it I sit there staring at my > graph paper wondering where to start. It's getting easier and easier all the > time, though. What was key was understanding the basics... what's an object, > what's an instance, what's a class, what's encapsulation, polymorphism, and > inheritance, yadda yadda. It's hard going from PP to OOP because with OOP > you so often start with the "don't worry about what it does, worry about > what it is" but from a procedural background there is no "is"... there is > only does. So looking at examples like C++ or Java that have a main() method > that kicks off the loading, starting, INSTANTIATING! hehe really helped me > see... OH I get it, sequence over procedure... bah, syntax sux. Anyway, I > basically learned OO by nagging friends with questions (and some even still > talk to me!) and by reading Mach-II's source code, believe it or not. That > was where I started to see patters like index.cfm bootstrapping the > framework into the application scope, method chaining, and how encapsulation > really works in a CF application. > > My biggest challenge now is abstraction... it makes my brain hurt. I'm > working on writing an event validation framework/library that allows > Fusebox, Mach-II or ModelGlue to validate data in the "event" (or the > attributes scope, as Fusebox calls it) and I've got 99% of it done. It's > that last 1% that involves the highest level of abstraction and deepest set > of composite objects that's proving hardest because I can't SEE it. I guess > you could say I'm very visual, so I'm actually starting to contemplate using > coins and colored string to model my applications. ;) If anyone wants more > info on Sting just let me know. It should be most cool because it'll allow > an entire event to be validated with one validate() call, has strict or > loose validation, etc., and will make the validation side of things as much > a snap as Reactor makes the DB side of things. > > I know that the "seeing it" thing is actually offset by... gasp... UML. I'm > just not good enough at predicting what objects will go where yet to be very > good at modeling, then writing... one day soon i hope. For now, it's all > about the coffee, graph paper, and coins+colored string. Hehe.. > > Anyway, enough of the commercial. Suffice to say I've been at OO for a year > and still literally get dizzy headaches from it once in a while... but it > gets easier and easier all the time and I keep getting faster at it to boot. > > Laterz! > J > > > > > ------------------------------------------------ > > Jared C. Rypka-Hauer > > Continuum Media Group LLC > > http://www.web-relevant.com > > Member, Team Macromedia - ColdFusion > > > > > "That which does not kill me makes me stranger." - Yonah Schmeidler > > > On Feb 21, 2006, at 4:02 PM, Sean Corfield wrote: > > On 2/21/06, Doug Hughes <[EMAIL PROTECTED]> wrote: > You hit the nail on the head. My path to OOishness started more than two > years ago (after many many years of procedural programming). I started by > taking Hal Helm's class on Mach-II. I figured after 3 days I'd know this > stuff backwards and forwards. (I consider myself to be reasonably bright > too.) So, after the class I quickly ran home and was absolutely unable to > get anything done. I spent the next two years trying and trying and trying > again. > > My OO history: I started back in January '92 by picking up C++ and it > was really painful. It took me at least a couple of years to get > comfortable with the OO styles of the day back then and they've been > evolving ever since and I've tried to keep up with it all. I picked up > Java in '97, I dabbled in Smalltalk on and off through the 90's and > these days I do my OO in ColdFusion mostly. Almost no one had heard of > design patterns back when I started doing OO - something we've all had > to pick up along the way. And idioms keep changing - and each language > has its own set of idioms which adds to the difficulty. I like to > think I'm a fairly competent OO designer these days but even so, it > was only last year that I 'got' inversion of control and why anyone > might program that way! > > > Then, one day, I was working in Java (of all languages) and realized > that (holy hell!!) I was applying OO unconsciously. From that point forward > my learning curve has returned to my pre-OO days. > > That's pretty much how it is for most folks. One day, the lightbulb > goes on. That day can be weeks, months or sometimes years into the > learning process - depending on how you learn and what resources you > have at your disposal (training courses, a mentor, access to good OO > code examples, books - whatever suits you). > > > As Sean frequently says, "This stuff is hard!" > > Yeah, I had one guy get really irate at CFUN-04 because I told him not > to expect to pick up OO in "a few days" (his expectation was that he'd > read a book and be off and running). He felt I was being elitist or > telling him he was stupid because I insisted it would take him longer > than his "few days"... Unfortunately, this stuff is just plain hard. > > > And as I always say, "You've got to try and screw up a few times before > you'll get it". Why? Because by messing up you'll be able to see what went > wrong. This, at least for me, helps me to understand how to avoid this > problem next time around. > > Yes, that helps too - although sometimes figuring out that you have > actually screwed up isn't always easy :) But I do feel that making > mistakes and learning from them really does help bring home the > concepts behind OO. > -- > Sean A Corfield -- http://corfield.org/ > Got frameworks? > > "If you're not annoying somebody, you're not really alive." > -- Margaret Atwood > > > > -- Reactor for ColdFusion Mailing List -- [email protected] > -- Archives at > http://www.mail-archive.com/reactor%40doughughes.net/ > > > > -- Quidquid latine dictum sit, altum sonatur. - Whatever is said in Latin sounds profound. -- Reactor for ColdFusion Mailing List -- [email protected] -- Archives at http://www.mail-archive.com/reactor%40doughughes.net/

