|
In our world, and our code reviews, this one line stuff has to go.
The coding standards should dictate the formatting.
BUT: The Situation can dictate exceptions. We have defensible and in-defensible deviations.
Blocks of similar code where reading one line is effectively the same in the block, we allow
the one line to create a "tabular" view of what is transpiring.
BTW, I don't consider breaking down the code into properly formatted statements to be dumbing down the code. I also think that different companies CAN AND SHOULD have different coding standards!
But overall, I believe if you can pick up a piece of code, and not know if YOU wrote it, or someone else on your team wrote it... Then you are cooking with gas.
|
|
|
|
|
Quote: string Foo(int x){
if (x == 1) {
return "one";
} else {
return "not one";
}
}
string Foo(int x) { return x == 1 ? "one" : "not one"; }
(I also tend to twitch when I see a "return" followed by an "else".)
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
modified 1-Jun-18 12:10pm.
|
|
|
|
|
I've seen a lot of discussion lately about single point of exit vs multiple points of exit. Since my IDE makes them easy to spot I've started using multiples more in if and switch . But when I see the code in a plain text editor it still can look a little confusing.
|
|
|
|
|
I have no issue with "multiple exits"; when used to avoid lengthy "if ... else".
The point is, the "else" in "if ... return else" is totally redunant.
And sometimes, it's "clearer" to simply return with a simple "if NOT ... return" instead of a lengthy "positive" if.
But "if NOT's" can get confusing if misused.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
Got it. See what you are saying.
|
|
|
|
|
And sometimes I do:
if (... ) {
} else {
return;
}
to avoid a confusing "if NOT" or a lengthy "code block".
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
I frequently use multiple exits, to simplify the code structure, reducing nesting levels.
However, the last bug I fixed in one program that is my responsibility was related to this: A few months ago, I added a "try / catch / finally" to improve error handling. Within that "try" was an age old "return" for a rather curious case, hit only if the PC did not have a sufficiently updatet dotNet (and since updates are pushed from a central deployment server, this only happens if you plug in a portable that is not yet detected by the deployment server). Before the "return" was executed, the "finally" block was processed, which was certainly not appropriate in that situation.
I will certainly not stop sprinkling my code with return statements, but I have learned a lesson about paying attention to finally-clauses.
|
|
|
|
|
If God wanted us to program in sentences, He would have abolished all languages except APL.
|
|
|
|
|
Would you call an Italian hooker a pasta-tute?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
gonna open a whole cannelloni of worms with innuendo like that
This internet thing is amazing! Letting people use it: worst idea ever!
|
|
|
|
|
Hur! Hur! Hur! He said "in your end-o"!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Only if she gave me an offer I couldn't refuse...
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
- Never argue with a fool. Onlookers may not be able to tell the difference. Mark Twain
|
|
|
|
|
Only because I'm not entirely sure how to pronounce his surname[^].
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Of course you would, fusilli guy.
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
|
|
|
|
|
puttanesca anyone?
|
|
|
|
|
With a little broth'll be nice
Everyone has a photographic memory; some just don't have film. Steven Wright
|
|
|
|
|
If she Lasagna for a fee, then I'd say so. Sounds like a pretty ziti profession, orzo one would think.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
Would you call an easy Mexican chick a frijol?
"Go forth into the source" - Neal Morse
|
|
|
|
|
...is the documentation.
Yes, I know it's boring.
Yes, I know there are more interesting things to do.
But if when you make a change to how something is done (i.e. remove it from the menu and tool bars and put it in the document body) you'd just give us all a elephanting clue how to use the damn thing? I knew where it was when it was "Edit...Fill...Range" - but now "Edit" doesn't have a "Fill" submenu at all, and neither does any other menu.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
|
I'm pretty sure that Sacha Barber has written some stuff on Akka.NET here on Code Project. Yup, just looked. Here you go[^].
This space for rent
|
|
|
|
|
Please do not offer solutions when I am ranting.
I'm trying to keep the dialogue at fever pitch.
|
|
|
|
|
You found something open source...with documentation?
Oh, wait. It's out of date. Carry on, all is well with the world.
|
|
|
|
|
In one project, we rejected one open source package, which really looked promising, but we would have to make a number of modifications to it.
The code was well commented. In French. With variable and function names in French. None of the project members mastered French.
So we rejected it. The replacement was not very impressive, and probably less suited. I can't say for sure, since we knew the rejected package only from its marketing info and seveal positive reviews. But modifying code with a function that does "something", and lots of code remarks about "something", is not very viable.
|
|
|
|
|
We have a number of developers using RPG on iSeries machines. Our company is going to the cloud and really wants to get rid of the iSeries ... and those developers. What should they be doing to prepare for a new job. My thought is they should be studying SQL (SQL Server or maybe Oracle) and NoSQL (maybe Mongo) so that they can leverage what they know to more current technology. They might want to get familiar with My SQL and PostGRE in the context of AWS. Are there any suggestions you could offer? Somehow I ended up on the group that is supposed to advise them.
|
|
|
|