On 04/06/07, Tomas Restrepo <[EMAIL PROTECTED]> wrote:

I can't really comment on this, but I do have an opinion regarding it.
I've
become very familiar with the Java client code (as well as the .NET client
code) over the past few months, and in my very humble opinion, a lot of
the
code is a mess. Not only is it complex, it is also hard to test and it has
a
number of poor practices that make it even more complex: Classes too big
(just look at the connection or channel/session classes), very tight
coupling between classes at different layers and an arcane threading model
(i.e. MINA in the Java code, and unfortunately the original .NET code got
stuck with the same model, even though it doesn't have the MINA
restrictions). This not only means the code is harder to maintain (again,
imho), it is also more fragile and inefficient (and the multitude of
threads
it creates here and there to work around the base threading model makes it

"steal" valuable resources from the application/service using the client).


Yup, its a mess. It has grown to be a bit of a mess as solutions to various
problems have crept in. What I'm saying is that it is important to
understand what those problems are, because a clean implementation may well
forget about them, only to have to re-implement them some other way. There's
some tricky stuff going on that is not well documented, and I think it is
worth perservering with it, to get a cleaner solution out of it. I'd just
prefer to put a cleaner structure back into whats already there, rather than
throw a lot of work out and start again.

Rupert

Reply via email to