+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

Reply via email to