|
On September 11 2012 07:21 Geiko wrote:Show nested quote +On September 11 2012 07:15 Integra wrote:On September 11 2012 07:10 Geiko wrote:On September 10 2012 19:01 Morfildur wrote:Now i ordered the two guys responsible to fix that ASAP. They started with changing the code to: if (MOBILE_TEMPLATE == 'true') { ... }
I wanted to punch them sooooo hard. Luckily i'm out of here at the end of the month... So, not being a programmer myself, why doesn't their solution work ? The problem is that they are using string operators when they should be using boolean. It clearly demonstrates that they have no fucking idea of what they are doing. EDIT; let me clarify. When you want to actually want to type something, like some sort of output to the user for example you would use a string, like this: $string =' hello this is a message to the user'; echo $string;
However in this case they are simply to evaluate what path to take in a condition: IF ($condition==true) {
}
In this case using a string makes no sense and a boolean should be used instead. Ok that's what I thought too. But after making the mistake to use strings instead of booleans, isn't it faster to fix the bug like they did, rather than change the type of the variable and risk having bugs every other place where the variable was used ? No, not if they used proper OOP encapsulation... which probably is sketchy.... you could do refactoring that comes with any professional editor so it should not be a problem. Also the benefit from keeping the bad code is only short term, the long term effect is that it will cost more time.
There is also a programmers standpoint on this. The code becomes "dumb" and you won't be able to read anything from it. Every time someone uses a string it's understood that its suppose to be used in some sort of output, thus you can predict what the code does, it becomes more easy to read and navigate in it. Once you start mixing it up you don't know wtf people are intending with the codes anymore. it becomes impossible to actually understand it. Never mind even trying to debug or add more code to it later... Further Strings takes more memory and process power to process compared to booleans.
|
I don't think you could get through the first class of any programming major at any school like that... Given that most schools teach the boolean type before strings and that one often needs to use some sort of string library before that kind of code will even compile.
I'm just going to turn a blind eye and pretend that those kinds of coders only exist in web design for now.
|
Hyrule18947 Posts
lol
it's PHP
a variable is any type
you can do
$foo = true; $foo = 12.381; $foo = "bar"; $foo = 4; $foo = array() and get no errors...not even any warnings
|
lol.I've certainly seen stuff like that at my job too. and my first reaction was...oh these guys must be entry level programmers/just getting off the block, and often when you correct them..in a maybe slightly harsh tone they really start to lose their stuff .
|
LOLOLOLOL
I'm in my first month of Comp Sci at school and i understand this...
|
I've been learning PHP over the course of the month and it's entertaining to be able to read the codes and shake my head to this. I can't imagine making such...mistakes.
|
|
On September 11 2012 07:10 Geiko wrote:Show nested quote +On September 10 2012 19:01 Morfildur wrote:Now i ordered the two guys responsible to fix that ASAP. They started with changing the code to: if (MOBILE_TEMPLATE == 'true') { ... }
I wanted to punch them sooooo hard. Luckily i'm out of here at the end of the month... So, not being a programmer myself, why doesn't their solution work ?
Their solution works but next time another programmer works with that and gets told "that constant is always either true or false" he writes "if (MOBILE_TEMPLATE == true)" and wonders why it doesn't work the way he thinks it would.
Yes, changing true to "true" fixes this bug initially but by not fixing the original problem you invite a huge mess of possible future bugs that are hard to trace. Suddenly you never know if anything is true or "true" and the whole code becomes a mess where every time you add or change a line of code you have to triple-check to make sure it actually works.
|
At first I was thinking like "well this happens all the time due to carelessness, it's just funny that they couldn't find it", but then I read the last part and the "solution" and it did make me chuckle.
|
Is entertaining want more. Will give cookie and stars.
|
I have never even studied programming beyond being forced to write stupid bits of excel VBA and making othello and java
And i can still understand this lol
Though i made some waaay more horrible mistakes when i first wrote othello hahahaha
But its mainly because nobody taught me anything so i didn't know where to even start, to get a working piece of logic together was already a miracle for me
|
PHP lol. There used to be a bug in their md5 digest function where when you passed a string and a salt, it just returned the salt.
|
Coming from the Ruby community and seeing many noobs adopting Rails (kinda) successfully, I'd mostly advocate towards using easy to use frameworks that are opinionated enough to force people to not make certain mistakes (avoids mistakes by doing things right instead of letting inexperienced programmers do it).
Such platforms that presents concepts like DRY, convention over configuration and MVC to the newcomer, in a easy way, are doing a great job educating while being useful. Even following tutorials that do not explain shit about what's going on already does good by practicing those concepts blindly.
Another point is to use languages/frameworks that does most things for the user. Less code from inexperienced people equals less bugs.
For PHP frameworks, anything between CakePHP, CodeIgniter and Symphony are good choices (refer to http://www.phpframeworks.com and http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks for more tho)
Edit: All that said, I understand that the majority of times you don't have the choice to either adopt or not certain technologies (boss won't let, project already started, etc). But you can always try to make it happen next time (and there's always a next time).
|
On September 12 2012 04:05 13k wrote:Coming from the Ruby community and seeing many noobs adopting Rails (kinda) successfully, I'd mostly advocate towards using easy to use frameworks that are opinionated enough to force people to not make certain mistakes (avoids mistakes by doing things right instead of letting inexperienced programmers do it). Such platforms that presents concepts like DRY, convention over configuration and MVC to the newcomer, in a easy way, are doing a great job educating while being useful. Even following tutorials that do not explain shit about what's going on already does good by practicing those concepts blindly. Another point is to use languages/frameworks that does most things for the user. Less code from inexperienced people equals less bugs. For PHP frameworks, anything between CakePHP, CodeIgniter and Symphony are good choices (refer to http://www.phpframeworks.com and http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks for more tho)
Well, 6 month ago there were talks about our company using a framework for future projects. Sadly, the head of the department doesn't trust frameworks "because they might have bugs that could be used by hackers" so we still haven't adapted any.
No, i'm not kidding.
|
You should write a letter about everything you think about the place and the people and tape it to your boss' door when you leave.
|
On September 12 2012 04:22 Morfildur wrote:
Well, 6 month ago there were talks about our company using a framework for future projects. Sadly, the head of the department doesn't trust frameworks "because they might have bugs that could be used by hackers" so we still haven't adapted any.
No, i'm not kidding.
oh man... that's so sad in so many levels. employing cheap developers that don't understand boolean logic or operator precedence, for example, is so, so much more dangerous... it's also costs so much more, given that you'll inevitably end up in the dreaded 20% feature / 80% bugfix cycle...
it would make sense if they are talking about paying thousands for licenses, but there are so many professional quality open source / free frameworks out there.
it really surprises me tho, that companies still don't use everything they can to ship as fast and as cheaply as possible... I sometimes thought companies were certainly profiting from open source frameworks and still not "paying back" anything in the form of contribution or sponsoring, etc... I guess I was wrong
|
Zurich15307 Posts
Frameworks are not the solution to shitty programmers though. The same guys will also implement the framework - and do just as much wrong as if they would code stuff themselves.
In the end, you just need able programmers, whether you code from scratch or implement based on a framework.
|
On September 12 2012 19:32 13k wrote:Show nested quote +On September 12 2012 04:22 Morfildur wrote:
Well, 6 month ago there were talks about our company using a framework for future projects. Sadly, the head of the department doesn't trust frameworks "because they might have bugs that could be used by hackers" so we still haven't adapted any.
No, i'm not kidding.
oh man... that's so sad in so many levels. employing cheap developers that don't understand boolean logic or operator precedence, for example, is so, so much more dangerous... it's also costs so much more, given that you'll inevitably end up in the dreaded 20% feature / 80% bugfix cycle... it would make sense if they are talking about paying thousands for licenses, but there are so many professional quality open source / free frameworks out there. it really surprises me tho, that companies still don't use everything they can to ship as fast and as cheaply as possible... I sometimes thought companies were certainly profiting from open source frameworks and still not "paying back" anything in the form of contribution or sponsoring, etc... I guess I was wrong Can you type out that last paragraph again? I don't understand what you said.
|
|
On September 13 2012 00:55 Inori wrote:Show nested quote +On September 12 2012 22:15 zatic wrote: Frameworks are not the solution to shitty programmers though. The same guys will also implement the framework - and do just as much wrong as if they would code stuff themselves.
In the end, you just need able programmers, whether you code from scratch or implement based on a framework. But they do teach best practices to those that are open to learning. And worst case scenario with a framework you get semi-working semi-hackish code that at least on some levels is secure and bug-free as opposed to one big security hole, filled with spaghetti code hell that some newbie developers produce. Some of the vulnerabilities in frameworks become well known whereas with self built code, you don't exactly know the vulnerabilities are. I'm mostly thinking of joomla as a cms because it's written as a framework, and yet it has addons that are vulnerabilities.
I think it's like how people build viruses for Windows.
Frameworks provide a lot of code that you don't have to write though and there are often addons or tutorials to do things in frameworks that are more standardized than starting from scratch. Do you ever find that frameworks are like black boxes though?
|
|
|
|