When I first started learning about software engineering I always thought that there really was no easy step by step instructions on what to do. I thought that everything that you did would be unique from each other. However, as I started learn more about software engineering I realized there are patters that are used. There were issues that I would run into that I would then run into again. Because I was able to find a solution the first time, I was able to apply it again and again. This week is when I learned that this concept is called “Design Patterns.” Design patterns are described as a solution to issues that frequently pop up.
The idea of design patters started to remind me of soldering stencils. A soldering stencil is useful as it can help you populate* a circuit board quickly. It reminds me of design patterns as populating a circuit board is a really complicated thing to do. A lot can go wrong when trying to individually solder on every part. Using a soldering stencil will allow you to populate a board all at once. This solves to issue of soldering on each part one by one, which can also take up a lot of time. It’s also similar to a design patter as it can be used multiple times. If you need more than one circuit board populated, the stencil is a tool can help you populate a board resolving the issues that may come with individually populating it. In addition, using stencils can also come with flaws. If you do not apply the solder paste correctly, it can ruin the whole board and you will have to start over. All design patterns come with flaws which is something that soldering stencils and design patterns have in common.
In conclusion, design patters are like soldering stencils. They provide a solution to populating a circuit board in less time while also minimizing the possibility of miss placing parts. There are different stencils for different circuit boards which relates to the idea that there are many design patters for different problems. I realized that I use a lot of design patters in software engineering. A common one I used is a prototype design pattern which allows you to use one object to create multiple objects. I even used front controller design patters as I use it to handle user authentication in our final project. Design patterns are an important part of software engineering. As I continue to grow in software engineering I will collect more “soldering stencils” that will help me improve as an engineer.
*populate means to place down all parts such as resistors, capacitors, LED’s, etc.