Guidebook for Computer Scientists

02 Dec 2021

Look up a Guidebook

Whenever we go traveling to somewhere we have never been, we often trying to google about the place so that we find some guidebooks that explain and navigate us to have an enjoyable travel without a risk of wasting time and money. The design pattern is the guidebook in the computer science. Design patterns are general solution that people can use them over and over when they have a similar problems. When we encounter a problem, it is very unlikely that the problem is unique, and no one has met it before. So, people around the world already have made the solution to the problem and wrote down a guidebook of the problem. By read and follow these guidebooks, we can overcome our problems more effectively and more efficiently.

There are a lot of kinds of design patterns that can fit to certain situation of the problem. Four most common objective oriented design patterns are: Factory, Singleton, Observer, and Model-View-Controller (MVC). Each design pattern has their own advantages and disadvantages (trade-offs). So, choosing the best design pattern for the problem is important to make the best choice for the problem that you encounter.

However, at the same time, we need to care about that the design patterns are not the best solutions at every time. It’s not something like arithmetic equation or theorem so that we can plug in the values to get the answer. Design patterns are just general milestones that help people to solve problems, not specific solution provider. So, sometimes, it might be better to not use the design patterns for clarity and simplicity of codes.

Unconscious skills of Computer Scientists

Whether they realize or not, every computer scientists use some of the design patterns from very earliest time of coding experiences. I didn’t know about design patterns before I realize what it is just few days ago, but I realized that I was using different design patterns for different coding problems and projects. For example, in one of my projects, Roomniverse, a web development project that UH students can find their roommates and upload their posts like social media, my team members and I use a Model-View-Controller to deal with user interface and their accessibility. By implementing this pattern, we could restrict and control their permission and decorate how users view their information. My team can easily implement this concept much efficiently and effectively by using such design pattern. It’s not the only case, but there are a lot of situations that we implemented some design patterns. Every time when we face some obstacles in our project, looking up our guidebook is a good start of solving it.