Maciej Kaszubowski - Modular Design in Elixir - ElixirConf EU 2019

preview_player
Показать описание
Maciej Kaszubowski - Backend developer, speaker and blogger

Talk in three words: design, modular, complexity

Modular Design in Elixir
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 good module boundaries is really hard and we lack ideas on how to do this well. Maciej will show a few techniques to ensue code is much easier to understand, test, and modify. After the talk, attendees will have some concrete techniques to design new features or improve existing codebases.

Objectives
Show how to tackle designing modules based on behaviour. Focus on a step-by-step approach, without changing the entire architecture.

Audience
Developers who work on systems with complex domain logic and would like to simplify them.

The speaker
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.
Github: mkaszubowski
Twitter: @mkaszubowski94

ElixirConf EU
Mail: info at elixirconfeu
Рекомендации по теме
Комментарии
Автор

I like this a lot! 30mins in, so maybe you already say this, but my big summary takeaway from this is: Anytime you use conditional logic in a context, ask yourself if there should be new contexts that encapsulate those different conditions.


This goes well with Sandy Metz design philosophy of conditional logic being a code smell.

nicholasmontano
Автор

I think a repository showcasing this style would be a great reference.

envueltoenplastico
Автор

This is an amazing talk. Thanks Maciej!

nimrodwandera
Автор

Great stuff! I really like the design of the example problem in the presentation with increasing complexity. One question: in the scenario presented - what happens to a job from JobPublishing after it has been published to JobBoard? Is it deleted from JobPublishing/jobs table?

jakublambrych