Unconscious Skill

29 Apr 2021

PATTERNS, PaTtErNs, PAttERns

Humans tend to notice patterns everywhere they go, whether virtually or in real life. Humans also tend to follow similar patterns when creating or designing new things. This concept can be applied to programming and the way people write code. To be honest, a lot of coding has to do with repetitive concepts executed in different ways to accomplish the task they are trying to solve. So, as programmers do more and more coding, their unique writing will stand out more to people observing their work. New developers may struggle to find these patterns but, they will soon know about it (whether it is intentional or not) and incorporate it in their own programs.

According to Professor Johnson, there are around 23 types of design patterns that can be found in various types of code. This makes it very probable that every average programmer has done one of the patterns at least once in their life. These patterns have been found decades before, meaning that many programmers have been following a similar format to coding since the very beginning of coding existence. They have also been refined and accepted by various people and organizations, meaning that design patterns are very effective in developing functioning and efficient code.

Class Critics

Like I mentioned before, it is very probable that a developer is going to use at lest one design pattern whether they know about it or not. I did not know anything about design patterns before working on the Class Critics final project for ICS 314. After watching Professor Johnson’s screencasts, I realized that I’ve done some of the patterns he mentioned in the video. Even before ICS 314, projects I have done in ICS 111 or homework assignments from ICS 211 have implemented design patterns that I did not even realize were there when I was taking those classes.

For my final project in ICS 314, my team consisting of Ana Araujo, Zijun Huang, John Suelen, and Steven Le are currently developing our own version of RateMyProfessors but for professors exclusive to UH Manoa. From Professor Johnson’s screencast, I realized that the website we are designing follows a Model-View-Controller design pattern. MVC is divided into three parts of programming or logic as the name suggests. The code for our project contains databases and raw data, which act as the model for the website. The user interaction featured on the website acts as the view in this case. The way the website responds as a result of the user interaction can be seen as the controller. I also realized from the templates we used to design the website followed a Singleton design pattern to develop the mongo databases and schemas.