beehive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daryl Olander <dolan...@gmail.com>
Subject Re: checkstyle and code conventions
Date Wed, 08 Jun 2005 13:29:57 GMT
Obviously, we are pretty split in the code base.  I think the majority
of the interfaces inside NetUI use the 'I' and outside of NetUI there
may not be any.   I think we should just punt on this one and say
"consistency" within a set of code overrides consistency across
Beehive.  New interfaces should probably not use 'I', but in areas
where it is used extensively, they may (for example the tags).

No way do I want to deprecate interfaces and change them to the other
version.  If we want to do that we should do it now and just replace
them before we finalize 1.0.  This would require I believe a vote to
go forward with because it does affect anyone subclassing things (I
know there are at least some tag sublcasses out there).

That said, I'm a strong supporter of 'I' on interfaces.  Having
written a lot of C#/CLR in the last 4 months, I think this makes
things very readable and understandable when you are unfamiliar with
the code. (This is the same argument for the '_' on module level
variables.)

On 6/8/05, Eddie ONeil <ekoneil@gmail.com> wrote:
>   The "I" naming convention is applied to only Java interfaces like:
> 
>   public interface IFoo {...}
> 
> It's not meant to be used on abstract base classes -- which aren't
> interfaces -- just an API.
> 
>   It's really meant to make very obvious in code what is and is not an
> interface without having to consult the Javadoc.
> 
>   It's a convention both Daryl and I used a bunch, but I'm not wedded
> to it and would be fine if we agreed to move away from it.  Doesn't
> seem that common in Java land anyway...
> 
> Eddie
> 
> 
> On 6/8/05, Jeremiah Johnson <jerjohns@bea.com> wrote:
> > > [9] We name interfaces with a 'I' at the beginning of them...
> >
> > Is this point about Java interfaces or conceptual interfaces?
> >
> > For example, PageFlowConstants is a Java interface, but not really an
> > 'interface' in my opinion.  While constants inside of PageFlowConstants
> > may be part of the API between two entities, the PageFlowConstants file
> > itself does not define any methods so it isn't really an API between two
> > entities.
> >
> > On the other hand, SQLSupportConfig does fit my definition of interface
> > but it isn't a 'Java interface'.  It is defined as 'public abstract
> > class SQLSupportConfig'.
> >
> > Or does something need to be a Java interface and be externally visible
> > to be a big-I interface?
> >
> > Something else?
> >
> > - jeremiah
> >
> >
>

Mime
View raw message