[aerogear-dev] Pipe spec

Kris Borchers kris at redhat.com
Tue Apr 23 11:15:50 EDT 2013


On Apr 23, 2013, at 9:17 AM, Summers Pittman <supittma at redhat.com> wrote:

> On Tue 23 Apr 2013 07:34:03 AM EDT, Kris Borchers wrote:
>> Summers,
>> 
>> I agree, great writeup. I just posted a line comment on one of the
>> commits but before I started doing that all over the place, I thought
>> I would ping you here first. Basically, I think there is too much
>> detail in much of this for it to be an abstract spec. At least in JS
>> land, many of the parameters passed to functions, the relationship of
>> Pipeline to Pipe and a number of other things are just very different
>> from Android. They even differ from iOS, but seem much closer there
>> than to Android.
>> 
>> If you want, I can go line by line and point out these differences, or
>> would your rather just try to make a run through it and generalize it
>> a bit more without all of the noise? I am happy to go either way.
> 
> I would prefer you call out specific instances.  I checked the 
> Javscript code and the spec describes what it does pretty closely.  
> With the exception of handler (which will be excised on my next push) 
> and the names I've chosen for certain things (what you call settings I 
> call PipeConfig) I don't find anything terribly specific/not applicable 
> to JS.

I guess that's my point though and it looks like you fixed it. As a new user, calling something PipeConfig would lead me to look for that in the API docs and when I don't see it, I would be lost. I guess I just want this to be as general as possible to avoid confusion. Saying "a configuration object" is much preferred to "PipeConfig".
> 
>> 
>> Thanks,
>> Kris
>> 
>> On Apr 23, 2013, at 4:03 AM, Matthias Wessendorf <matzew at apache.org
>> <mailto:matzew at apache.org>> wrote:
>> 
>>> 
>>> 
>>> 
>>> On Mon, Apr 22, 2013 at 6:37 PM, Summers Pittman <supittma at redhat.com
>>> <mailto:supittma at redhat.com>> wrote:
>>> 
>>>    On 04/22/2013 12:45 AM, Douglas Campos wrote:
>>>> On Fri, Apr 19, 2013 at 08:04:12AM -0400, Summers Pittman wrote:
>>>>> So I've gotten a draft of the Pipe document up.
>>>>> 
>>>>> 
>>>    https://github.com/aerogear/aerogear.org/blob/pipe_spec/docs/specs/aerogear-client-pipe/index.markdown
>>>>> 
>>>>> Some things I would like to call out and discuss include
>>>>> 
>>>>> 1 ) Pipe implementations should be thread safe.  Specifically
>>>    calls to
>>>>> read, remove, and save should not change the internal state of
>>>    a Pipe
>>>>> object.
>>>> +1
>>>> 
>>>>> 2 ) Pipeline.get is not guaranteed to always return the same
>>>    instance
>>>>> of a Pipe.  This is something that came up with Android.
>>>     Loaders are
>>>>> 1:1 on the Activity or Fragment which references the Loader.
>>>>> Therefore if a Pipe is reused between multiple Activities each
>>>    one is
>>>>> proxied  in a different Loader.
>>>> Why should we spec this? People counting on getting the same
>>>    instance on
>>>> year 2013...
>>>    I just feel like it is one of those things that if we don't say
>>>    up front
>>>    people may rely on it.
>>>> 
>>>>> 3 ) A Pipe may proxy or delegate to a handler and this handler
>>>    can be
>>>>> exposed as a property.  This is an Androidism as well.  I
>>>    think it can
>>>>> probably be dropped from the spec but I wanted to see what other
>>>>> people thought about it.
>>>> +1 on dropping, this just adds complexity, and complex specs ==
>>>    boring
>>>> read
>>>    Will do.
>>>>> Some things which we may need to flesh out to make the spec more
>>>>> complete are
>>>>> 
>>>>> 1 ) Authorization and Authentication.  This is probably another
>>>>> document
>>>> We can probably just spec the Authentication/Authorization SPIs
>>>    (very
>>>> thin API surface)
>>>    So a separate doc then?
>>>> 
>>>>> 2 ) A callback spec/definition.  I am not sure whether this is a
>>>>> separate document or not.  Either way it should be short and
>>>    sweet.
>>>> Wdym? Could you elaborate more?
>>>    We need to put down in writing Callback.onSuccess(result) and
>>>    Callback.onFailure(cause) because it is used everywhere.
>>>> 
>>>>> 3 ) Platform implementation docs.  A document with the code
>>>>> examples/comparisons and notes where they may diverge from
>>>    each other.
>>>>> For instance in Android Callback is passed instances of the
>>>    resource a
>>>>> pipe represents, but in iOS and Javascript the callback is
>>>    passed a
>>>>> map of values.  I didn't explicitly define this behavior in
>>>    the spec.
>>>> Isn't having the parallel usage examples enough? (kinda like we
>>>    did on
>>>> the paging spec)
>>>    Pretty much, I was just wondering if people were interested in
>>>    having a
>>>    Map behavior as a standard, leaving it to the implementation, or
>>>    doing
>>>    something else (like returning Headers and Body information)
>>> 
>>> 
>>> 
>>> I agree, coming from java, the map thing _is_ weird :) but that's
>>> what a lot of folks do, in iOS land.
>>> I guess... we could spec this - but also keeping it abstract, not
>>> really sure, to be honest
>>> 
>>> 
>>>> 
>>> 
>>>    _______________________________________________
>>>    aerogear-dev mailing list
>>>    aerogear-dev at lists.jboss.org <mailto:aerogear-dev at lists.jboss.org>
>>>    https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>> 
>>> 
>>> 
>>> 
>>> --
>>> Matthias Wessendorf
>>> 
>>> blog: http://matthiaswessendorf.wordpress.com/
>>> sessions: http://www.slideshare.net/mwessendorf
>>> twitter: http://twitter.com/mwessendorf
>>> _______________________________________________
>>> aerogear-dev mailing list
>>> aerogear-dev at lists.jboss.org <mailto:aerogear-dev at lists.jboss.org>
>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>> 
>> 
>> 
>> _______________________________________________
>> aerogear-dev mailing list
>> aerogear-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
> 
> 
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/aerogear-dev




More information about the aerogear-dev mailing list