Modular design is a great way to reduce complexity in software. In the Elixir ecosystem, the discussion around this topic has been energised by the introduction of Phoenix Contexts some time ago. Yet, coming up with a good module boundaries is really hard and we lack ideas on how to do this well. I want to show you a few techniques that result in code that is much easier to understand, test, and modify. After the talk, you will know some concrete ways of designing new features, but also of improving existing codebases.
Show how to tackle designing modules based on behaviour. Focus on a step-by-step approach, without changing the entire architecture.
Developers who work on systems with complex domain logic and would like to simplify them.
Maciej is a developer at AppUnite where he's been using Elixir for about two years now. He is interested in software architecture, distributed systems, data synchronisation and consistency guarantees. Lately, he has been a frequent speaker and co-organiser of Poznań Elixir Meetup.