Fighting Complex Application State Management with Finite-State Machines [ukr]
One of the essential parts of every reasonably complex application is a state. Managing it and making it more predictable is one of the most important aspects to consider during application or solution development.
One way to give more structure to the solution and outline key states an application can be in is to model it using finite-state machines (FSM). In this talk, we'll look at FSMs and how they can be used for good in a real-world desktop application. We'll discuss whether they can help maintain a clear understanding of states and their transitions, look at different implementations in .NET, and point out the drawbacks of using them. We’ll also examine how the overall approach can be improved.
And to spice everything up a little bit, we'll explore how FSMs can be implemented in a functional programming world by peeking at F# examples and comparing declarative and imperative approaches.
- A strong believer that computers should do all of the routine work and help people in every possible way, so he advocates automation in all aspects of his work
- His passions in both his professional and personal life are functional programming and programming languages and how combining them can produce dramatically better results when solving complex problems
- He is currently working with the team on the Grammarly Office Add-in to improve its overall architecture and adaptability to the rapidly changing requirements while staying productive and maintaining the correctness of the solutions