Many people ask, “How do I find time to refactor?” I think the question itself betrays a misunderstanding of refactoring. Let me tell you when I refactor.
Refactoring has a specific meaning. When we misuse the word, we lose the ability to communicate an important concept. Let’s revisit what refactoring is and what it is not.
Finding the right balance between writing quality software and shipping features rapidly.
Sum types are a powerful domain modeling technique. Let’s look at how to use them to remove invalid states.
It turns out solving chess moves with recursion and pattern matching is a lot of fun!
How to optimize for a living codebase, where a line of code will be repeatedly
read, adapted and copied.
When you spot Maybe List
in your code, it may be time to think about alternatives.
When coming to a functional language, I often hear people ask, “How do I organize my code?” Let’s take a look at some ways in which data can tell us how to organize our modules and functions.
Write more confident code to avoid viral Maybe
taking over your project.
Refactor common Boolean smells using enums (union types).