Monday, February 10, 2014

Software Design Patterns: How useful are they?

Hi there, I'm here tonight discussing the article on wikipedia for Software Design Patterns, that article can be located here.

A software design pattern is basically something you can design or draw out as a template for a piece of software that you are currently developing. This template cannot be followed instruction by instruction to achieve the desired result, rather it is more of a general direction to begin in, with milestones along the way. This is important because it gives some structure to the overall design of what you are doing, aiding you to not be lost when looking for the next step in the program.

I have user software design patterns before, mostly for outlining object oriented related objects. Diagrams I have done detailed how classes interacted, helper classes, and their basic designs. This is cool because when you start programming a class, you have it outlined before it's even done. This means if you have two classes interact with each other, you can program one before the other since you already know what functions the other will have that need to be interacted with. This was very important in a project where a group of us were working on a program together, and we didn't necessarily all work at the same time. Since we knew all of the basic class outlines, our programs could interact with each other quite easily, even if we weren't in constant communication.

Some criticism has come from the fact that these diagrams oversimplify things and this becomes a problem when you're actually implementing according to simplified diagrams. These problems can arise from thinking you needed extra functionality that wasn't necessary, or not foreseeing a certain problem. Though both of these things can happen, I don't think it is valid criticism. Problems will always arise when programming something complicated, and I think it's very useful to have an overarching structure to the program before you delve into the nitty gritty.

So, overall, I think software design patterns are awesome. I think they are useful and you will almost always be very happen you decided to make them before you get into the full body of code.

No comments:

Post a Comment