Isn't this fantastic? The "Author aa" part is just adding pointless confusion, but using 'i' as a loop counter is standard practice and by sticking to just 'i', those reading the code get a quick visual cue. In other words, shortening indexOfAuthorInCurrentIteration to 'i' is a significant improvement in readability. Not really because 'i' is short, though.
Also, while descriptive variable names are important, "currentAuthorBeingIteratedOver" is silly. just "author" will be fine; by declaring it inside the loop, its context is limited to a single iteration within it, and thus the 'currentXBeingIteratedOver' part is implicit. Not stating the obvious aids readability. That's probably the biggest source of code readability you can find and covers both DRY violations and boilerplate, as well as overly wordy variable names. On the other hand, shortening 'author' to 'a' IS a pointless reduction and actively hurts readability, even if it is shorter. Neither wordiness nor conciseness are by themselves acceptable standards of code quality and readability. It's just not that easy! Interesting aside: When Microsoft and IBM decided to work together on OS/2, IBM firmly believed that length of code indicated quality, and thus measured everything in LOCs written. Naturally, IBM engineers added boatloads of boilerplate: Comments stating the obvious, saving the results of intermediate expressions to variables taken to an extreme, and other such practices that are very effective at inflating LOC while only hurting readability. They got better paid when they did it, what would you expect would happen? At the same time, microsoft was back then very much in the conciseness trumps all phase. You wouldn't expect it (during this time VB was released, which isn't exactly a concise language), but I hear from various people that worked there at the time that this was essentially true. Certainly measuring code progress by LOCs written was abhorrent to Gates and crew, and some have pointed the finger directly at this fundamental difference between the two teams for the flop that was the M$+IBM joint venture OS/2. M$ decided to cancel their original plan to phase out windows in favour of OS/2, bought a bunch of VMS talent, and started work on NT instead. IBM took over all OS/2 development, and the rest is history. On Oct 25, 3:26 pm, Augusto Sellhorn <[email protected]> wrote: > This is really bizarre, I've heard people say that fewer lines of code > is desirable, but this is the first time I hear somebody say that X% > fewer characters lead almost exactly to X% reduction in complexity! > > --------------- > > for(int > indexOfAuthorInCurrentIteration=0; > indexOfAuthorInCurrentIteration<=authorsFromNameQuery.length; > ++indexOfAuthorInCurrentIteration) { > Author currentAuthorBeingIteratedOver > = authorsFromNameQuery[indexOfAuthorInCurrentIteration] > // do something with the author > > } > > --------------- > > Nobody is saying you have to use super long names here, what you are > saying is that less characters more % reduction in complexity, which > leads to this > > for (int i=0; i <= aq.length; ++i) { > Author aa = aq[i]; > // do something with the author > > } > > Which I don't think results in any % less chances of bugs, as a matter > of fact it ends up being less readable than some reasonable and clear > names that could have been applied. > > I hope in your code reviews you are not doing character counts and > blasting developers on these bogus measurements. -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
