The paragraph on wrapping all of your global variables in a single static array nearly killed me. I've seen a global Dictionary<string,object> for that exact purpose, followed by the proud exclamation "I'm down to a single global variable".
This was in a brand new tool, the programmer was responding to increasing pressure from peers to remove global variables in code. Magic.
Yes, mixing languages is a pro's version of this. Earn 10 points for every language and 20 points extra for every interface between them.
Macro languages like XML do count.
Additionally do some build system breakage with automatically partially generated code for extra credit.
Of course if you create some DSL or XML, never include schema or any kind of documentation that is not the parser.
And absolute worst: include optimizrd binary only code - no documentation and sources. Reverse engineering is fun!
nah. R is actually not bad. i would go for nodejs. or any sort of dependency injection, so no one would ever know what method behind an interface is being called. not to mention kdb+, which is write-only by design.
> I would like to remind you this essay is copyrighted material. It is illegal to repost it without permission. I will usually give you that permission if you translate the essay into another language and if you provide a link back to the English-language original. I do this for three reasons.
1. That way any change I make to the essay is instantly reflected in any English-language copy anyone reads.
2. That way the formatting and images are preserved. Pirated copies usually screw up the formatting.
3. Google ad revenue from this essay is the main source of income from the website. It pays to keep me on the air.
I don't understand how the creator of this GitHub repo could miss this, it's the first thing in the original article...
Well, apparently he didn't miss it and asked for permission, so all is well (and it is a bit rude to instantly jump to the conclusion that he didn't have permission, but good question to ask): https://github.com/Droogans/unmaintainable-code/issues/3
I had the pleasure of dealing with C++ classes with a dozen or more gratuitously overloaded operators, including overloaded cast operators. You'd cast an object to a certain type in order to access a member of that type, instead of accessing that member in a normal way. I never doubted for a second that it was all done for job security, this stuff is real.
no, he missed one obfuscation trick that should be quite natural in java land - just create deep nested class hierarchies that serve no apparent purpose - AbstractSingletonProxyFactoryBean for everybody; no hope to understand what is going on here.
29 comments
[ 2.8 ms ] story [ 13.3 ms ] threadIt was so horrendous I had to redactor it to keep my sanity.
It takes amazing skill to write code so badly although it's not something I would hire for.
This was in a brand new tool, the programmer was responding to increasing pressure from peers to remove global variables in code. Magic.
Additionally do some build system breakage with automatically partially generated code for extra credit.
Of course if you create some DSL or XML, never include schema or any kind of documentation that is not the parser.
And absolute worst: include optimizrd binary only code - no documentation and sources. Reverse engineering is fun!
> I would like to remind you this essay is copyrighted material. It is illegal to repost it without permission. I will usually give you that permission if you translate the essay into another language and if you provide a link back to the English-language original. I do this for three reasons.
I don't understand how the creator of this GitHub repo could miss this, it's the first thing in the original article...If this truly is a source of income he should put more effort into making it usable. This is a predictable outcome of anyone neglecting their content.
"Architecture as Obfuscation".
...never a truer word was said.
(http://www.joelonsoftware.com/articles/Wrong.html)