What is Better Code in Your Opinion?
-
I'm not sure I understand your broken sentence rightly, but it sounds like you don't understand the difference between "a programming question" and "a question about programming practice." A programming question would be something like "how do you code the travelling salesman algorithm in Plain English?" * * and the answer would be a lot of dodging about without actually answering the question! :)
Matt Gerrans
Matt Gerrans wrote:
A programming question would be something like "how do you code the travelling salesman algorithm in Plain English?" *
You have to give Jerry credit though, it is a fine line being walked. And, for reasons of people searching for this stuff (let's assume the CP site search works :rolleyes:) it would be better off belonging in the VC++ forum. Personally, I'm indifferent on this one, but I do see where he's coming from.
Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]
-
What happened to if(IsLounge) { Label1.Text="No Programming Questions"; } elseif { Label1.Text="Ask in appropriate forum"; }
A room without books is like a body without a soul. - Cicero (106 BC - 43 AD)
My thoughts: I find it totally appropriate that we can talk about programming in a casual way in the lounge. After all, that's what on our minds. I just don't want to see the lounge flooded with "help with my homework" requests, and "I know the VC++ forum, but I hope to get a quicker and more detailed answer here". If, to enforce this, we have to ban all programming talk from the lounge, I can live with this. But I rather have people show good manners and good taste, and don't crash into a doctors apres-ski party to ask about their furuncles. Above question is fine with me (as are the XDay programming quizzes)
Developers, Developers, Developers, Developers, Developers, Developers, Velopers, Develprs, Developers!
We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
Linkify!|Fold With Us! -
My thoughts: I find it totally appropriate that we can talk about programming in a casual way in the lounge. After all, that's what on our minds. I just don't want to see the lounge flooded with "help with my homework" requests, and "I know the VC++ forum, but I hope to get a quicker and more detailed answer here". If, to enforce this, we have to ban all programming talk from the lounge, I can live with this. But I rather have people show good manners and good taste, and don't crash into a doctors apres-ski party to ask about their furuncles. Above question is fine with me (as are the XDay programming quizzes)
Developers, Developers, Developers, Developers, Developers, Developers, Velopers, Develprs, Developers!
We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
Linkify!|Fold With Us!That's pretty much my thoughts on the matter too, just in case anyone actually cared to know that. :laugh:
Jeremy Falcon "It's a good thing to do and a tasty way to do it." - Wilford Brimley[^]
-
I'm not sure I understand your broken sentence rightly, but it sounds like you don't understand the difference between "a programming question" and "a question about programming practice." A programming question would be something like "how do you code the travelling salesman algorithm in Plain English?" * * and the answer would be a lot of dodging about without actually answering the question! :)
Matt Gerrans
-
You're all wrong. The correct answer depends on how you're getting paid - by the number of lines written(then the first), or by the functionality implemented (then the second). Yup, thats it;)
:badger:
I wonder why a company would pay you by line, because that first construct could really use some more comments if you get payed by the line ;P
WM. What about weapons of mass-construction? "You can always try to smash it with a wrench to fix that. It might actually work" - WillemM
-
Jerry Hammond wrote:
elseif
Should this not be "else"?
Brad Australian By contacting your lawyer you negate the right to sue me.
yes, see title of my reply to him. :)
"Throughout human history, we have been dependent on machines to survive. Fate, it seems, is not without a sense of irony. " - Morpheus
-
If I really wanted to do it right, I'd do something like:
bstrValue = GetBitStateAsStateString(READBIT(*pGlobalFlags, uFlag));
or, if you want to go for debuggable/more readable:
byte bit=READBIT(*pGlobalFlags, uFlag);
bstrValue = GetBitStateAsStateString(bit);This gives you at least a fighting chance to handle internationalization and centralizes the meaning of a bit when converted to a string. After all, "True" and "False" might be equally valid, so you might have:
bstrValue = GetBitStateAsTruthString(READBIT(*pGlobalFlags, uFlag));
And no, I don't write code like that usually myself! :) Marc
People are just notoriously impossible. --DavidCrow
There's NO excuse for not commenting your code. -- John Simmons / outlaw programmer
People who say that they will refactor their code later to make it "good" don't understand refactoring, nor the art and craft of programming. -- Josh SmithI was going to say neither but I didn't feel like typing why :D So if those are your only two options then #2 (no pun intended) but I also agree with Marc on the other points.
Todd Smith
-
Personally, I would do it like this, kinda taking best of both options (IMO).
// getting string value from flag
strValue = (READBIT(*pGlobalFlags, uFlag))?"ON":"OFF";// do different stuff depending on value of strValue
if(strValue == "ON")
{
MyTaskFunction();
}
else
{
MyAnotherTaskFunction();
}
"Throughout human history, we have been dependent on machines to survive. Fate, it seems, is not without a sense of irony. " - Morpheus
What if you need to change the representation for "ON" and "OFF"?
Todd Smith
-
What if you need to change the representation for "ON" and "OFF"?
Todd Smith
How does it relate to original poster's question, which I believe was about
if...else
construct vs ternary operator? Oh well at least I now know why my style got voted down. :doh:
"Throughout human history, we have been dependent on machines to survive. Fate, it seems, is not without a sense of irony. " - Morpheus
-
:P It's style question. People usually get away with it. IMO its equal to "Do you like code red or pitr-cola more?" kind of question.
"Throughout human history, we have been dependent on machines to survive. Fate, it seems, is not without a sense of irony. " - Morpheus
dnh wrote:
Do you like code red or pitr-cola more
Code red! ;P though I think I miss Jolt Cola the most. :)
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
-
That's pretty much my thoughts on the matter too, just in case anyone actually cared to know that. :laugh:
Jeremy Falcon "It's a good thing to do and a tasty way to do it." - Wilford Brimley[^]
How about a reward system? Once you've submitted X articles of Y quality you can post anything, anywhere you want :D
Todd Smith
-
dnh wrote:
Do you like code red or pitr-cola more
Code red! ;P though I think I miss Jolt Cola the most. :)
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
http://ars.userfriendly.org/cartoons/?id=20020520[^] :)
"Throughout human history, we have been dependent on machines to survive. Fate, it seems, is not without a sense of irony. " - Morpheus
-
Ooh c'mon, I wanted to ask that for plain mandarin ;P
WM. What about weapons of mass-construction? "You can always try to smash it with a wrench to fix that. It might actually work" - WillemM
WillemM wrote:
Ooh c'mon, I wanted to ask that for plain mandarin
:doh: I had to read that at least three times before I realized you were talking about the language not the fruit! :) Maybe Jeremy can present the 3D Plain Oatmeal implementation as a demo of his API. :)
Matt Gerrans
-
I wonder why a company would pay you by line, because that first construct could really use some more comments if you get payed by the line ;P
WM. What about weapons of mass-construction? "You can always try to smash it with a wrench to fix that. It might actually work" - WillemM
I dunno, there just seems to be an explosion of people who write so many unnecessary lines that it seems they're geting paid by the line count.
:badger:
-
This:
//If the flag is on then if(READBIT(\*pGlobalFlags, uFlag)) { //Value is set to on bstrValue = "ON"; } else { //Value is set to off bstrValue = "OFF"; }
Or this:
bstrValue = READBIT(*pGlobalFlags, uFlag) ? "ON" : "OFF";
:confused:
Matt Gerrans
The second, so you can do:
const BSTR bstrValue = READBIT(*pGlobalFlags, uFlag) ? "ON" : "OFF";
I tend to write code with lots of consts (kind of an emulation of a functional style), so I use the conditional operator a lot.
-
This:
//If the flag is on then if(READBIT(\*pGlobalFlags, uFlag)) { //Value is set to on bstrValue = "ON"; } else { //Value is set to off bstrValue = "OFF"; }
Or this:
bstrValue = READBIT(*pGlobalFlags, uFlag) ? "ON" : "OFF";
:confused:
Matt Gerrans
Matt Gerrans wrote:
bstrValue = READBIT(*pGlobalFlags, uFlag) ? "ON" : "OFF";
I prefer this one, it looks like "advance source code" :-D:-D
"Courage choose who will follow, Fate choose who will lead" - Lord Gunner, Septerra Core "Press any key to continue, where's the ANY key ?" - Homer Simpsons Drinking gives me amazing powers of insight. I can solve all the worlds problems when drunk, but can never remember the solutions in the morning. - Michael P Butler to Paul Watson on 12/08/03
-
Generally the latter, but in this instance I would prefer the former. The comments document the fact the message refers to the state of the 'value'. Without the comments, I may have thought the function simply returned a success flag. I might expect it place the actual value in one of the parameters. I would then need to look more closely at the definition/implementation/comments of the Read function to determine more about how it worked.
-- The Obliterator
-
Generally the latter, but in this instance I would prefer the former. The comments document the fact the message refers to the state of the 'value'. Without the comments, I may have thought the function simply returned a success flag. I might expect it place the actual value in one of the parameters. I would then need to look more closely at the definition/implementation/comments of the Read function to determine more about how it worked.
-- The Obliterator
Obliterator wrote:
I would then need to look more closely at the definition/implementation/comments of the Read function to determine more about how it worked.
If there were side-effects, this is something i would expect to be indicated, either in code or in comments. Neither block indicated such a thing, the comments in the first merely describing what was implicit in the code.