12 Signs of a Bad Programmer
View Single Post
11-30-2007, 01:53 PM
Join Date: Sep 2007
I'm sorry, I usually try to be more reserved but this guys comes across as an idiot. He's basically denouncing advanced methodologies.
Let me guess, he's the sort of guy to just start coding a large project without a thought of design. He's either completely ignorant or he's never actually worked on a project large enough.
One point that really annoyed me was his jab at design patterns, does the guy even know what a design pattern is? He says "every time you are forced to code up another design pattern, it means you are doing busy work that makes things more complex and is of dubious benefit.", again, has he ever bothered to learn patterns? Does he not realise that:
First of all patterns exist whether you know it or not, chances are, that guy uses patterns and doesn't even know. Secondly, patterns generally present themselves naturally, it's up to the programmer to realise when they appear and to take the opportunity to implement the correct solution.
Ignoring patterns can only have negative repercussions, it's like throwing your hands up and saying, I know this has been done before, but I don't care, I'll do it again rather than trying to reuse something done previously. If he likes to waste his time, so be it.
This point ties in with both patterns and UML: If the guy did any actual reading on object design he would realise that you can acutally "design by patterns". That is the process of looking for the top-most pattern and creating other patterns based on the context of that pattern. This, like CVA (Commonality and Variability analysis) are just just some of the many ways to help in object design. As for the UML, you'd need to use UML to model the conceptual view of your system, detailing how all the elements of the system interact. Not knowing how your objects are going to interact is just plain bad design, not to mention programming.
Finally, a really good reason for using patterns is that it allows you to discuss your code easily with other developers (just as UML allows you to easily model your system). A good example is if someone asked you to explain a piece of code (say, code that uses a strategy pattern - but you don't know patterns): "I first create a property for storing the behavior of the class, then I'll create two separate classes based on an interface which I'll call..." or if I know patterns, I can simply say "I'll implement a strategy pattern". I know what I'd say if someone asked me to explain that code. If someone tried explaining code to me like the former, I'd tell them to sod off.
I'm going to have to stop there and do some work or Adam won't permit me any food tonight :(
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
View Public Profile
Send a private message to Karl
Find More Posts by Karl