Great software should be easy to understand and improve, but usually, developers tend to bring unnecessary complexity to the code base. Building a state machine is one of those things that usually brings a lot of boilerplate and overall complexity with it, but what if we had a better and simple way to build states machines while keeping our sanity, simplicity, and capacity to easily extend it?
In this talk we’ll understand state machines:
- how it’s a well-defined concept that developers all around have been using
- how implementing it without thinking about it can lead to some really nasty code smells
- what solutions we have for it in the Elixir ecosystem
But we won’t stop there, I’ll also share how I have been through it and solved this problem myself by building an opensource library called Machinery, and how it can help you to build nice, clean and expandable state machines while providing you with some great features.