On Thu, Sep 06, 2007 at 01:34:16AM +0000, Angus Leeming wrote:
> Andre Poenitz <[EMAIL PROTECTED]> writes:
> > Summary:
> > 
> > Before merging controller and view for the "About" dialog:
> > 
> >    315  frontends/controllers/ControlAboutlyx.lo
> >  88760  frontends/controllers/ControlAboutlyx.o
> >    301  frontends/qt4/GuiAbout.lo
> >  95752  frontends/qt4/GuiAbout.o
> >   2057  frontends/qt4/GuiAbout_moc.cpp
> >   4887  frontends/qt4/ui_AboutUi.h
> > 
> > After merging controller and view:
> > 
> >    315  frontends/controllers/ControlAboutlyx.lo
> >   1640  frontends/controllers/ControlAboutlyx.o
> >    301  frontends/qt4/GuiAbout.lo
> >  50100  frontends/qt4/GuiAbout.o
> >   2065  frontends/qt4/GuiAbout_moc.cpp
> >   4887  frontends/qt4/ui_AboutUi.h
> > 
> >  127  405 3451 qt4/GuiAbout.cpp
> >   33   86  567 qt4/GuiAbout.h
> 
> The view/controller split was never about size. It was about a clean
> way to separate two conceptually separate things. I understand that
> there's lots you don't like about the current implementation, but
> that's no reason to scrap the rationale behind the separation. *That*
> is still completely valid.

I agree only partially.

The ultimate goal is to have a usable application.
To have that one usually wants bugfree and maintainable code.
To have that one applies certain well understood paradigms.
One of those is "MVC", another is "KISS".
To have that one ...  etc.

So MVC is not a goal per se. If it conflicts with goals on the same
level (say "KISS") there has to be a resolution. This might be a 50-50
thing, but it also might be that one is completely dropped in favour
of the other(s) - _even if the rationale behind the dropped goal is
completely valid_.

Moreover, if one of the sub-goals (here: "MVC") conflicts with one of
the goals further up the food chain (here: "maintanability") the usual
resolution is to drop the sub-goal _even if the rationale behind the
dropped goal is completely valid_.

I think we agree that half a dozen classes in a similar number of files
just to display a single diaolg clearly violates "KISS", and for me
it _also_ make maintanance harder (more jumping around in files when
editing, longer compilation etc.)

So possible resolutions in my eyes are

  (1) "physically merge C and V" (that would be 1:0 for KISS vs MVC)

or

  (2) "put C and V in the same files" (that would be something like
       0.3 : 0.7 for KISS vs MVC, but would at least not make editing
      harder nor increase compile times)

I lean towards (2), but I would not be surprised if MVC advocates would
not even accept that as a solution.

Andre'

Reply via email to