Building software is like organizing a lost and found room, where if you don’t have a clear system in place, items can get misplaced, people get frustrated, and it makes a simple task into a hard challenge to solve. Design patterns in software development are like a proven organizing method that helps solve these issues by having developers arrange code so it’s consistent, easy to understand, and simple to improve.
Following along design patterns are not complete solutions, rather it is an approach that solves common problems. Just like sorting items in a lost and found room by category, design patterns in a way help structure software to handle repeated challenges smoothly and efficiently.
In my group project, we created a Lost and Found web app called Rainbow Reclamation. In order to keep our project organized, we used several common design patterns to help us keep moving forward in the project. In VSCode, we used React components to help break the user interface into small and reusable pieces, which makes the web app easier to maintain and modify. For example, submitting lost items or browsing a list of lost items follow this pattern. We also apply the Singleton pattern by using a single shared connection to our PostgreSQL database, which helped improve efficiency and resource use. Our web app uses Node.js and Next.js to help handle the backend and server-side rendering, while Bootstrap helps us build a consistent and responsive user interface for people to use on different devices. Finally, our webapp loosely follows along the Model-View-Controller pattern, which separates the database models, user interface views, and logic control. This separation helps keep our code organized and makes it easy for the team to work together. Overall, these patterns in our project help us develop new features, fix errors, and make improvements without scribbling around to find solutions.
In conclusion, design patterns are essential because they help bring order to complex software projects. Like a good organizing system makes a lost and found manageable, design patterns make software predictable and maintainable.
Using these patterns in Rainbow Reclamation has helped us build a web app that is easier to navigate and to improve on new or existing features. Getting to know these patterns also prepares me to build better software in future projects to come.