Pet Peeve
-
if (condition) { this.DoThis(); } else { this.DoThat(); }
You probably meant
Ian Shlasko wrote:
It's not properly formatted until there's only one token per line in the entire application.
I guess it's theoretically possible... :~
public class SanderRossel : Lazy<Person>
{
public void DoWork()
{
throw new NotSupportedException();
}
} -
Why are people so lazy? For example, how hard is it to
if (condition)
{
DoThis();
}
else
{
DoThat();
}as opposed to:
if (condition)
DoThis();
else
DoThat();Pedants :sigh:
I don't care very much as long as it's consistent. But since you can't make multiple statements without braces...
Wrong is evil and must be defeated. - Jeff Ello (√-shit)2
-
I agree with you. And I am actually the kind of person that when has to modify something like:
if (something)
{
DoA();
DoB();
}To only call a DoAB(), I will go there and kill the extra { and }. So, I have more work doing that, but I keep consistency. So, it becomes:
if (something)
DoAB();That works fine until you get this in the code after all :)
if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0) goto fail; if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail; if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0) goto fail;
When I first saw that bug I got even more convinced see that my approach to braces everywhere as a must works better in the end.
Banking establishments are more dangerous than standing armies. T.Jefferson
-
Why are people so lazy? For example, how hard is it to
if (condition)
{
DoThis();
}
else
{
DoThat();
}as opposed to:
if (condition)
DoThis();
else
DoThat();Pedants :sigh:
Either one of those suits me fine. The ones I can't stand are these:
if (condition)
{
DoThis();
}
else
DoThat();if (condition)
DoThis();
else
{
DoThat();
}Anything that is unrelated to elephants is irrelephant
Anonymous
-----
The problem with quotes on the internet is that you can never tell if they're genuine
Winston Churchill, 1944
-----
I'd just like a chance to prove that money can't make me happy.
Me, all the time -
Mladen Janković wrote:
it can make you look obnoxious.
But I am obnoxious
Well I can't argue with that :)
-
Why are people so lazy? For example, how hard is it to
if (condition)
{
DoThis();
}
else
{
DoThat();
}as opposed to:
if (condition)
DoThis();
else
DoThat();Pedants :sigh:
-
Why are people so lazy? For example, how hard is it to
if (condition)
{
DoThis();
}
else
{
DoThat();
}as opposed to:
if (condition)
DoThis();
else
DoThat();Pedants :sigh:
Karel Čapek wrote:
Why are people so lazy?
Did it occur to you that it may be about style and not laziness? Some people can have even another style:
if (condition) DoThis();
else DoThat();To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson ---- Our heads are round so our thoughts can change direction - Francis Picabia
-
I prefer
if (something) DoAB();
for the latter. I never use it, but have recently come across it. It seems more readable to me.
No object is so beautiful that, under certain conditions, it will not look ugly. - Oscar Wilde
It's slower to read an if statement with code on the same line because your eyes have to track to the right. It's the same reason why you shouldn't place form titles and fields on the same line. Here's some articles on it: http://www.uxmatters.com/mt/archives/2006/07/label-placement-in-forms.php[^] http://uxmag.com/articles/eye-tracking-and-web-usability-a-good-fit[^]
Daniel Vaughan Twitter | Blog | Microsoft MVP | Projects: Calcium SDK, Clog | LinkedIn
-
It's slower to read an if statement with code on the same line because your eyes have to track to the right. It's the same reason why you shouldn't place form titles and fields on the same line. Here's some articles on it: http://www.uxmatters.com/mt/archives/2006/07/label-placement-in-forms.php[^] http://uxmag.com/articles/eye-tracking-and-web-usability-a-good-fit[^]
Daniel Vaughan Twitter | Blog | Microsoft MVP | Projects: Calcium SDK, Clog | LinkedIn
Cool, thanks. I've bookmarked those.
No object is so beautiful that, under certain conditions, it will not look ugly. - Oscar Wilde
-
Sure it's easy, until another developer adds a second line and forgets to add brackets. I've been working in some source code that didn't use brackets for single statements. I introduced a few bugs by not adding them when I had to and I've been wondering more than once if the original developer REALLY meant not to add brackets....
if (condition)
DoThis();
else
DoThat();
DoAnotherThing();is really weird to look at and at the very least makes you wonder if it was intended... Especially if
DoAnotherThing();
isn't properly in/outdented!public class SanderRossel : Lazy<Person>
{
public void DoWork()
{
throw new NotSupportedException();
}
}I am currently working on a system where most of the software was written in C in the early 1980s. It is formatted so badly that stuff like
if (condition) DoThis();
else DoThat();
DoAnotherThing();is not uncommon at all. Add to that, there is no consistent use of tabs vs. spaces, no consistent tab stops, no naming conventions. Honestly, use the braces or don't, just be consistent, dammit. Proper indentation is far more valuable than brace usage; don't use TAB for indentation, and do stuff the same way, every damn time.
"The only thing a free man can be forced to do is die." "The right to defend oneself and ones neighbors is the beginning of freedom." "Freedom? That is a worship word. . ." -- Cloud William "It is our worship word, too." -- James T. Kirk
-
Why are people so lazy? For example, how hard is it to
if (condition)
{
DoThis();
}
else
{
DoThat();
}as opposed to:
if (condition)
DoThis();
else
DoThat();Pedants :sigh:
-
if (condition) { this.DoThis(); } else { this.DoThat(); }
You probably meant
Ian Shlasko wrote:
It's not properly formatted until there's only one token per line in the entire application.
I guess it's theoretically possible... :~
public class SanderRossel : Lazy<Person>
{
public void DoWork()
{
throw new NotSupportedException();
}
}You guys need to investigate APL, a language described by one of my fellow students as "the ultimate in elegance"
Jim
-
I only remove braces on single-line method preconditions at the beginning of a method:
if (arg==null) throw new ArgumentNullException("arg", arg);
Everywhere else I put braces.
Vark111 wrote:
if (arg==null) throw new ArgumentNullException("arg", arg);
Let me guess - You're used to dealing with Pirated software??? ;)
Anything that is unrelated to elephants is irrelephant
Anonymous
-----
The problem with quotes on the internet is that you can never tell if they're genuine
Winston Churchill, 1944
-----
I'd just like a chance to prove that money can't make me happy.
Me, all the time -
Too much whitespace/not enough whitespace. The "Great Debate" goes on. Some programmers get paid by LOC, so they're induced to spread things out. Some programmers like to show how smart they are, so they try to condense everything to one line of cryptic functions. Other programmers heard "this" is the right way to do it. For me, the key is "consistency". I want my code and all my programmers' code to look identical. It should be totally transparent who wrote the code. And the code needs to be clear, quickly comprehensible and understandable, yet concise. I don't want to spend my time figuring out what John Doe was doing and maybe miss some key element when I'm under pressure to fix a problem or develop a new capability. I tell my programmers that "I was around long before you came and I will be around long after you leave. Do it my way because I will have to maintain it later." I just had to work on a one-liner script from another company that incorporated at least 12 function calls. Took me the better part of a week to figure out where the bug was. Yes it looked slick, but a week wasted is two weeks lost. That's my thoughts--clear, comprehensible, concise.
-
I agree with you. And I am actually the kind of person that when has to modify something like:
if (something)
{
DoA();
DoB();
}To only call a DoAB(), I will go there and kill the extra { and }. So, I have more work doing that, but I keep consistency. So, it becomes:
if (something)
DoAB(); -
but that's the start of the problem! someday, someone is going to have to come along and add some more logic in that if, and you've just forced them to do the work you should've done the first time! IMO
Correct. If you have a 'rule' which says, "(don't) use braces, except in these special cases", then you have to remember the special cases. I'm in the braces-good camp for the reasons Chris supplied above. Missing them doesn't make your code noticeably more concise, and does make your code (and, more importantly, your intentions, when you've run away from this project and I'm trying to figure it out [or vice-versa]) noticeably more readable.
-
The rule that I have is that you omit the braces iff the statement is a simple single line. Also, if either branch needs braces then both get them, and loops always have braces.
Curvature of the Mind now with 3D
You beat me to it man. If it's hard to read then I use them. For simple things concise wins. +5
Jeremy Falcon
-
Ok, you have a good point with that, but it's still not worth the trade off of having really extra long files / routines. Besides, it gives you something to spot the new guys with so you can give them a hard time.
Jeremy Falcon
-
It's 2014, who cares how long the code file is. It's easier to read with the extra {}, it's easier to maintain with the extra {}. The only downside is typing extra {}. Don't you get paid per line anyway??
I care. Being able to see more at a glance is nice. It's also less convoluted when it's a simple statement. And I don't get paid per line, nobody does. I get paid to deliver a product that's useful. Nobody cares about line count except other nerds / devs.
Jeremy Falcon
-
Karel Čapek wrote:
Why are people so lazy?
Did it occur to you that it may be about style and not laziness? Some people can have even another style:
if (condition) DoThis();
else DoThat();To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson ---- Our heads are round so our thoughts can change direction - Francis Picabia
Fabio Franco wrote:
Did it occur to you that it may be about style and not laziness?
No: people who do this tend to shortcut other things (sweeping generalization and/or observation over many years of being a coder) or crush the code into as small a space as possible making it hard to read. The point is really to have consistency of style and format in the code: braces make it easier to read. Consider this:
int a = 0;
string bean = "green";
float golden= 1.618;
if (condition)
{
x = 42;
bean = "eatme";
golden = a * pi;
}
else
a = 1;
bean = 'foo';
golden = a - x;I find that style difficult to read and adding the braces would make it much easier to see the flow. Oh, and then there are tabs v spaces... :-)