Navigating the Code Wilderness!

25 Apr 2024

Setting the Scene, The Toolbox!

As we come to the end of the spring 2024 semester, we have been introduced and exposed to a world of new (at least for me) software development tools and methodologies. We have learned how to use and utilize different skills, and in a way have built up our very own “toolbox,” to solve the problems we have encountered through the numerous assignments, WODs, and more importantly, through our final team project now. In addition to honing our skills, we have been (unknowingly) exposed to a very important structural and strategic method, that is key to solving the common problems encountered during the design and development of the software, design patterns.

Exploring Design Patterns..

I like to think of design patterns as a reliable map that provides the necessary path of where to go. Imagine being lost in a forest, with large monsters and obstacles blocking you from escaping this uncharted territory, and all we have is this map. Design patterns act as a sort of plan or template, that can be used as a reusable solution to the many problems we may encounter as we design software, to solve common problems. Design patterns throughout my semester in ICS 314, have helped me to make organized and easy-to-read code, that allowed me to generate good software development ethics and habits.

Design Patterns in Action!

More recently, 5 students and I have been working on our final project for ICS 314, creating a website to help students and vendors, showcase and upload (for store owners) locations of places to eat around the University of Hawaii Manoa campus. With this project, we utilized many different applications, such as React, MongoDB, Meteor, as well as Javascript to create our website. Throughout this project, we utilized a multitude of different design patterns to effectively manage user, vendor, and admin data, as well as the overall format and structure of our pages.

One of the ways we created and managed our data was through the Singleton design. The Singleton design pattern is a design that ensures that a class has only one instance, that allows global access to this instance. In our case for our project, we used singleton with our Vendor collection, which housed our data for all of the food vendors on campus. This collection was created inside of a class and provided global access through a singular instance. This allowed us to manage the resources of the collection across our shared application, allowing easy and coherent globalization to every part of our design.

Looking Forward to Future Explorations!

In the context of our final team project, creating a website for students and vendors around the University of Hawaii Manoa campus, design patterns became the compass that steered us toward success. With applications like React, MongoDB, and Meteor at our disposal, we navigated through the forest of challenges, utilizing design patterns to structure our code, manage data effectively, and ensure scalability and maintainability. We see design patterns not just as abstract concepts but as practical tools that have enhanced our means to write cleaner, more organized code and build software solutions that are adaptable. Just as a map guides a traveler through unfamiliar terrain, design patterns have guided us through the landscape of software development, illuminating the path toward mastery and innovation.

- ChatGPT used for headers and conclusion