You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Leo Simons <le...@apache.org> on 2004/01/05 22:48:31 UTC

How do we get there? (was: Re:Where Where do you want to go?)

 > 2) how should we start refactoring Merlin to make it what we
 > all need?
 > * please note that development should be able to continue
 >   while refactoring occurs.

= Step 0 =

is a feature freeze. Not code freeze, feature freeze. Development can 
continue, but no new features. None.

= Step 1 =

Then, simply put, the first step is improving on the statistics:

* lines-of-code-per-class (must go down *a lot*)
* lines-of-code-per-method (must go down)
* lines-of-code-per-package (seems okay)
* lines-of-code-to-lines-of-api-documentation (must go up)
* lines-of-code-to-lines-of-testing-code (must go up)
* test coverage (must go to 70% at least for each and every class to be 
remotely convincing)

= Step 2 =

the second step is to make actual changes:

* full and correct javadocs must be added to each and every class and 
interface;
* the use of inner classes and static fields must be reduced to a minimum;
* class hierarchies must be untangled;
* code should be reformatted into consistent patterns (always use a 
'private XXX createXXX' or never use it, but at least always name it the 
same way; better make it protected, too)
* all hard-coded dependencies need to be removed;

= Step 3 =

at this point, it should be expected that test coverage is reasonable. 
The next step is then taking the steps to what I would be happy calling 
a 1.0 release and doesn't involve polite shaving but ruthless refactoring:

* about half of the current abstractions need to be removed;
* intra-package and intra-class dependencies should be minimized much more;
* intra-package and intra-class dependencies should be completely 
interface-based (except for simple value objects);
* the seperation between value objects and logic should be complete;
* +/- half of the terminology must go or each and every bit of it needs 
to be thoroughly debated;
* +/- half of the reflection usage must go;
* things like security, distribution, thread safety, classloader 
management, repository management, metadata management, configuration 
inheritance, profile inheritance, containment model inheritance must all 
be optional and the default implementations should steer way clear of them;
* etc etc etc.

= Me and stepping =

I don't even come close to having the time or the energy to do a 
significant part of that. I know Steve has it but it doesn't sound like 
he wants to commit to it.

Even if he and others do it will take months.

What I will commit to is the development of an extensive library of 
components to use for testing (I'm already working on that), but a lot 
of work will need to be done before I can even start thinking about 
adapting my tests to run them against merlin.

= in the meantime =

 > 3) What about the guy with simple needs?  What are we going to do for
 > him?

Given the current complexity of the merlin codebase, I feel it will take 
a loooong time before it can satisfy simple needs. IMHO we should 
repaint the avalon roadmap to reflect that: Merlin at the moment doesn't 
come close to being a migration candidate for fortress users, and it 
won't for quite some time to come.

= in the end =

 > 4) What about extensibility?  We need this if we are to survive.
 > Right now I get the feeling that Merlin is an all or nothing
 > approach.  Not a pick and choose the feature set approach.

when the system decomposition is clean and along the likely lines of 
customization and change, extensibility will come naturally. The current 
merlin decompositon is bad: its easily customizable in the wrong areas. 
The fortress decomposition is much more reasonable.

= releases =

Remember my comment about being fit for a 1.0 release? Well, we did the 
"fortress will be released real soon now" for too long; we shouldn't be 
doing it with merlin. Regular, incremental releases, one every month. 
Each one a little better than the previous one. Even containing the 
currently unknown big bugs in them. Sure.

= flame away =

off my soapbox now, and off to bed.

-- 
cheers,

- Leo Simons

-----------------------------------------------------------------------
Weblog              -- http://leosimons.com/
IoC Component Glue  -- http://jicarilla.org/
Articles & Opinions -- http://lsd.student.utwente.nl/jicarilla/Articles
-----------------------------------------------------------------------
"We started off trying to set up a small anarchist community, but
  people wouldn't obey the rules."
                                                         -- Alan Bennett



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: How do we get there? (was: Re:Where Where do you want to go?)

Posted by Leo Simons <le...@apache.org>.
Niclas Hedhman wrote:
> You start sounding like a demanding Corporate Manager :D

No-one likes to be told they need discipline. "Accusing" me of 
"management" because of it...how dare you? :P

> May I suggest a slightly different 1,2,3;

