
One of my hobbies is cooking and baking. When I’m back home, I enjoy preparing meals for my family, often with a dessert to finish things off. Seeing them enjoy the meal I’ve made fills me with joy. Of course, I’m not a professional chef, so when I try to cook something new or challenging, I always check recipes online. Without a recipe, I’d struggle to get the ingredients and measurements right, and the dish might turn out messy or inedible. Recipes provide structure, ensuring that even something complex can be recreated successfully.
In software engineering, design patterns are like recipes. They’re not strict rules but guiding frameworks that help developers solve common challenges efficiently and predictably. Just as a recipe ensures a dish is consistently delicious while leaving room for tweaks and creativity, design patterns allow for flexibility while keeping everything organized. Cooking and coding might seem like unrelated activities, but both rely on structure, creativity, and proven methods to achieve success.
In our secondhand textbook marketplace project, we implemented the Observer Pattern to build a dynamic and responsive system. This pattern allows multiple components (observers) to “watch” and react to changes in a central source (the subject). For example, when a book’s approval status changes in the backend, all connected clients are instantly notified through a real-time notification system. This ensures that users always see the most up-to-date information without manual refreshes. By separating backend logic (data updates) from frontend logic (data display), the Observer Pattern makes our system scalable, maintainable, and well-prepared for future growth.
Just like following a recipe helps me create a delicious meal, using design patterns brings consistency and clarity to software development. For instance, if your cheesecake doesn’t set properly, you might check the recipe and realize you didn’t let it chill long enough. Similarly, in coding, design patterns guide you to identify where your process may have gone wrong and how to fix it.


Want your Earl Grey chiffon cake to have a stronger tea flavor? Adjust the recipe to steep the tea longer or use more leaves. In the same way, design patterns allow you to tweak and customize your application to meet specific needs while keeping the overall structure intact. In both cooking and coding, these structured frameworks are what turn creative ideas into reliable results. Design patterns make solving problems feel less intimidating, allowing developers to focus on building something truly innovative and effective.