In my own words, design patterns are the structure and logical order with which a programmer develops their software. It could mean the way they segment their code; for example, using many components to make their code very modular instead of writing all of the code for a page in one page.tsx file. It could also refer to the way that their code looks, such as whether they have a very specific color scheme that their website follows or consistent layout pattern that their entire website adheres to. Design patterns ensure that software engineers develop consistent and coherent code. I believe that it is very helpful. I suppose a metaphor to use for design patterns could be like a blueprint. The software engineer references their “blueprint” and it gives them a structure to work with, and makes sure that the code checks certain boxes.
So far, I have only implemented design patterns in small ways, and rarely intentionally. I suppose one could consider writing almost all of my code for the profile page of my Gym-Meet project in one page.tsx file a design pattern, because it follows a logical pattern of how I’m writing my code. However, I wouldn’t consider it a good design, as it is not reusable and thus less efficient. Since it all of the code is in the page and not in components, it also looks messier, while a page that utilizes components would look better and even be more readable. Another design pattern that I have implemented is intentionally making sure the code I write fits the color scheme of the website and also the layout and look of it. This is something that every programmer should do, but it is still a design pattern. My experience with design patterns is very limited, but as I progress in software design and engineering, I would like to be more intentional about the way I write my code and the way my UI design looks.
Moving forward, I want to develop more design patterns that will significantly improve the design of my code and the way my code is written. I want to make my code more modular, using components for code that I want to reuse later on in the project. Additionally, I want to make the layouts of my pages more uniform, to improve the looks of my pages for users. Finally, I want to learn more about implementing designs that will catch the users’ eyes, such as putting videos in my pages or adding fancy features to my websites. I believe that these changes will make my programming experience a lot more efficient and potentially even rewarding if I end up producing better products because of my design patterns.