In this post, we will look at some refactoring techniques using types. Types can be used to represent the domain in a fine-grained, well-defined way. Additionally, types can be used to incorporate business rules in a manner that ensures code correctness. This enables us to write simple and elegant unit tests to ensure code correctness.
You may also like: What Is Refactoring?
Refactoring With Types
Recently, while reviewing code, I came across the following class: