In my formatter, I have implemented modularized layout. From the start, I
was sceptical, and I was indeed tempted several times to throw the concept
out of the window because it got in the way, but in the end it was always
possible to maintain the separation of concerns between different kinds
of layouters (BlockArea, Table, Page, and List for example) even though
the interaction is admittedly complex. And, yes, it's sometimes hard to
follow the logic by staring just at the code - which I prefer to using

To summarize my impressions from this:
1. I would do it again this way.

2. Maintaining clean separation of concerns *forced* me to redesign my
layouter interfaces several times when I added new functionality, but
I gained an implementation that I still understand clearly in its entirety
even I cannot work on it for a week.

3. The only place where I have difficulties after some time off is my
BlockAreaLayouter which is one very large chunk of code. Maybe it's even
worth factoring out a LineAreaLayouter, though I'm not sure of it - the
interaction is really tight.

4. It's too early to estimate how much modularized layout will hurt
performance in the end. My gut feeling is: not much, and it's probably
wort it.

So, from my own experience I can only encourage you to go forward with
your plan. For me, it worked so far. Let's see if the XSL rec turns
up more nasty surprises...


I think you are talking about different modularisation contexts here. You might want to clarify this part of the discussion with Victor.

Peter B. West <http://www.powerup.com.au/~pbwest/resume.html>

Reply via email to