Summary

The honest signature is important not only in functional approach but also every time we code, since, basically, the signature has to deliver all the information about the possible accepted input values and possible produced output. By implementing honest signature, we will be aware of the value we pass into the method parameter. We have to ensure that we have an immutable class as well in order to get functional because mutable operations will make our code dishonest.

Although we have to avoid side-effects in our pure function, it's nearly impossible to really avoid side-effects in our code. What we can do then is deal with it. We can use the command-query separation (CQS) principle to separate methods that generate side-effects and methods that don't. If the method returns a value, it will be a query and doesn't mutate anything. If the method returns nothing, it must be a command and will leave some side-effects in the system.

We can also separate our code into domain logic and the mutable shell in order to deal with the side-effects. The domain logic will be our core program, and it must be immutable. All mutable processing will be stored in the mutable shell. By creating the domain logic, we can easily run unit testing on it. We don't need to modify the test scenario or run the mock test for domain logic since it is a pure function.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset