March 09, 2007

Best dev article for the week...

I'ts also one of the best writeups I've read on development patterns in a long time.

"Your Interface is NOT Your Application" by the smart folk over at Gadgetopia sums up the idea that your app is the underlying business logic and not it's interface. Access to the application by the interface should happen via an API (whether private or exposed to the public). Making that split, according to the article, helps center the application on it's core functionality, leaves GUI concerns to GUI designers, allows you to create multiple frontends for multiple situations, and keeps cruft out of your code.

The only negative in this approach is that you have to fight to be intentional with how you write your application and do some forethinking before hacking out your app.

Thankfully for all of us, there are plenty of RAD frameworks actively under development that help with this sort of thing.

Posted by TheIdeaMan at March 9, 2007 10:59 AM | TrackBack
Comments
Access to the application by the interface should happen via an API (whether private or exposed to the public).

My argument is that they should really all be public. The people developing the app should be forced to use the same API I have to underneath their own GUI.

Posted by: Deane at March 9, 2007 04:51 PM

Right. Eat your own dog food. :)

The scenarios I was thinking of were cases where the public API is a limited subset of the private API and is accessible via various architecures. For example, Facebook has an XML-RPC engine that their devs use to build their app (using Python, PHP, Java, whatever). Facebook also has a REST API that's offered to the public. Following the thoughts in your article, I've begun to wonder why Facebook didn't just offer a limited version of the XML-RPC engine, or build all of Facebook on a REST API and offer a limited subset of that to the public.

Does that make sense? Let me know if I'm still astray in my understanding of your article. It was a great read, and I'm promoting it whenever I get the chance.

Thanks, Deane.

Posted by: Benjamin at March 10, 2007 10:43 AM
Post a comment









Remember personal info?