gnn, was to quick at pressing the send button

I still like it but would prefer to have bracelets even for 1-line statements. 
This makes maintaining the code a lot easier later.

LieGrue,
strub

--- On Wed, 9/30/09, Mark Struberg <[email protected]> wrote:

> From: Mark Struberg <[email protected]>
> Subject: Re: Style: "Flattening" code blocks
> To: [email protected]
> Date: Wednesday, September 30, 2009, 12:12 PM
> I like it 
> +1 
> :)
> 
> LieGrue,
> strub
> 
> --- On Wed, 9/30/09, David Blevins <[email protected]>
> wrote:
> 
> > From: David Blevins <[email protected]>
> > Subject: Style: "Flattening" code blocks
> > To: [email protected]
> > Date: Wednesday, September 30, 2009, 8:00 AM
> > There are places in the code that
> > have excessive nesting.  For some reason books show
> > this and everyone does it and I certainly did at first
> too,
> > but having to deal with trees of logic 3-4 levels deep
> can
> > really be a pain.  Many times the logic can be made
> > completely linear with no else cases.  A big sign of
> > that is when you repeat your else case many times.
> > 
> > I started to work an example in email, but refactoring
> is
> > hard to describe once you get beyond one or two steps
> and
> > decided to just show you what I mean:
> > 
> >   http://people.apache.org/~dblevins/ExcessNesting.mov
> > 
> > That video basically shows how this:
> > 
> >     public boolean hasBinding2(List<Class<?
> > extends Annotation>> bindingTypes,
> > List<Annotation> annots)
> >     {
> >         boolean result = false;
> > 
> >         if (bindingTypes != null
> > && annots != null &&
> (bindingTypes.size() ==
> > annots.size()))
> >         {
> >             int i = 0;
> >             for (Class<?
> > extends Annotation> bindingType : bindingTypes)
> >             {
> >                 if
> > (this.interceptorBindingSet.containsKey(bindingType))
> >                 {
> >                
> >     Annotation target =
> > this.interceptorBindingSet.get(bindingType);
> >                
> >     if
> > (AnnotationUtil.hasAnnotationMember(bindingType,
> > annots.get(i), target))
> >                
> >     {
> >                
> >         result = true;
> >                
> >     }
> >                
> >     else
> >                
> >     {
> >                
> >         return false;
> >                
> >     }
> >                 }
> >                
> > else
> >                 {
> >                
> >     return false;
> >                 }
> > 
> >                
> > i++;
> >             }
> >         }
> > 
> >         return result;
> >     }
> > 
> > Can be turned into this:
> > 
> >     public boolean hasBinding(List<Class<?
> > extends Annotation>> bindingTypes,
> > List<Annotation> annots)
> >     {
> >         if (bindingTypes == null ||
> > annots == null) return false;
> >         if (bindingTypes.size() !=
> > annots.size()) return false;
> >         if (bindingTypes.size() == 0)
> > return false;
> > 
> >         int i = 0;
> >         for (Class<? extends
> > Annotation> bindingType : bindingTypes)
> >         {
> >             Annotation target
> > = this.interceptorBindingSet.get(bindingType);
> > 
> >             if (target ==
> > null) return false;
> > 
> >             if
> > (!AnnotationUtil.hasAnnotationMember(bindingType,
> > annots.get(i), target)) return false;
> > 
> >             i++;
> >         }
> > 
> >         return true;
> >     }
> > 
> > 
> > Not sure if people like this style of code, but
> figured I'd
> > share and see what you all thought.
> > 
> > 
> > -David
> > 
> > 
> 
> 
> 
> 



Reply via email to