+1 On Thu, Jun 23, 2016 at 7:27 AM Jean-Baptiste Onofré <j...@nanthrax.net> wrote:
> +1 > > Regards > JB > > On 06/23/2016 12:17 AM, Ben Chambers wrote: > > Based on a recent PR (https://github.com/apache/incubator-beam/pull/468) > I > > was reminded of the confusion around the use of > > .apply(transform.named(someName)) and .apply(someName, transform). This > is > > one of things I’ve wanted to cleanup for a while. I’d like to propose a > > path towards removing this redundancy. > > > > First, some background -- why are there two ways to name things? When we > > added support for updating existing pipelines, we needed all applications > > to have unique user-provided names to allow diff’ing the pipelines. We > > found a few problems with the first approach -- using .named() to create > a > > new transform -- which led to the introduction of the named apply: > > > > 1. When receiving an error about an application not having a name, it is > > not obvious that a name should be given to the *transform* > > 2. When using .named() to construct a new transform either the type > > information is lost or the composite transform has to override .named() > > > > We now generally suggest the use of .apply(someName, transform). It is > > easier to use and doesn’t lead to as much confusion around PTransform > names > > and PTransform application names. > > > > To that end, I'd like to propose the following changes to the code and > > documentation: > > 1. Replace the usage of .named(name) in all examples and composites with > > the named-apply syntax. > > 2. Replace .named(name) with a protected PTransform constructor which > takes > > a default name. If not provided, the default name will be derived from > the > > class of the PTransform. > > 3. Use the protected constructor in composites (where appropriate) to > > ensure that the default application has a reasonable name. > > > > Users will benefit from having a single way of naming applications while > > building a pipeline. Any breakages due to the removal of .named should be > > easily fixed by either using the named application or by passing the name > > to the constructor of a composite. > > > > I’d like to hear any comments or opinions on this topic from the wider > > community. Please let me know what you think! > > > > -- Ben > > > > -- > Jean-Baptiste Onofré > jbono...@apache.org > http://blog.nanthrax.net > Talend - http://www.talend.com >