Ayende @ Rahien

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

ayende@ayende.com

+972 52-548-6969

, @ Q c

Posts: 5,953 | Comments: 44,409

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. The RavenDB Comic Strip (3):
    28 May 2015 - Part III – High availability & sleeping soundly
  2. Special Offer (2):
    27 May 2015 - 29% discount for all our products
  3. RavenDB Sharding (3):
    22 May 2015 - Adding a new shard to an existing cluster, splitting the shard
  4. Challenge (45):
    28 Apr 2015 - What is the meaning of this change?
  5. Interview question (2):
    30 Mar 2015 - fix the index
View all series

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats