Let's REALLY make sure "4" isn't "5"
-
It's 3 weeks I am a consultant and I'm seeing sh*t like this way too often. And I am expected to produce the same, since I have to be productive with a 2 weeks training over a medium sized project with no documentation nor coding standard (functions that take 12 arguments named ct, ly, ex, ey, tx, fx and so on...).
GCS d-- s-/++ a- C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- ++>+++ y+++* Weapons extension: ma- k++ F+2 X
"You will save a lot of time only typing 2 or 3 letter variable names instead of those long names. Therefore you will be able to program faster if you keep your variable names short." At a previous job, that is what one of the senior programmers would teach to the new programmers and the boss (who was also a programmer) agreed with him. :wtf: X| There are reasons why I don't work there any longer. ;)
Just because the code works, it doesn't mean that it is good code.
-
switch (str)
{
case "4":
if (str != "5") ...Ah, the joys of outsourcing with no code reviews.
Latest Article - A Concise Overview of Threads Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
Well, seeing that you do not like switch statements to begin with, they have already failed, throwing the 4 and 5 in is just overkill. :-D BTW, I love how they are checking
str
if it is not 5 in a case statement wherestr = 4
. Of course it is not 5. :laugh: :laugh: :laugh: :laugh: :laugh: :laugh: :laugh: :laugh: :laugh: Edit: I just realized your title is saying what I just said. :doh: I really need to take a nap. :cool: -
switch (str)
{
case "4":
if (str != "5") ...Ah, the joys of outsourcing with no code reviews.
Latest Article - A Concise Overview of Threads Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
Was it originally a set of nested if and they just missed that one?
-
"You will save a lot of time only typing 2 or 3 letter variable names instead of those long names. Therefore you will be able to program faster if you keep your variable names short." At a previous job, that is what one of the senior programmers would teach to the new programmers and the boss (who was also a programmer) agreed with him. :wtf: X| There are reasons why I don't work there any longer. ;)
Just because the code works, it doesn't mean that it is good code.
-
"You will save a lot of time only typing 2 or 3 letter variable names instead of those long names. Therefore you will be able to program faster if you keep your variable names short." At a previous job, that is what one of the senior programmers would teach to the new programmers and the boss (who was also a programmer) agreed with him. :wtf: X| There are reasons why I don't work there any longer. ;)
Just because the code works, it doesn't mean that it is good code.
Mind you the corollary to that is when people have very similar long variable names CompanyIsAgent, CompanyHasAgent, CompanyAgent, IsCompanyAgent, IsAgentCompany etc etc in that they are all nice long descriptive names, but you cannot begin to comprehend the usage or meaning of any of them without studying the program context, and it's easy to use the wrong one and for the code to still run! (this is a real world example!). Using variable names like a, aa, aaa, aaaa and x, xx, xxx, xxxx etc (also a real world example) is hardly any worse. Naming things well is hard, so I would go for brevity where possible and using objects containing properties if at all practical simply so the context can be easily acquired when reading the code
-
switch (str)
{
case "4":
if (str != "5") ...Ah, the joys of outsourcing with no code reviews.
Latest Article - A Concise Overview of Threads Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
-
switch (str)
{
case "4":
if (str != "5") ...Ah, the joys of outsourcing with no code reviews.
Latest Article - A Concise Overview of Threads Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
-
gardnerp wrote:
The naming of
str
bugs me just as much.It had a real name. I sanitized it.
Latest Article - A Concise Overview of Threads Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
I was guessing that the programmer had a Fortran background. Fortran has no reserved words (at least it didn't up to F77 - I haven't used more recent versions) so you could define INTEGER to be a REAL variable and COMPLEX to be an INTEGER variable, The result of multiplying INTEGER and COMPLEX could be REAL value stored in the REAL variable REAL. Spaces had no significance, so REALREAL and COMPLEXFUNCTION were perfectly valid variable declarations. (I am really happy that I never had to write a Fortran parser!) When learning Fortran coding at the university, we made up lots of programming exercises for our own fun. One of them was to print out Pascal's triangle using predefined words only, and no literals. Our compiler allowed recursion, which was an extension to Fortran IV, but without it, I doubt that we would have succeeded. The code was completely unreadable. Maybe I should dig it up from the basement and post it here!
-
switch (str)
{
case "4":
if (str != "5") ...Ah, the joys of outsourcing with no code reviews.
Latest Article - A Concise Overview of Threads Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
Just in case!
-
switch (str)
{
case "4":
if (str != "5") ...Ah, the joys of outsourcing with no code reviews.
Latest Article - A Concise Overview of Threads Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
Marc Clifton wrote:
Ah, the joys of outsourcing with no code reviews.
Combined, perhaps, with last minute changes, or unthinking copy/cut and paste, failing to step-through debug or sheer incompetence, or all of the above. It is smdh funny, though.
Cheers, Mike Fidler "I intend to live forever - so far, so good." Steven Wright "I almost had a psychic girlfriend but she left me before we met." Also Steven Wright "I'm addicted to placebos. I could quit, but it wouldn't matter." Steven Wright yet again.
-
"You will save a lot of time only typing 2 or 3 letter variable names instead of those long names. Therefore you will be able to program faster if you keep your variable names short." At a previous job, that is what one of the senior programmers would teach to the new programmers and the boss (who was also a programmer) agreed with him. :wtf: X| There are reasons why I don't work there any longer. ;)
Just because the code works, it doesn't mean that it is good code.
Did the guy knew about IDEs with auto-complete? I understand the point that even if it takes a fraction of a second longer to type a variable name, it will save you several minutes/hours in the future when you or someone else has to maintain that code. But even that fraction of a second disappears with auto-complete.
-
Did the guy knew about IDEs with auto-complete? I understand the point that even if it takes a fraction of a second longer to type a variable name, it will save you several minutes/hours in the future when you or someone else has to maintain that code. But even that fraction of a second disappears with auto-complete.
-
"You will save a lot of time only typing 2 or 3 letter variable names instead of those long names. Therefore you will be able to program faster if you keep your variable names short." At a previous job, that is what one of the senior programmers would teach to the new programmers and the boss (who was also a programmer) agreed with him. :wtf: X| There are reasons why I don't work there any longer. ;)
Just because the code works, it doesn't mean that it is good code.
I used to work with a guy who typed (mostly) with one finger - if he needed a capital letter he hit caps lock then the letter then caps lock ... This was pre-IDE with completion days. His variable and function names were really terse. When we noticed his coding style, the functions we implemented in our libraries started to "change" so cpos(...) became setVirtualCursorPosition(...) and fg(...) became setForegroundTextColour(...) and so on ;-)
-
It's 3 weeks I am a consultant and I'm seeing sh*t like this way too often. And I am expected to produce the same, since I have to be productive with a 2 weeks training over a medium sized project with no documentation nor coding standard (functions that take 12 arguments named ct, ly, ex, ey, tx, fx and so on...).
GCS d-- s-/++ a- C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- ++>+++ y+++* Weapons extension: ma- k++ F+2 X
-
"You will save a lot of time only typing 2 or 3 letter variable names instead of those long names. Therefore you will be able to program faster if you keep your variable names short." At a previous job, that is what one of the senior programmers would teach to the new programmers and the boss (who was also a programmer) agreed with him. :wtf: X| There are reasons why I don't work there any longer. ;)
Just because the code works, it doesn't mean that it is good code.
Not disagreeing with the idea that a symbol's name should tell you a bit about it (if possible), but I have worked with someone who who's symbol and function names were pretty near essays. It takes a bit of common sense - and making distinguishing them a non-painful eye exercise. Why not loop with i, j, etc., as counters? Why not use IPAddr instead of ipa (slurp!)? Always just common sense to make readable and to avoid mistakes. It shouldn't be hard.
"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
-
switch (str)
{
case "4":
if (str != "5") ...Ah, the joys of outsourcing with no code reviews.
Latest Article - A Concise Overview of Threads Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
"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
-
Thanks. I'm now having flashbacks to GW-BASIC.
If you think 'goto' is evil, try writing an Assembly program without JMP.
You tell me... this code sucks so much I wrote several VB6 lines inside C++, not kidding!
GCS d-- s-/++ a- C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- ++>+++ y+++* Weapons extension: ma- k++ F+2 X
-
Not disagreeing with the idea that a symbol's name should tell you a bit about it (if possible), but I have worked with someone who who's symbol and function names were pretty near essays. It takes a bit of common sense - and making distinguishing them a non-painful eye exercise. Why not loop with i, j, etc., as counters? Why not use IPAddr instead of ipa (slurp!)? Always just common sense to make readable and to avoid mistakes. It shouldn't be hard.
"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
-
The naming of
str
bugs me just as much. Ok, I know it's a string. But what is it? Calling it something likeinvoiceTypeCode
indicates it is a string and lets me know what I am looking at.I recently inherited a load of "code" (it's VBA so I don't want to it ideas above its station :laugh: ) ... during the "handover" (apparently that's what it was) the original "programmer" explained with great pride, that they didn't
Quote:
waste their time using long variable names...
Yep! Every single one of them was a single character. Every. Single. One. :mad: (Except where he copied code snippets off the internet)
-
switch (str)
{
case "4":
if (str != "5") ...Ah, the joys of outsourcing with no code reviews.
Latest Article - A Concise Overview of Threads Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
That is one sick puppy. The person should be found, bound and brought out for public humiliation immediately. We had something like the following in legacy code:
for (x = 0; x <= 20;x++){
unknownVariable = x;
}
unknownVariable = 55;X| That brings up so many questions. Was the dev trying to slow something down? What is unknownVariable? Why did dev set it to the specific value of 55? arghgghgghg!!!!