|
"If you can understand this code you're fired!"
So wrong on so many levels!
"I had the right to remain silent, but I didn't have the ability!"
Ron White, Comedian
|
|
|
|
|
All code used to be written like that. That's a relatively understandable example.
|
|
|
|
|
so sweet!
The programm can read the current time but cannot calculate time till 2am!
|
|
|
|
|
A long time ago i was known to use something like
whilst (1==1)
{
}
then i learned to use
whilst (true)
{
}
Happy days
|
|
|
|
|
that just made me laugh out loud
|
|
|
|
|
So, I have to help rewriting our customer website, which involves getting my hands dirty on JavaScript. No script bashing here, the right tool for the right job and all.
Deciding to involve the Revealing Module Pattern for my multi viewmodel per page scripting, I tried writing something like this:
$(document).ready
(
function()
{
tmg.model1 = (function()
{
var name = ko.observable("Model 1");
return
{
name: name
};
})();
$("[tmg_ns='vm1']").each(
function()
{
var domNode = $(this)[0];
ko.applyBindings(tmg.model1, domNode);
}
);
}
);
It didn't work...
Debugging revealed that the name property was undefined .
After several hours and a lot of , I found the 'error'; When returning a JavaScript object, the curly brace must be on the same line as the return statement!!!
Yes, 3 exclamation marks, see what you made me do JS?, and oh, I want my hours back.
"God doesn't play dice" - Albert Einstein
"God not only plays dice, He sometimes throws the dices where they cannot be seen" - Niels Bohr
|
|
|
|
|
The real wtf is Javascript's optional semi colons, which is what's happening there. Using something like JSLint would have told you this:
{
name: name
};
was unreachable code. But yeah, JS definitely has some... interesting pieces.
|
|
|
|
|
Heh, thanks. Allthough it's an interesting project, I just don't think I will learn to love JS.
"God doesn't play dice" - Albert Einstein
"God not only plays dice, He sometimes throws the dices where they cannot be seen" - Niels Bohr
|
|
|
|
|
Ah! The old semicolon-less syntax designed to help ex VB programmers. The newline after return marks the end of the return statement and the following braced bit is ignored. It is not true that the { has to be on the same line. A better format is
var result = { name: name };
return result;
or, much easier, discard the function completely and just write
tmg.model1 = { name: ko.observable("Model 1") };
|
|
|
|
|
Thanks for clearing that up. Didn't make JS look any better to me though
Weird architecture that, just because there is a structure doesn't mean that it's actually helpfull. I'm sure there is a special part of Hell reserved for script designers putting subtle twists to a product.
I will certainly go for your first suggestion, the second wouldn't conform to the Revealing Module Pattern (or should that have been in all caps?).
"God doesn't play dice" - Albert Einstein
"God not only plays dice, He sometimes throws the dices where they cannot be seen" - Niels Bohr
|
|
|
|
|
jan larsen wrote: I'm sure there is a special part of Hell reserved for script designers putting subtle twists to a product.
Well, in Mr. Eich's defense, he did only have 10 days to design the language.
|
|
|
|
|
That's probably part of the reason why Allman style is not very popular in JS. And I agree: The optional semicolon is just terrible.
|
|
|
|
|
|
|
What do you get when you cross a joke with a rhetorical question?
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
Do questions with multiple question marks annoy you???
|
|
|
|
|
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Kitty at my foot and I waAAAant to touch it...
|
|
|
|
|
|
Kitty at my foot and I waAAAant to touch it...
|
|
|
|
|
What do you get when you cross a joke with a rhetorical question?
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
Do questions with multiple question marks annoy you???
|
|
|
|
|
|
What do you get when you cross a joke with a rhetorical question?
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
Do questions with multiple question marks annoy you???
|
|
|
|
|
"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
|
|
|
|
|
I just stuck this in a small data import utility that I don't particularly care about:
catch ( System.Data.DataException err )
{
if ( !err.ToString().Contains ( "Cannot insert duplicate key" ) )
{
throw ;
}
}
If they don't care enough to send me clean data, why should I spend a Friday afternoon writing good code?
modified 7-Aug-15 16:45pm.
|
|
|
|
|
that's the way to do it... why should always we developers have the pressure of being exact and clean
would've done it too this way... if it was friday afternoon in the mid of summer
|
|
|
|