To Bake a Cake

03 Dec 2020

While it's true that the best cakes are made from scratch, it doesn't hurt to make some out of Betty Crocker or some other instant cake mix every once in a while. Some people may not know the difference, while a cake connoisseur could definitely tell you that the ratio of ingredients came from instant cake mix. Much is the same about software. Building a software project from scratch takes a vast amount of effort and knowledge, and much like baking a cake, can turn out disasterous without the experience or without the right recipe. That's where design patterns come in.

Software prototypes are essentially design patterns that are used like a template to develop applications, much like instant cake mix. You simply take the prototype and customize the things that you need for the application that you want to build to save you the headache of trying to bring the various libraries or resources together only to have it throw a hundred errors back at you. One example of such a prototype would be a meteor application template that has the libraries integrated for a web app built on a Mongo database with Semantic UI and React for the user to interface with it, allowing one to simply build an app to the limits of their creativity without having to worry about how to integrate those libraries into their app. Design patterns such as these allow one to create a fully functioning application in minutes rather than hours.

With great power however, comes the responsibility of using it wisely. Using such a meteor application template requires a working knowledge of how each of the parts of the application moves and connects with other parts. Without doing this legwork, it's quite simple to turn a working application into a pile of senseless code. Having this knowledge however gives one the power to create fully functional web applications such as a marketplace application similar to craigslist or ebay with a bit of creativity and tinkering. Using a meteor application template, I was able to design such an application along with some team members to include features such as listing items for sale and placing bids on items listed by other users.

With all of the possibilities out there it's easy to get carried away creating a variety of apps, and having that instant cake mix in your toolkit lets you worry not about the consistency of the batter, but instead about what type of frosting you want to put on top or how many layers you want to make your cake. It might not be the best cake around and you might not be able to claim full credit for baking it, but at least you can claim that you decorated it with the "Happy Birthday" frosting and sprinkles on top.