More Related Content
Similar to Pratical eff-scalaitaly-2017 (20)
More from Eric Torreborre (20)
Pratical eff-scalaitaly-2017
Editor's Notes
- You learn new concepts....
- Now where to start?
- How do we use Eff at Zalando?
- Brand solutions
- shop in shop (with CMS / analytics)
- onboarding new merchants
- small store
- big brand
- Article service
- onboarding new merchants
- find an article id from the EAN
- set stock, set price -> ready to sell!
- - evolving front-end APIs
- evolving back-end services
- evolving libraries
- What’s the proven technique for dealing with these constraints?
- Interface + implementation
- Encapsulate technical alternatives, not processes
- Cake Pattern?
Guice?
Spring?
- Cake Pattern?
Guice?
Spring?
- Cake Pattern?
Guice?
Spring?
- Cake Pattern?
Guice?
Spring?
- Radical idea: constructor injection
- Radical idea: constructor injection
- Radical idea: constructor injection
- Radical idea: constructor injection
- Radical idea: constructor injection
- Radical idea: constructor injection
- Radical idea: constructor injection
- Interfaces
- Radical idea: constructor injection
- Radical idea: constructor injection
- Radical idea: constructor injection
- Radical idea: constructor injection
- Radical idea: constructor injection
- Laziness is essential, nothing should start!
- Laziness is essential, nothing should start!
- Lazyness is essential, nothing should start!
- Start services from the bottom-up and collect results
- What has Eff to do with all of this?
- Which effects we want to use? Future, Reader, Writer?
- What has Eff to do with all of this?
- Either as request
- Either as request, interpreted with runEither
- Article service
- onboarding new merchants
- find an article id from the EAN
- set stock, set price -> ready to sell!
- Radical idea: constructor injection
- Concurrent execution
Batching
- Concurrent execution
Batching
- Concurrent execution
Batching
- Concurrent execution
Batching
- What’s the problem with Future again?
- What’s the problem with Future again?
- This means that we don’t have to expose all effects at the component level!
- How do we deal with errors?
- How do we deal with errors?
- How do we deal with errors?
- low level
- domain level
- How do we deal with errors?
- How do we deal with errors?
- This means that we don’t have to expose all effects at the component level!
- This means that we don’t have to expose all effects at the component level!
- In general components are not interpreters except to
- Make price request gives you back a *program*
- Make price request gives you back a *program*
- Make price request gives you back a *computation*
- Recap on a service signature
- Recap on a service signature
- That's all folks!
- How do we deal with errors?
- low level
- domain level
- Concurrent execution
Batching
- Concurrent execution
Batching
- Batching
- Concurrent execution
Batching
- Concurrent execution
Batching
- Concurrent execution
Batching
- Concurrent execution
Batching