yes you may!

> Step 1. Write a test.
> Step 2. Refactor a "smell".
> Step 3. Document.
> Step 4. Goto Step1.

It is indeed far superior. I don't see it happening, but it is far superior.

I will go find a picture of me in a suit.

-- 
cheers,

- Leo Simons

-----------------------------------------------------------------------
Weblog              -- http://leosimons.com/
IoC Component Glue  -- http://jicarilla.org/
Articles & Opinions -- http://lsd.student.utwente.nl/jicarilla/Articles
-----------------------------------------------------------------------
"We started off trying to set up a small anarchist community, but
  people wouldn't obey the rules."
                                                         -- Alan Bennett



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: How do we get there? (was: Re:Where Where do you want to go?)

Posted by Stephen McConnell <mc...@apache.org>.
Stephen McConnell wrote:

> Niclas Hedhman wrote:
> 
>> On Tuesday 06 January 2004 05:48, Leo Simons wrote:
>>
>>> I don't even come close to having the time or the energy to do a 
>>> significant part of that.
>>
>>
>> Of course, you are the manager, and they never have time for anything :o)
> 
> 
> 
> Images of Leo in a suite ....

s/suite/suit
but you know what I mean ....

;-)

-- 

|------------------------------------------------|
| Magic by Merlin                                |
| Production by Avalon                           |
|                                                |
| http://avalon.apache.org/merlin                |
| http://dpml.net/                               |
|------------------------------------------------|

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: How do we get there? (was: Re:Where Where do you want to go?)

Posted by Stephen McConnell <mc...@apache.org>.
Niclas Hedhman wrote:

> On Tuesday 06 January 2004 05:48, Leo Simons wrote:
> 
>>I don't even come close to having the time or the energy to do a 
>>significant part of that.
> 
> Of course, you are the manager, and they never have time for anything :o)


Images of Leo in a suite ....

-- 

|------------------------------------------------|
| Magic by Merlin                                |
| Production by Avalon                           |
|                                                |
| http://avalon.apache.org/merlin                |
| http://dpml.net/                               |
|------------------------------------------------|

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: How do we get there? (was: Re:Where Where do you want to go?)

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Tuesday 06 January 2004 05:48, Leo Simons wrote:
>  > 2) how should we start refactoring Merlin to make it what we
>  > all need?
>  > * please note that development should be able to continue
>  >   while refactoring occurs.
>
> = Step 0 =
>
> is a feature freeze. Not code freeze, feature freeze. Development can
> continue, but no new features. None.

Sarcasm;
* Feature freeze.
* Fix these outstanding problems.
* High resistance mode
* Fix critical remaining problems.
* Hand over to QA.
* Functional Testing
* Fix revealed flaws
* Execute User Acceptance Test
:
:

You start sounding like a demanding Corporate Manager :D

It doesn't suit you...

More Seriously;

Step 0 is "difficult to define", as how much needs to be "started" to be 
considered "inside" the freeze.

Step 1.  I (and I think Stephen) agree whole-heartedly.

Step 2, 3.  Step 1 over-whelms me already...

May I suggest a slightly different 1,2,3;

Step 1. Write a test.
Step 2. Refactor a "smell".
Step 3. Document.
Step 4. Goto Step1.

("smell" being all the stuff Leo brings up).


> I don't even come close to having the time or the energy to do a 
significant part of that.

Of course, you are the manager, and they never have time for anything :o)


Niclas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: How do we get there? (was: Re:Where Where do you want to go?)

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Tuesday 06 January 2004 05:48, Leo Simons wrote:

> * lines-of-code-to-lines-of-api-documentation (must go up)

I think you mean the other way (go down)...

Niclas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: How do we get there? (was: Re:Where Where do you want to go?)

Posted by Leo Simons <le...@apache.org>.
Leo Simons wrote:
> I don't even come close to having the time or the energy to do a 
> significant part of that. I know Steve has it but it doesn't sound like 
> he wants to commit

> when the system decomposition is clean and along the likely lines of 
> customization and change, extensibility will come naturally.

> "fortress will be released real soon now"

life is full of memorable quotes. Most, fortunately, are easily forgotten.

-- 
cheers,

- LSD, who promises to shut up for at least the next 30 minutes or so



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org