Example 1 – hotdog shop
For our first example, we are going to take a look at some code that has been written in an impure way, and which is pretty much violating all good sense for writing pure functions. We’ll refactor this code as we go along to create more testable code, along with improving the readability and understandability of the code.
Bad hotdog shop
First, let’s take a look at how not to create this hotdog shop system. We’ll start by defining a constant, a global variable that dictates the price of our hotdog:
const ( HOTDOG_PRICE = 4 )
Next, we’ll create some structs. We will need a struct to represent a hotdog, as well as a struct to hold our credit card information. To keep things simple, the hotdog does not hold any state variables at the moment, while the credit card only stores the credit that is available on the card. Credit in this example is an integer value. It’s not something that accurately represents a...