Tuesday, 8 June 2010

lazy?

An anecdote: guy (from some special social group if you desire) works at construction site - carries bricks. One brick at a time/pass :). Manager asks him:
- Why are you so lazy? Look, that guy carries ten bricks at once.
- Huh, I am not, but that guy is lazy indeed - he tries to avoid additional passes.

In coming posts I'm going to evaluate how lazy we can go developing typical enterprise systems ;)

First of all let me mention some typical real world situations we face with:
  • Heterogeneous web services, often based upon legacy standards, very often not fully standard compliant. Sometimes to communicate with such a creature it's reasonable to use a same legacy framework.
  • Produce and communicate exotic text or XML formats over FTP, HTTP & etc.
  • Parse and produce XMLs again and again.
  • Convert received data structures to own one, store it
  • Often these structures are not so exact and strict as described.
  • (XML) metadata
And some sweets:
  • Collect data from web pages, non-valid HTML.
  • Process semi-structured XMLs.
  • Metadata drivenness.
What about to have them all? One would say it is a straight way to mental clinic. Well, depends on drugs ;)

What tools and methods to use?
"Solid" language based technology stacks like JEE or .NET fit an ideal world, but the chaos of reality makes development a nightmare, codebase becomes fat and ugly.
Lightweight language solutions handle chaos well just following it until you get lost in chaos of your codebase.

I remember a project done with cutting-edge tools of own time - Seam, Spring, Hibernate & etc, doing very simple things - fill some documents collecting data from web services, sign them digitally, store and forward to other web services, track status. This simple thing turned into 20-30 tables per document, 3 experienced man-years and endless troubles with maintenance.

So, until you are not a manager getting revenues from a hundred of coders on a state project no one will really use, you need an escape. Me too.

Keywords would be: XForms, XML, native XML database, XML Pipelines, XQuery, XSLT, XRX?

No comments:

Post a Comment