What are your code pet-peeves?
-
Harvey Saayman wrote:
What do you hate seeing in code?
That's a tough one, but as a start I'd say:
- C++ code in which the author didn't know (or didn't care) how to use
const
correctly. - Untestable code with a high cyclomatic complexity[^]
- Untidy code (yes, I do Code Like A Girl[^]. That way, other people can maintain it). ;)
Anna :rose: Having a bad bug day? Anna's Place | Tears and Laughter "If mushy peas are the food of the devil, the stotty cake is the frisbee of God"
i can t comment on the C++ cause i cant / havnt coded in any other language than C# and tSQL
Anna-Jayne Metcalfe wrote:
Untestable code with a high cyclomatic complexity
i agree, but in my situation it is often imposible to get a lower cyclomatic complexity score cause of the flexibility required in the system im developing.
Anna-Jayne Metcalfe wrote:
Untidy code (yes, I do Code Like A Girl[^]. That way, other people can maintain it)
i try my best to "code like a girl", but again with the flexibility required in my current project its often an impossible task.
Harvey Saayman - South Africa Junior Developer .Net, C#, SQL
you.suck = (you.passion != Programming)
- C++ code in which the author didn't know (or didn't care) how to use
-
Harvey Saayman wrote:
What do you hate seeing in code?
Unnecessary line breaks Actually I do prefer having more things on one line in many cases so there's less scrolling up and down but matter of taste I suppose and there are always #regions anyway.
Anything more than 2 is a waste, 1 or 2 depending, is acceptable to me :) (but I prefer them to be a line apart) Alternatively interpreted: I place line breaks after section of related code statements, like paragraphs, but only in C#, not Scheme :)
xacc.ide - now with TabsToSpaces support
IronScheme - 1.0 alpha 4a out now (29 May 2008) -
Im very fussy when it comes to my code base, when i see things like the following it will ruin my day completely and p!$$ me off so badly I have to take a minute so that my head doesn't explode.
Wrong
public void someMethod(){
//some code
}Right
public void someMethod()
{
//some code
}Wrong
if (someCondition)
someMethod;Right
if (someCondition)
{
someMethod();
}Wrong
public bool Selected
{
get{return selected;} set{selected = value;}
}Right
public bool Selected
{
get
{
return selected;
}
set
{
selected = value;
}
}What do you hate seeing in code?
Harvey Saayman - South Africa Junior Developer .Net, C#, SQL
you.suck = (you.passion != Programming)
"Never hate" -- PIEBALDconsult (Or I could quote Tom Lehrer) While I agree with your preferences, I don't consider it a matter of right and wrong and I don't get upset when I see code like that. As mentioned by others, a style should be consistent; inconsistent style shows lack of discipline. Having said that, other things I avoid: Unnecessary local variables. Multiple
return
statements. The lazy comment://
Use of other techniques and syntactic sugar whose only purpose is to reduce keystrokes. -
Im very fussy when it comes to my code base, when i see things like the following it will ruin my day completely and p!$$ me off so badly I have to take a minute so that my head doesn't explode.
Wrong
public void someMethod(){
//some code
}Right
public void someMethod()
{
//some code
}Wrong
if (someCondition)
someMethod;Right
if (someCondition)
{
someMethod();
}Wrong
public bool Selected
{
get{return selected;} set{selected = value;}
}Right
public bool Selected
{
get
{
return selected;
}
set
{
selected = value;
}
}What do you hate seeing in code?
Harvey Saayman - South Africa Junior Developer .Net, C#, SQL
you.suck = (you.passion != Programming)
Than logic. Many of your wrongs are perfectly acceptable. In fact I author all of my code with squirlies on the same line as a construct because I prefer that style ... and it is a style issue not a right or wrong. Developers, such as yourself, who have pet peeves that have nothing to do with bad programming waste a lot of code reviews that could be better spent. Any developer worth his or her salt should be able to read any consistently written code without any difficulty.
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway -
Actually - there's another pet peeve of mine. People using properties when a field would suffice. If the object is serializable then, fine, make it a property otherwise do you really need to have a property that does nothing other than assign a value?
Deja View - the feeling that you've seen this post before.
Not doing so makes reflection a PITA. If MS would have made no distinction between a field and a property maybe I would agree. Of course, I don't like properties, instead I prefer set and get methods. Interesting that the CLR doesn't support properties. (I am going to stop there so others can stick their foot in their mouth when arguing against me)
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway -
"Never hate" -- PIEBALDconsult (Or I could quote Tom Lehrer) While I agree with your preferences, I don't consider it a matter of right and wrong and I don't get upset when I see code like that. As mentioned by others, a style should be consistent; inconsistent style shows lack of discipline. Having said that, other things I avoid: Unnecessary local variables. Multiple
return
statements. The lazy comment://
Use of other techniques and syntactic sugar whose only purpose is to reduce keystrokes.OMG, don't get me started on more than one return in a method. I used to throw things at people that did that. Erasers, hats, empty cups, bricks. No matter the ammunition it is hard to suggest to a developer that thinks a 500 line method is OK that more than one return is bad.
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway -
Than logic. Many of your wrongs are perfectly acceptable. In fact I author all of my code with squirlies on the same line as a construct because I prefer that style ... and it is a style issue not a right or wrong. Developers, such as yourself, who have pet peeves that have nothing to do with bad programming waste a lot of code reviews that could be better spent. Any developer worth his or her salt should be able to read any consistently written code without any difficulty.
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingwayi think you misunderstood what i was trying to say... i couldnt think opf better words to use so i used right and wrong. I didnt literally mean that the wrong examples are wrong as in theyll not compile or have performance implications.
Harvey Saayman - South Africa Junior Developer .Net, C#, SQL
you.suck = (you.passion != Programming)
-
"Never hate" -- PIEBALDconsult (Or I could quote Tom Lehrer) While I agree with your preferences, I don't consider it a matter of right and wrong and I don't get upset when I see code like that. As mentioned by others, a style should be consistent; inconsistent style shows lack of discipline. Having said that, other things I avoid: Unnecessary local variables. Multiple
return
statements. The lazy comment://
Use of other techniques and syntactic sugar whose only purpose is to reduce keystrokes.like i told ennis, i couldnt think of other words so i used right and wrong.
Harvey Saayman - South Africa Junior Developer .Net, C#, SQL
you.suck = (you.passion != Programming)
-
i think you misunderstood what i was trying to say... i couldnt think opf better words to use so i used right and wrong. I didnt literally mean that the wrong examples are wrong as in theyll not compile or have performance implications.
Harvey Saayman - South Africa Junior Developer .Net, C#, SQL
you.suck = (you.passion != Programming)
You would call it wrong. One of the skills that will take a developer far is the ability to see past little things like this. Keep in mind C# is not the only language and Java in particular is notorious for the other style. It is probably my fault as I am growing cynical in my old age. I am just tired of seeing people call themselves Senior Developers who barely even know one language and one trait that is systematic of these people is going ballistic over something that has no rational basis in the quality of code. Don't mature into that guy!
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway -
You would call it wrong. One of the skills that will take a developer far is the ability to see past little things like this. Keep in mind C# is not the only language and Java in particular is notorious for the other style. It is probably my fault as I am growing cynical in my old age. I am just tired of seeing people call themselves Senior Developers who barely even know one language and one trait that is systematic of these people is going ballistic over something that has no rational basis in the quality of code. Don't mature into that guy!
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingwayi get that :) yes one day ill have to work on someone else's code one day but the project im working on now was designed and started by me so the dev's working on it will do it my way :-D
Ennis Ray Lynch, Jr. wrote:
tired of seeing people call themselves Senior Developers
i didnt, not that i know of anyway... and i clam to be a junior dev right in my sig :)
Harvey Saayman - South Africa Junior Developer .Net, C#, SQL
you.suck = (you.passion != Programming)
-
For the property, I would accept the get and set on each own line, if the property setter/getter was only 1 line long. Eg:
public bool Selected
{
get {return selected;}
set {selected = value;}
}xacc.ide - now with TabsToSpaces support
IronScheme - 1.0 alpha 4a out now (29 May 2008) -
Not doing so makes reflection a PITA. If MS would have made no distinction between a field and a property maybe I would agree. Of course, I don't like properties, instead I prefer set and get methods. Interesting that the CLR doesn't support properties. (I am going to stop there so others can stick their foot in their mouth when arguing against me)
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest HemingwayEnnis Ray Lynch, Jr. wrote:
Not doing so makes reflection a PITA.
Yup, but reflection is normally an indication that something's broken in your design.
Ennis Ray Lynch, Jr. wrote:
Interesting that the CLR doesn't support properties.
Of course it does - and they happen to be methods called get_ and set_ .... ;)
Deja View - the feeling that you've seen this post before.
-
i get that :) yes one day ill have to work on someone else's code one day but the project im working on now was designed and started by me so the dev's working on it will do it my way :-D
Ennis Ray Lynch, Jr. wrote:
tired of seeing people call themselves Senior Developers
i didnt, not that i know of anyway... and i clam to be a junior dev right in my sig :)
Harvey Saayman - South Africa Junior Developer .Net, C#, SQL
you.suck = (you.passion != Programming)
Yeah I know, that is why I put my last sentence, don't be that guy :p
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway -
Ennis Ray Lynch, Jr. wrote:
Not doing so makes reflection a PITA.
Yup, but reflection is normally an indication that something's broken in your design.
Ennis Ray Lynch, Jr. wrote:
Interesting that the CLR doesn't support properties.
Of course it does - and they happen to be methods called get_ and set_ .... ;)
Deja View - the feeling that you've seen this post before.
I agree 100% re using reflection indicates a poor design choice, it does make nice hack when they lead designer is himself a hack.
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway -
Same here, unless there's specific logic involved. Automatic properties save some coding. ;)
It's not about saving keystrokes, it's about reducing the chance for an unexpectedly recursive property.
-
Actually - there's another pet peeve of mine. People using properties when a field would suffice. If the object is serializable then, fine, make it a property otherwise do you really need to have a property that does nothing other than assign a value?
Deja View - the feeling that you've seen this post before.
One should always use custom serialization anyway.
-
Than logic. Many of your wrongs are perfectly acceptable. In fact I author all of my code with squirlies on the same line as a construct because I prefer that style ... and it is a style issue not a right or wrong. Developers, such as yourself, who have pet peeves that have nothing to do with bad programming waste a lot of code reviews that could be better spent. Any developer worth his or her salt should be able to read any consistently written code without any difficulty.
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest HemingwayEnnis Ray Lynch, Jr. wrote:
squirlies on the same line
Plus, Visual Studio can modify it to the user's preference.
-
agreed! its actually weird how furious i get for something so silly...
Harvey Saayman - South Africa Junior Developer .Net, C#, SQL
you.suck = (you.passion != Programming)
Ease off on the coffee? :-D
-
It's not about saving keystrokes, it's about reducing the chance for an unexpectedly recursive property.
PIEBALDconsult wrote:
It's not about saving keystrokes, it's about reducing the chance for an unexpectedly recursive property.
Definitely about keystrokes for me, I never wrote a recursive property, maybe because I have different naming conventions for private fields.