+1

Simplicity is key

On May 18, 2010, at 11:20 PM, "Paul Smith" <psm...@aconex.com> wrote:

>
> On 19/05/2010, at 3:15 PM, Ryan Rawson wrote:
>
>> One option to handle the client issue would be to publish a minimal
>> dependency set.... is it possible to publish 2 dependency sets?  One
>> for clients, one for extension authors?
>>
>
> You might be able to do this, but I wonder if it's just not worth it  
> at this stage.  Another workaround would be to publish Hbase as is,  
> with all the dependencies needed by the server, and then post some  
> example on the Hbase wiki, or in some documentation somewhere on  
> "how to depend on hbase, but only use the dependencies you need for  
> client access" by just specifying an example pom dependency that  
> shows the dependency exclusion list you guys recommend a project can  
> get away with.
>
> This still makes the hbase jar a bit 'fat' from a client usage  
> perspective with non-client access code embedded, but honestly the  
> only people these days that have a legitimate case for whinging on  
> having slimmer jars are those that need to embed them in an applet  
> and what to make the load time faster.  I can't see HBase really  
> being in used in this scenario, so I say "let the jar be fat".
>
> one of the other rationales for splitting into modules is to keep  
> layer separations, but that can also be done by using some  
> dependency analysis plugins and defining rules like "the 'client'  
> package should only ever use code from the 'service' and 'spi'  
> packages" and then making that a 'build breakage' event.  There's  
> good reasons for this because it'll keep your design nice and clean,  
> and evil cyclic dependencies can get there and can cause future  
> havoc (incidentally I ran across a great IntelliJ plugin here called  
> 'Code Navigator' I highly recommend, it can highlight these sorts of  
> things nicely inside IJ).  But you guys are good designers, so I'm  
> not sure that's really a risk worth putting in huge layers of  
> defense against.
>
> Now you have the contribs out, the real need for multi-modules is  
> vanishing quickly. Go with simple, I don't personally see why 0.21  
> really should have a client access module as a release goal, they  
> value really isn't there I think, I can think of more important  
> things for you guys to do, and I'm sure you can think of even more. :)
>
> if you need help with the shuffling, let me know, but it should be  
> straight forward now hopefully. ?
>
> cheers,
>
> Paul
>
>

Reply via email to