incubator-wave-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael MacFadden <>
Subject Re: Wave Future Options
Date Wed, 12 Jun 2013 10:51:15 GMT

Thanks. I agree with this perspective.  When I started working with the
codebase, the nested levels of interfaces and implementations made it
impossible to trace through the code.  Personally it seemed like
abstraction for abstraction sake.  Yes.. It made things fairly unit
testable, but maintainability was scarified in other ways.


On 6/12/13 11:47 AM, "Ali Lown" <> wrote:

>> I agree.  I think we need to look holistically at the code base.  I
>> honestly don't know what the best approach is.  It sounds easy to say,
>> let's just modularize it.  I am not sure the current code base makes
>> possible in any meaningful way.  The code is so abstract and
>> it may take MUCH longer to modularize the code than it would to start
>> On the other hand, I am not sure that starting over is feasible either.
>> I
>> really don't know.
>This is why I think it would be better to just attack it with the
>delete key. There are only a few files that actually do work, so I
>don't think we need to abandon the existing code. Everything simply
>has several levels of interfaces which are completely unnecessary,
>just flattening the model library and removing the unused options
>(in-memory delta store, in-memory search store, no-op federation
>system!) would let us see the codebase in a much clearer light for
>(what I think should be) fairly minimal effort.
>(My example flattening case would be the ConversationX ->
>ObservableConversationX -> WaveletBasedConversationX pattern X={nil,
>Blip, Thread, View}. And there are similar things for the {Mutable,
>Observer, Readable}Document, etc.)
>Hopefully at that point, the code base is small enough (or we are
>better informed), so can see whether to simply abandon.

View raw message