Ayende @ Rahien

Hi!
My name is Ayende Rahien
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:

ayende@ayende.com

+972 52-548-6969

@

Posts: 5,947 | Comments: 44,540

filter by tags archive

It is a matter of style...


Today I freaked out two co-workers by looking at their code and saying (respectively) "How long have you worked with C?" and "You didn't get a lot of time with C++, right?"

The pieces of code in question were: (for the C comment)

Customer customer = null
for(int i=0;i<array.Length;i++)
{
	customer = new Customer();
	//do stuff
}

And: (for the not a lot of time in C++ comment)

int totalCarCount;
if( IsValid )
{
	totalCarCount = GetValidTotalCars();
}
else
{
	totalCarCount = GetInvalidTotalCars();
}

int totalWheelCount;
DoComplexWheelCalculation( out totalWheelCount);

And yes, the examples here are fake, and both are good developers, and I just said what came to mind first :-)


Comments

MarkK

As an enthusiatic young developer, I dont suppose you would kindly point out why you made the comments?

I confess I'm naive and dont see the issue with the code samples :)

Ayende Rahien

There isn't any issue with the code samples. :-D

C programmers tend to put declarations at the top of the function, basically.

Mats Helander

Actually, Classic Basic coders do that too.

/Mats

Frans Bouma

as a person who is raised with assembler and C, I had to look very carefully before I saw the issue :) (I first thought: it's the 'GetValid/InvalidTotalCars method which should 1 method with a parameter ;)). It's indeed something one has to work on really hard to get rid of, it took me several years before I got used to declare things when I first needed them instead of at the top of the method.

And then you run into a try/finally clause and you have to declare the variable OUTSIDE the try to be able to access it in the finally block :(

clayton collie

there was a spell a few years back where i was contributing to an opensource project (in c), consulting on a Delphi project (Pascal), while doing C# for some personal work.

needless to say, it was confusing keeping my code from looking confused...

Pierre Henri

For the C++ comment, is it because he didn't use the ternary operator?

Or because he used an output parameter instead of a return value?

Ayende Rahien

That was for the NON C++ comment, actually, and it was the variable placing that gave the hint.

Comment preview

Comments have been closed on this topic.

FUTURE POSTS

No future posts left, oh my!

RECENT SERIES

  1. RavenDB Sharding (2):
    21 May 2015 - Adding a new shard to an existing cluster, the easy way
  2. The RavenDB Comic Strip (2):
    20 May 2015 - Part II – a team in trouble!
  3. Challenge (45):
    28 Apr 2015 - What is the meaning of this change?
  4. Interview question (2):
    30 Mar 2015 - fix the index
  5. Excerpts from the RavenDB Performance team report (20):
    20 Feb 2015 - Optimizing Compare – The circle of life (a post-mortem)
View all series

RECENT COMMENTS

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats