Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Ian Collins <ian-news@hotmail.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Redundant return() |
| Date | 2012-05-16 10:16 +1200 |
| Message-ID | <a1g2t5Fd96U6@mid.individual.net> (permalink) |
| References | (3 earlier) <27375124.1151.1337067212163.JavaMail.geo-discussion-forums@vbip22> <return-20120515095002@ram.dialup.fu-berlin.de> <jote6e$5e0$1@dont-email.me> <a1fqsoFd96U1@mid.individual.net> <joujlm$pv1$2@dont-email.me> |
On 05/16/12 09:59 AM, BartC wrote: > > > "Ian Collins"<ian-news@hotmail.com> wrote in message > news:a1fqsoFd96U1@mid.individual.net... >> On 05/15/12 11:20 PM, BartC wrote: >>> "Stefan Ram"<ram@zedat.fu-berlin.de> wrote: >>> >>>> If it is complex, we put it into a function »f«, so: >>> >>> But the body of f() will still be complex (as you've only eliminated a >>> couple of lines; it that now makes it simple, then it was *not* >>> complex!); >>> then what? Suppose there were several such returns in a function? You >>> would >>> end up *increasing* complexity (by extra functions, extra names, extra >>> interfaces) for no discernible benefit. Actually it would be probably be >>> slower, less readable, and more buggy. >> >> Testing. A large, complex, function is hard to test. More less complex >> functions are easier to test. > > I don't see that. You're testing inputs and outputs. A function which is > 'complex' in the amount of logic it contains, can still have simple > requirements and be straightforward to test. But if you change something and break the function, a swag of tests will fail and you then have to work out why (or back out the edit). > But one which is arbitrarily broken up into pieces, now needs to have a > meaningful set of specifications drawn up for each part. Who mentioned arbitrarily? The tests *are* the specification. >> That's why code written test first won't contain large, complex, >> functions. > > That's right; you build a framework of one hundred functions, all initially > empty (or with some stub). No. > They each do ten different things depending on > some parameter. Each of those things is straightforward by itself, but can > be added one by one, function by function. In the end you have 5000 > different things split amongst 100 functions. No. > Your way, there would be 5000 2-line functions. Plus 100 dispatcher > functions. No. > And most of the relationships amongst each group of ten, has > disappeared. My typical function size is 10-20 lines. -- Ian Collins
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Redundant return() pembed2012 <once@was.enough.invalid> - 2012-05-12 21:41 +0000
Re: Redundant return() pembed2012 <once@was.enough.invalid> - 2012-05-12 21:56 +0000
Re: Redundant return() Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2012-05-12 17:07 -0600
Re: Redundant return() James Kuyper <jameskuyper@verizon.net> - 2012-05-12 18:46 -0400
Re: Redundant return() Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-05-12 20:10 -0400
Re: Redundant return() James Kuyper <jameskuyper@verizon.net> - 2012-05-12 21:29 -0400
Re: Redundant return() Barry Schwarz <schwarzb@dqel.com> - 2012-05-12 15:49 -0700
Re: Redundant return() pembed2012 <once@was.enough.invalid> - 2012-05-14 16:40 +0000
Re: Redundant return() Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-05-14 17:57 +0100
Re: Redundant return() nick_keighley_nospam@hotmail.com - 2012-05-15 00:33 -0700
Re: Redundant return() nick_keighley_nospam@hotmail.com - 2012-05-15 03:03 -0700
Re: Redundant return() nick_keighley_nospam@hotmail.com - 2012-05-15 03:26 -0700
Re: Redundant return() James Kuyper <jameskuyper@verizon.net> - 2012-05-15 08:51 -0400
Re: Redundant return() "BartC" <bc@freeuk.com> - 2012-05-15 12:20 +0100
Re: Redundant return() Ian Collins <ian-news@hotmail.com> - 2012-05-16 07:59 +1200
Re: Redundant return() Kaz Kylheku <kaz@kylheku.com> - 2012-05-15 20:08 +0000
Re: Redundant return() Ian Collins <ian-news@hotmail.com> - 2012-05-16 08:18 +1200
Re: Redundant return() Lanarcam <lanarcam1@yahoo.fr> - 2012-05-15 22:48 +0200
Re: Redundant return() Ian Collins <ian-news@hotmail.com> - 2012-05-16 09:56 +1200
Re: Redundant return() "BartC" <bc@freeuk.com> - 2012-05-15 22:59 +0100
Re: Redundant return() Ian Collins <ian-news@hotmail.com> - 2012-05-16 10:16 +1200
Re: Redundant return() "BartC" <bc@freeuk.com> - 2012-05-16 09:29 +0100
Re: Redundant return() Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-05-15 07:51 -0400
Re: Redundant return() James Kuyper <jameskuyper@verizon.net> - 2012-05-15 08:47 -0400
Re: Redundant return() Ian Collins <ian-news@hotmail.com> - 2012-05-16 08:01 +1200
Re: Redundant return() "BartC" <bc@freeuk.com> - 2012-05-15 22:58 +0100
Re: Redundant return() Ian Collins <ian-news@hotmail.com> - 2012-05-16 10:24 +1200
Re: Redundant return() James Kuyper <jameskuyper@verizon.net> - 2012-05-15 18:39 -0400
Re: Redundant return() nick_keighley_nospam@hotmail.com - 2012-05-16 02:45 -0700
Re: Redundant return() Noob <root@127.0.0.1> - 2012-05-16 13:34 +0200
csiph-web