From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,FREEMAIL_FROM, INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: f43e6,9a0ff0bffdf63657 X-Google-Attributes: gidf43e6,public X-Google-Thread: fac41,9a0ff0bffdf63657 X-Google-Attributes: gidfac41,public X-Google-Thread: 1108a1,9a0ff0bffdf63657 X-Google-Attributes: gid1108a1,public X-Google-Thread: 103376,4b06f8f15f01a568 X-Google-Attributes: gid103376,public From: sureshvv@hotmail.com Subject: Re: Software landmines (loops) Date: 1998/09/02 Message-ID: <6sk59r$8e6$1@nnrp1.dejanews.com>#1/1 X-Deja-AN: 387211647 References: <902934874.2099.0.nnrp-10.c246a717@news.demon.co.uk> <6r1glm$bvh$1@nnrp1.dejanews.com> <6r9f8h$jtm$1@nnrp1.dejanews.com> <6renh8$ga7$1@nnrp1.dejanews.com> <6rf59b$2ud$1@nnrp1.dejanews.com> <6rfra4$rul$1@nnrp1.dejanews.com> <35DBDD24.D003404D@calfp.co.uk> <6sbuod$fra$1@hirame.wwa.com> <35f51e53.48044143@ <904556531.666222@miso.it.uq.edu.au> <6sf87j$47n$1@hirame.wwa.com> <6sh6ic$o8p$1@nnrp1.dejanews.com> <6shhcq$lid$1@hirame.wwa.com> X-Http-Proxy: 1.0 x2.dejanews.com:80 (Squid/1.1.22) for client 207.71.79.77 Organization: Deja News - The Leader in Internet Discussion X-Article-Creation-Date: Wed Sep 02 19:11:55 1998 GMT Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada X-Http-User-Agent: Mozilla/4.5b1 [en] (WinNT; I) Date: 1998-09-02T00:00:00+00:00 List-Id: In article <6shhcq$lid$1@hirame.wwa.com>, "Robert Martin" wrote: > > sureshvv@hotmail.com wrote in message <6sh6ic$o8p$1@nnrp1.dejanews.com>... > > >1. Early returns aid in limiting the amount of code that has to be > processed > >and understood. > > I disagree. It only limits the amount of code to read for one particular > iteration of the loop. But to understand the loop you have to read it all. > > I do not think that number of iterations a loop makes is of primary importance while examining an unfamiliar piece of code. In the example we have been discussing, the early return indicates that if the stacks are of different length the stacks are different and examining the items in the stack is unnecessary. This logic is immediately apparent with the early return than with the flags that you added in order to conform to the se/se principle. > >2. Understandability is the most important criterion for maintainability. > > I disagree again. An easily modifiable structure is much more important > than understandability. *Any* structure built by a human can be understood > by most other humans. Once understood, the work is over. But a structure > that is hard to maintain, remains hard to maintain until you redesign it. Maintenance is redesign. It is more important that your methods be small and focussed enough that they can be rewritten relatively quickly in the face of new requirements than being harder to read (with various flags to help conform to the single entry-exit principle) just so they give you space to squeeze in some new code. > There are many structures that are easy to understand but hard to maintain. But maintain against what kind of changes? Your examples were all about using some resource that needs to be finalized, and will be properly handled by using the Resource acquisition is initialization (RAI, to be Ellesque) idiom. > >Making the code as simple as possible in order to solve the problem at hand > >is more important than trying to make it easier to change against some > >imaginary future changes. > > I disagree one last time. Two digit dates are much easier to deal with than > four digit dates. Until the century changes... Y2K, the last resort of usenet arguments. INMO, 2 digit dates were an engineering tradeoff, that made sense when they were written just like 4 digit dates do now (which will break after the year 9999). > The engineer who does not > design for maintainability, is doing a disservice to himself, his fellow > engineers, and his employer. More bs. The argument is if using flags to conform to the se/se principle, makes the code more maintainable. The engineer who spends his time making his code more complex to protect against a certain kind of changes (which are better handled using techniques, such as Resource acquisition is initialization) is wasting the time of his fellow engineers and the resources of his employer. suresh -----== Posted via Deja News, The Leader in Internet Discussion ==----- http://www.dejanews.com/rg_mkgrp.xp Create Your Own Free Member Forum