Probably. Well, I feel it at least as of date.
More often than not, the web application developers end up in doing the following:
- Create a server side logic of the application with all code in PHP, Java, Python, Ruby, C# and what not languages
- Choose amazing server side frameworks like CodeIgniter, Struts / JSF, Django, RoR, ASP.Net MVC and what not amazing (MVC or otherwise) frameworks
- Create a middleware for client-server transaction, typically using JSON / XML as content format and serializers and deserializers on either sides in corresponding language (server / client sides)
The issues that typically arise are:
- Ensure that the server and client sides of the middleware are always in sync in terms of their contracts
- Ensure that the end-points are correctly defined and both the sides are kept in sync
- Ensure that the end-points are correctly registered in web.xml, web.config, routes.rb, appropriate Python / PHP files etc
- Ensure that if multiple requests are fired to the server to retrieve data, you manage the responses appropriately (this is relatively easier because of jQuery / YUI structures)
I am pretty confident, there are a lot more problems pertaining to client <=> server interaction and state maintenance but these are some of the important ones. I’d love to hear about more crucial issues…
Wouldn’t it be great if it would be possible to answer
"YES" for the following…
- Can I just do a
MyModel.getData(myCallbackFunction)and don’t worry if the piece of code is called on the server or the client?
- Can I just call a business operation
doWorkand don’t worry if it needs data which may have to be retrieved from the server or the client?
- Can I just call an operation
doWorkand don’t worry if it actually gets called on the client or the server?
Well, that’s where – and for lot more reasons – Yahoo! Mojito framework comes into picture.
It seems I just can’t wait to write about it… one piece at a time. btw, my enhancements to Mojito are available at Github at https://github.com/gvaish/mojito
Leave a Reply