[Kst] extragear/graphics/kst/devel-docs

Ted Kisner tskisner.public at gmail.com
Fri Dec 9 19:38:29 CET 2005

It seems to me (and this is just my opinion) that Kst2DPlot is a classic case 
of code where (important and essential) features were added at random without 
an overall design goal.

Personally, I think we should do as little as possible to these files until 
1.2 is released- even if it means reducing release criterion.  Then we should 
just scrap it and do a wholesale refactoring of Kst2DPlot.  Note I'm not 
suggesting getting rid of features:

1.  Make a list of all the features we can imagine kst ever supporting in 
terms of display.  Obviously we can't predict everything, but I think we can 
see 2-3 years into the future.

2.  Come up with a *detailed* design document where we completely specify all 
the objects to implement the funtionality we want.  Personally, I like to 
design things down to the level of specifying exactly the member variables, 
and the API of all member functions.  Most problems should become apparent at 
this point.  At this stage we should be able to visualize how all the display 
elements interact.  If we can't "see" how all the pieces fit/work together, 
then our design is not complete.  Off the top of my head, I can think of 
several objects that Kst2DPlot could be broken down into:

a) 2Dplot becomes a container object that coordinates the things below
b) renderer object
c) axis interpretation object (time, others in the future)
d) mouse handling object

3.  There is no point to write any code until our design is complete.  In fact 
it is worse than pointless as it means we have to backpedal later.  If the 
design is complete, then we can just copy/paste any relevant implementation 
code from the current Kst2DPlot and fill in any gaps with new code.

Anyway, I'll try to help out whatever path we go down, but I think that 
everyone's time could be used more efficiently if we had a new detailed 
design.  I would say that coming up with a good design is 90% of the work.  
The other 10% is some easy coding and performance tuning.

Less coding, more design.

my $0.02,


More information about the Kst mailing list