Your Development & Design Resource
On advice, cutting your teeth, and owning your past WTF?! moments...
10/30/2009 12:21 PM by Chris Toohey
Most of the time I'm contacted by a fellow yellowbleeder and presented with a question that has me asking two questions for their every one. I'm fine with this - don't get me wrong - as it's something that I do literally every day.
"Can this be done?" is often met with a "What are you ultimately trying to do?" and "How is this going to be used?" from me, as I find that most of the time a person is set on a way of doing things well before they even ask a question. Which - again, don't get me wrong - is fine, but as we all know there are about 50 different ways to get the same results, and quite frankly setting your mind to only one of those methods when looking to another geek for suggestions can often limit your end product.
I ran into such a situation earlier this week, where I was asked if there was a way to dynamically show-hide a block of content, consisting of a labels and fields.
My questions got the whole story:
A project tracking application, the developer was entering a pairing of 10 or so blocks of labels and fields. Each would contain information on a given task that's assigned to a given person.
I immediately remembered one of my first Domino applications. The project champion asked me if there was a way to track event information about the day, breaking up the information in hourly snippits. Me - not really knowing any better - immediately added 24 fields onto a single Form Design Element named Report.
Then he came back and wanted to break the information down into 30 minute intervals, and thus another 24 fields were slammed onto the Report Form Design Element.
And I wanted to make this look slick, so it used Hide-Whens Formulas and Action Hotspots to allow you to view/hide given times from the listing of 48 blocks of labels, fields, etc.
Yeah - I sucked. No, that's not quite accurate. I was new Domino development. I was cutting my teeth as any new developer would by putting what they felt - by following the click-and-configure RAD development practices that Domino Designer supports - was the way to get the job done.
Today, 10+ years later, I've got a different approach such things.
Ten minutes later, I sent this developer a working (but not exactly pretty) example NotesDatabase that would allow him to create a Project, and then - via a combination of Domino URL Commands (aka the Domino CRUD API) and AJAX - create Task response/child documents for each Project. The AJAX not only handled the Create and Update of the Task, but it also returned (sans page refresh) a table of tasks appearing within the Project, thus giving you to hide/show look the developer was looking for with an improved user interface that his customers are used to seeing in most web applications today and really lends to a more solid data architecture for the application.
And, of course, there aren't 48+ additional fields cluttering up the design of the application!
So what am I getting at here?
Maybe it's that we all start somewhere. Maybe it's that we all look back at applications we've written in the past and wonder what level of suck we'd reached when we thought that was l33t. Maybe it's to stress that we should keep an open mind when we start architecting applications. Maybe it's a confession that DominoGuru.com is just a domain name; that I'm learning things every day right along with you, and that I think when I stop learning I should also just walk away from the development arena altogether.
The good news is - at least for me (and my bank account) - I don't foresee me putting down my learnin' cap any time soon.
So, have any WTF?! coding moments to share yourself? Done something in past that you stumbled across months later that shuddered in horror? Feel free to share!