[Tutor] Re: Request for code critique ['break' vs control flag]
Erik Price
erikprice at mac.com
Sat Oct 25 16:53:33 EDT 2003
On Thursday, October 23, 2003, at 01:00 AM, Alan Gauld wrote:
> I think the issue is that this is NOT a style thing. It's
> one of the basic tenets of structured programming and based
> on actual hard data. Having multiple exit points makes code
> harder to comprehend and hence more prone to error.
Aren't exceptions a kind of exit?
Personally, I think multiple exits are great. At work I'm responsible
for maintaining some extremely ugly Java code (it looks more like C
than Java, taking little advantage of OO), and one of the things I am
doing is applying refactorings it to make it more readable. A lot of
it consists of gigantic methods, hundreds of lines long, which simply
set various flag variables throughout the body of the method, and then
analyze the flags at the end of the method to determine what value to
return or behavior to perform. Sometimes this is unavoidable, but I
find it much more readable to use use "Extract Method" refactoring to
put some large chunk of code into a purposefully-named utility method
(read: "function"), and return values explicitly from the point in the
code where the processing can stop -- otherwise the reader has to
continue to read the code long past the point where the flag is finally
set, and make sure that it's not being re-set at some point later in
the code, before it's finally returned.
Erik
More information about the Tutor
mailing list