:triangular_ruler: Design In Mind

- 2 mins

Markdown Image

The problem

Lost in the Canadian back country. The butch plane, transporting you to a remote cabin hideout in the Saskatchewan province, has just crashed near Lake Athabasca. You awake dazed and confused next to a burning fuselage with scattered remnants of what use to be your supplies, and pilot… Coming to your senses, panic sets in at the realization that there is no hope of a rescue party ever reaching you. Frantic attempts to check for any means of contacting the outside world are fruitless: All radios are destroyed, the satellite phone annihilated. The only surviving hardware is your trusty laptop. You breathe a sigh of relief as you haven’t pushed your local repo to origin for a while. After collecting yourself, and what little supplies are to be found, you head into the unknown.

The light at the end of the tunnel

Night begins to fall, the chill from the howling sub-arctic winds slice through your Patagonia, straight to your bones. But alas, the falling sun gives evidence of electric light teeming just beyond the horizon. Your spirits are re-kindled with hope of civilization much closer than expected. To your utter surprise, you stumble into a Marriott! Picking your jaw up off the floor, you ask a fellow human, “but… what the… how…? What is going on?” The response, “Oh, yeah, people crash here all the time, so they just decided to build a hotel.”

The solution

For me, the start of a project sometimes feels like being lost in the wilderness. That was before I learned about design patterns. Often times, an approach to solving a problem can result in that particular approach being a type of solution in and of itself. Progress is typically made through the tedious and time consuming methodology of trial and error. When attempting to learn physics, the correct approach would not to be to first come up with a way to find an instantaneous rate of change. Some wig-wearing legend has already designed the solution to such a problem! The same idea applies to problems inherent in building large-scale software applications, don’t try to reinvent the wheel! Instead, classify the application into a design best suited to the environment in which the software is going to be built.

Wyatt Hoodes

Wyatt Hoodes

Pressured != crushed; Perplexed != despair

rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora