Thanks for the clarification. I forgot about backward compatibility. As for
code complete, in the Design Extensions Readme Kit.txt I found this
reference:

PicnicExtensions

    This is a Flex Library project that defines the design view extension
classes
    for the picnic components. Note that the DesignExtensions and Picnic
projects
    are on the Library Path of this project.

    Many IComponentExtension functions are implemented by one or more of
these extension classes.
    All class definitions are preceded with an [ExcludeClass] metadata tag
so that the class is
    not included in code hints. This way, client projects that use the
Picnic classes will not
    receive code hints for these design extension classes.

    The design.xml file in the Picnic project sets up the associations
between the
    Picnic components and the corresponding design extension class in this
project.


I don't think that documenting means all these other things. I think once
you know it exists you have the possibility of breaking things when the
class is updated or changed or causing interdependency because for me and
another dev recently are using MediaQueryImporter already all that
ExcludeClass has done was hide it from some highly visible locations. It is
still found when you come across it in the SDK files (or through Spotlight)
or Open Type ( CMD + SHIFT + T ). Once you know it exists, you can start
using it. It's not quite the same as private which prevents you from using
it unless you modify the SDK. I think it's closer to mx_internal but not as
tricksy (as gollum would say). You don't have to declare a namespace or do
anything special except know it's name.

I'm trying to get a list of classes that have ExcludeClass in them so we
can compare. I know that working on the TLF SDK there were way too many
classes that had ExcludeClass and the compiler would complain until I
removed that tag. It seemed more like it was used because the class had
very little comments. I think as developers it's OK to see classes that may
not be fully documented. Before, when the SDK was under Adobe's umbrella it
made sense but now, if we see a class that is not fully baked or has few
comments or documentation we can do something about it. My 2 cents



On Sun, Aug 17, 2014 at 12:07 AM, Alex Harui <aha...@adobe.com> wrote:

> Interesting.  I'd never heard of auto-complete as a reason to use
> ExcludeClass.  Size of documentation is a concern, but the main issue,
> IMO, regarding private, @private, mx_internal and/or ExcludeClass is about
> backward-compatibility.  Once you document it, you can't go changing it
> without fear of breaking someone's code.  So, you'd better be pretty happy
> with the API names that you want to document, and probably should make
> sure the API doesn't create a tangled nest of dependencies.
>
> So, I'd argue that you shouldn't remove every ExcludeClass or make every
> private method public.  But if any committer finds something useful and
> worth documenting, then we should think about the backward-compatibility
> impact and make the change unless there will be serious repercussions.
>
> -Alex
>
> On 8/16/14 2:29 PM, "jude" <flexcapaci...@gmail.com> wrote:
>
> >For discussion, I think we should remove the [ExcludeClass] from all the
> >classes in the SDK. The reasons are mainly that I've found really useful
> >classes usually after the fact that were excluded from auto complete and
> >documentation. The reasons for ExcludeClass seem to be to make auto
> >complete faster and remove classes that were deemed not to be important to
> >developers. I've never had an issue with auto complete being slow and the
> >last time I was paying attention to what showed in auto complete in AS3 as
> >I typed was after the first month of use. That is, I don't notice the
> >classes I'm not looking for as I type but I do notice classes that I find
> >useful. So if these classes showed up in auto complete it would be *more*
> >beneficial as I will notice them when I need them and not notice them when
> >I don't.
> >
> >Another reason to remove ExcludeClass is there are cases that these
> >classes
> >do not show up in MXML using the mxmlc or in AS3 projects where they will
> >be used. This causes the compiler to complain and in some cases the app
> >can't be compiled. Now that everyone agrees we should take a vote.
>
>

Reply via email to