On Mon, Apr 13, 2009 at 02:53:56PM -0400, Luke Tucker wrote:
>
> I'm shopping around a bit for component frameworks for melkjug's plugins 
> ( http://oss.openplans.org/melkjug/wiki/PluginPoints ) and I'd like to 
> hear your input if you have a sec.
>
> I feel like Trac's component model is all I really want at the moment,  
> but I haven't used it extensively in practice.  I really like the  
> straightforwardness of it, the digestibility of the overall concept and 
> the limited scope -- drawback is afaict it is not packaged separately 
> (although it looks like the code is very orthogonal to the rest of trac 
> and it wouldn't be hard to take)  Jeff, I think you might have the most 
> to say about what you like/dislike about Trac's model and/or it's re-use. 
>  See http://trac.edgewall.org/wiki/TracDev/ComponentArchitecture

I would say that if you want a simple component architecture, then Trac is a 
very good model.  Extension points are defined, plugins implement an interface 
which is plugged into extension points.  It works very well for Trac.

> As Josh reminded me, we also have a ton of internal ZCA knowledge, so I 
> figured I should do a little due diligence on that front too...  Melkjug 
> already uses a smattering of ZCA to document interfaces in the model.  
> Personally, I find ZCA to be a bit zany and overwrought for what I'm 
> intending -- the documentation makes my eyes want to glaze over even 
> though I already understand it... That said, it's cruft is grown from 
> battle worn use cases and it's clearly got some momentum and backing as 
> an independent framework.

What Trac misses is adaptation, mostly.  Also, you can't have composite 
interfaces, though this is an implementation detail.  ExtensionPoints get 
turned into lists of components, which is a bit sloppy if you want to asser 
that exactly one gets used.  But this is probably okay as you can always throw 
in assert statements.  Again, I'd say adaptation is the main missing thing.  If 
you can live without it, you're probably good.

> Maybe all I want to do is paper over the foul details of ZCA that I  
> don't care about with something that behaves conceptually like Trac's  
> model for the 99% case (use ZCA as a meta-meta-framework) but let the  
> machinery hang out ... juuust in case.
>
> Anything else I should be looking at? Thoughts?
>
> - Luke

Just to throw a zany idea I've been thinking about, implicit interfaces vs 
explicit.  Instead of marking things as implementing other things, you give 
rules by which a component is said to implement an interface.  But since you 
want something simple, probably doing something experimental like this might 
not be the best.

Jeff


--
Archive: 
http://www.openplans.org/projects/melkjug/lists/melkjug-development-list/archive/2009/04/1239649263549
To unsubscribe send an email with subject "unsubscribe" to 
[email protected].  Please contact 
[email protected] for questions.

Reply via email to