Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #11564
| From | Robert Klemme <shortcutter@googlemail.com> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Blocks for scope control |
| Date | 2012-01-21 13:25 +0100 |
| Message-ID | <9nvp52Fe8iU1@mid.individual.net> (permalink) |
| References | <dBCQq.122$d%2.16@newsfe07.iad> <jev7op$j4k$1@news.albasani.net> <IRHQq.2650$2C.1194@newsfe20.iad> <9ni009F82hU1@mid.individual.net> <Wf3Sq.544$yi7.385@newsfe23.iad> |
On 20.01.2012 02:16, Arved Sandstrom wrote: > On 12-01-16 02:55 AM, Robert Klemme wrote: >> On 15.01.2012 22:49, Arved Sandstrom wrote: > [ SNIP ] > >> Regarding the method refactoring argument: if there is so much code and >> hence so many local variables that you want to use blocks to introduce >> smaller scopes chances are that the logic within that blocks is also >> largely independent from the code around so it is a good candidate for >> refactoring anyway. The reason for refactoring into methods isn't the >> scope but the independent logic. > Let me give you an example. Some days prior to writing my post I had to > write some code that processed a number of items in a similar fashion. > Each item was a matter of 2 or 3 lines of code. In theory each process > could have been collapsed into one very long line with multiple > duplicated and chained method calls, rather than use temporary local > variables, but I abhor this practice. So for clarity I kept the > operations on each item as 2 or 3 lines of code with at least one > temporary local variable. > > Although the type of the local variable was the same, the operations > that produced it were not - they depended on the item. So any method > that would have replaced all these individually simple simple groups of > operations would have been either a moderately complex switch or a > moderately complex if-else if-else structure, less easy to understand, > and more error-prone. Furthermore, a flag would have been necessary to > the method to indicate which branch to take. Why _one_ method? There could be a method for each variant, couldn't it? Chances are that the same code could be used for several items so you end up with less methods than items. > As you may have guessed this logic had to do with post-processing > various String and Boolean command-line options delivered by a > command-line processor. Quite frankly there is nothing pretty about > this, and there never has been in any language I've ever used - all you > can hope for is to keep the code clear, as error-free as possible, as > change-proof as possible (one of the main reasons for me using local > blocks actually), and just tolerate the boilerplate processing otherwise. I agree that this boilerplate is tedious, regardless how you do it. But I didn't guess that your description was about such a scenario. ;-) > However, the intent of the thread was to get some feedback, and I thank > you all for it. You're welcome! Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Blocks for scope control Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-01-15 11:50 -0400
Re: Blocks for scope control Robert Klemme <shortcutter@googlemail.com> - 2012-01-15 17:10 +0100
Re: Blocks for scope control Robert Klemme <shortcutter@googlemail.com> - 2012-01-15 17:32 +0100
Re: Blocks for scope control Lew <noone@lewscanon.com> - 2012-01-15 11:21 -0800
Re: Blocks for scope control Robert Klemme <shortcutter@googlemail.com> - 2012-01-16 07:59 +0100
Re: Blocks for scope control markspace <-@.> - 2012-01-15 09:57 -0800
Re: Blocks for scope control Lew <noone@lewscanon.com> - 2012-01-15 11:28 -0800
Re: Blocks for scope control Lew <noone@lewscanon.com> - 2012-01-15 11:00 -0800
Re: Blocks for scope control Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-01-15 17:49 -0400
Re: Blocks for scope control Lew <noone@lewscanon.com> - 2012-01-15 15:45 -0800
Re: Blocks for scope control Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-01-19 21:54 -0400
Re: Blocks for scope control Robert Klemme <shortcutter@googlemail.com> - 2012-01-20 08:41 +0100
Re: Blocks for scope control Lew <noone@lewscanon.com> - 2012-01-20 15:24 -0800
Re: Blocks for scope control Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-01-20 19:30 -0400
Re: Blocks for scope control Lew <noone@lewscanon.com> - 2012-01-20 15:54 -0800
Re: Blocks for scope control Robert Klemme <shortcutter@googlemail.com> - 2012-01-16 07:55 +0100
Re: Blocks for scope control Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-01-19 21:16 -0400
Re: Blocks for scope control Robert Klemme <shortcutter@googlemail.com> - 2012-01-21 13:25 +0100
Re: Blocks for scope control Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-01-21 10:41 -0400
Re: Blocks for scope control Robert Klemme <shortcutter@googlemail.com> - 2012-01-22 13:03 +0100
Re: Blocks for scope control Roedy Green <see_website@mindprod.com.invalid> - 2012-01-16 06:09 -0800
Re: Blocks for scope control Henk van Voorthuijsen <voorth@xs4all.nl> - 2012-01-16 07:03 -0800
Re: Blocks for scope control Arne Vajhøj <arne@vajhoej.dk> - 2012-01-17 18:43 -0500
Re: Blocks for scope control Lew <noone@lewscanon.com> - 2012-01-20 11:05 -0800
Re: Blocks for scope control Gene Wirchenko <genew@ocis.net> - 2012-01-20 12:11 -0800
Re: Blocks for scope control Arne Vajhøj <arne@vajhoej.dk> - 2012-02-06 21:24 -0500
csiph-web