Enviar pesquisa
Carregar
Practical Eff monad for real world applications
•
0 gostou
•
770 visualizações
Título melhorado com IA
Eric Torreborre
Seguir
Presentation given at FunctionalConf 2017
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 111
Baixar agora
Baixar para ler offline
Recomendados
Specs2, from starters to dessert and... a look in the kitchen
Specs2, from starters to dessert and... a look in the kitchen
Eric Torreborre
Pratical eff
Pratical eff
Eric Torreborre
Pratical eff monad at Scaladays Chicago
Pratical eff monad at Scaladays Chicago
Eric Torreborre
Pratical eff-scalaitaly-2017
Pratical eff-scalaitaly-2017
Eric Torreborre
APIdays Paris 2019 Backend is the new frontend by Antoine Cheron
APIdays Paris 2019 Backend is the new frontend by Antoine Cheron
apidays
Object Oriented JavaScript
Object Oriented JavaScript
techwhizbang
Agile India: Practices Change - Moving to Delivering continuously
Agile India: Practices Change - Moving to Delivering continuously
Maaret Pyhäjärvi
Practices Change - Moving to Delivering Continuously by Maaret Pyhajarvi at #...
Practices Change - Moving to Delivering Continuously by Maaret Pyhajarvi at #...
Agile Software Community of India
Recomendados
Specs2, from starters to dessert and... a look in the kitchen
Specs2, from starters to dessert and... a look in the kitchen
Eric Torreborre
Pratical eff
Pratical eff
Eric Torreborre
Pratical eff monad at Scaladays Chicago
Pratical eff monad at Scaladays Chicago
Eric Torreborre
Pratical eff-scalaitaly-2017
Pratical eff-scalaitaly-2017
Eric Torreborre
APIdays Paris 2019 Backend is the new frontend by Antoine Cheron
APIdays Paris 2019 Backend is the new frontend by Antoine Cheron
apidays
Object Oriented JavaScript
Object Oriented JavaScript
techwhizbang
Agile India: Practices Change - Moving to Delivering continuously
Agile India: Practices Change - Moving to Delivering continuously
Maaret Pyhäjärvi
Practices Change - Moving to Delivering Continuously by Maaret Pyhajarvi at #...
Practices Change - Moving to Delivering Continuously by Maaret Pyhajarvi at #...
Agile Software Community of India
Wire once, rewire twice! (Haskell exchange-2018)
Wire once, rewire twice! (Haskell exchange-2018)
Eric Torreborre
Systems Monitoring with Prometheus (Devops Ireland April 2015)
Systems Monitoring with Prometheus (Devops Ireland April 2015)
Brian Brazil
Shift-left SRE: Self-healing on OpenShift with Ansible
Shift-left SRE: Self-healing on OpenShift with Ansible
Jürgen Etzlstorfer
How TDD helps me design - A case study
How TDD helps me design - A case study
Software Craftsmanship Alicante
Big Retail Goes Reactive at Walmart
Big Retail Goes Reactive at Walmart
Nurun
java
java
Pothnak Jagan
Vertica the convertro way
Vertica the convertro way
Zvika Gutkin
Magento performancenbs
Magento performancenbs
varien
Lattice yapc-slideshare
Lattice yapc-slideshare
Gwenn Etourneau
Scaling Machine Learning Systems up to Billions of Predictions per Day
Scaling Machine Learning Systems up to Billions of Predictions per Day
Carmine Paolino
Ivy renderer
Ivy renderer
TejinderMakkar
A differnt Type of Supermarket Delivery
A differnt Type of Supermarket Delivery
Thoughtworks
GTLAB Installation Tutorial for SciDAC 2009
GTLAB Installation Tutorial for SciDAC 2009
marpierc
Introduction to Vaadin, GWT.create 2015
Introduction to Vaadin, GWT.create 2015
hezamu
Javascript under the hood
Javascript under the hood
Ridhwana Khan
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
Natan Silnitsky
Old code doesn't stink - Detroit
Old code doesn't stink - Detroit
Martin Gutenbrunner
An Introduction to Web Components
An Introduction to Web Components
Red Pill Now
Streaming 101: Hello World
Streaming 101: Hello World
Josh Fischer
Ajax to the Moon
Ajax to the Moon
davejohnson
wire-all-the-things-lambda-days-2023.pdf
wire-all-the-things-lambda-days-2023.pdf
Eric Torreborre
The many faces of modularity
The many faces of modularity
Eric Torreborre
Mais conteúdo relacionado
Semelhante a Practical Eff monad for real world applications
Wire once, rewire twice! (Haskell exchange-2018)
Wire once, rewire twice! (Haskell exchange-2018)
Eric Torreborre
Systems Monitoring with Prometheus (Devops Ireland April 2015)
Systems Monitoring with Prometheus (Devops Ireland April 2015)
Brian Brazil
Shift-left SRE: Self-healing on OpenShift with Ansible
Shift-left SRE: Self-healing on OpenShift with Ansible
Jürgen Etzlstorfer
How TDD helps me design - A case study
How TDD helps me design - A case study
Software Craftsmanship Alicante
Big Retail Goes Reactive at Walmart
Big Retail Goes Reactive at Walmart
Nurun
java
java
Pothnak Jagan
Vertica the convertro way
Vertica the convertro way
Zvika Gutkin
Magento performancenbs
Magento performancenbs
varien
Lattice yapc-slideshare
Lattice yapc-slideshare
Gwenn Etourneau
Scaling Machine Learning Systems up to Billions of Predictions per Day
Scaling Machine Learning Systems up to Billions of Predictions per Day
Carmine Paolino
Ivy renderer
Ivy renderer
TejinderMakkar
A differnt Type of Supermarket Delivery
A differnt Type of Supermarket Delivery
Thoughtworks
GTLAB Installation Tutorial for SciDAC 2009
GTLAB Installation Tutorial for SciDAC 2009
marpierc
Introduction to Vaadin, GWT.create 2015
Introduction to Vaadin, GWT.create 2015
hezamu
Javascript under the hood
Javascript under the hood
Ridhwana Khan
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
Natan Silnitsky
Old code doesn't stink - Detroit
Old code doesn't stink - Detroit
Martin Gutenbrunner
An Introduction to Web Components
An Introduction to Web Components
Red Pill Now
Streaming 101: Hello World
Streaming 101: Hello World
Josh Fischer
Ajax to the Moon
Ajax to the Moon
davejohnson
Semelhante a Practical Eff monad for real world applications
(20)
Wire once, rewire twice! (Haskell exchange-2018)
Wire once, rewire twice! (Haskell exchange-2018)
Systems Monitoring with Prometheus (Devops Ireland April 2015)
Systems Monitoring with Prometheus (Devops Ireland April 2015)
Shift-left SRE: Self-healing on OpenShift with Ansible
Shift-left SRE: Self-healing on OpenShift with Ansible
How TDD helps me design - A case study
How TDD helps me design - A case study
Big Retail Goes Reactive at Walmart
Big Retail Goes Reactive at Walmart
java
java
Vertica the convertro way
Vertica the convertro way
Magento performancenbs
Magento performancenbs
Lattice yapc-slideshare
Lattice yapc-slideshare
Scaling Machine Learning Systems up to Billions of Predictions per Day
Scaling Machine Learning Systems up to Billions of Predictions per Day
Ivy renderer
Ivy renderer
A differnt Type of Supermarket Delivery
A differnt Type of Supermarket Delivery
GTLAB Installation Tutorial for SciDAC 2009
GTLAB Installation Tutorial for SciDAC 2009
Introduction to Vaadin, GWT.create 2015
Introduction to Vaadin, GWT.create 2015
Javascript under the hood
Javascript under the hood
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
Old code doesn't stink - Detroit
Old code doesn't stink - Detroit
An Introduction to Web Components
An Introduction to Web Components
Streaming 101: Hello World
Streaming 101: Hello World
Ajax to the Moon
Ajax to the Moon
Mais de Eric Torreborre
wire-all-the-things-lambda-days-2023.pdf
wire-all-the-things-lambda-days-2023.pdf
Eric Torreborre
The many faces of modularity
The many faces of modularity
Eric Torreborre
What haskell taught us when we were not looking
What haskell taught us when we were not looking
Eric Torreborre
Streaming, effects and beautiful folds: a winning trilogy
Streaming, effects and beautiful folds: a winning trilogy
Eric Torreborre
The Eff monad, one monad to rule them all
The Eff monad, one monad to rule them all
Eric Torreborre
Easy di-slideshare
Easy di-slideshare
Eric Torreborre
Data generation, the hard parts
Data generation, the hard parts
Eric Torreborre
Origami, a monadic fold library for Scala
Origami, a monadic fold library for Scala
Eric Torreborre
Datatypes for the real world
Datatypes for the real world
Eric Torreborre
Specs2 3.4
Specs2 3.4
Eric Torreborre
DSLs with fold algebras
DSLs with fold algebras
Eric Torreborre
Specs2 whirlwind tour at Scaladays 2014
Specs2 whirlwind tour at Scaladays 2014
Eric Torreborre
Epic success \/ failure, refactoring to *real* FP
Epic success \/ failure, refactoring to *real* FP
Eric Torreborre
Vampire methods
Vampire methods
Eric Torreborre
Specs2 whirlwind-tour
Specs2 whirlwind-tour
Eric Torreborre
Scala days2013 proxyfactorybeandelegate
Scala days2013 proxyfactorybeandelegate
Eric Torreborre
Strong functional programming
Strong functional programming
Eric Torreborre
The Essence of the Iterator Pattern (pdf)
The Essence of the Iterator Pattern (pdf)
Eric Torreborre
The Essence of the Iterator Pattern
The Essence of the Iterator Pattern
Eric Torreborre
Specs2 - Scala-Syd presentation
Specs2 - Scala-Syd presentation
Eric Torreborre
Mais de Eric Torreborre
(20)
wire-all-the-things-lambda-days-2023.pdf
wire-all-the-things-lambda-days-2023.pdf
The many faces of modularity
The many faces of modularity
What haskell taught us when we were not looking
What haskell taught us when we were not looking
Streaming, effects and beautiful folds: a winning trilogy
Streaming, effects and beautiful folds: a winning trilogy
The Eff monad, one monad to rule them all
The Eff monad, one monad to rule them all
Easy di-slideshare
Easy di-slideshare
Data generation, the hard parts
Data generation, the hard parts
Origami, a monadic fold library for Scala
Origami, a monadic fold library for Scala
Datatypes for the real world
Datatypes for the real world
Specs2 3.4
Specs2 3.4
DSLs with fold algebras
DSLs with fold algebras
Specs2 whirlwind tour at Scaladays 2014
Specs2 whirlwind tour at Scaladays 2014
Epic success \/ failure, refactoring to *real* FP
Epic success \/ failure, refactoring to *real* FP
Vampire methods
Vampire methods
Specs2 whirlwind-tour
Specs2 whirlwind-tour
Scala days2013 proxyfactorybeandelegate
Scala days2013 proxyfactorybeandelegate
Strong functional programming
Strong functional programming
The Essence of the Iterator Pattern (pdf)
The Essence of the Iterator Pattern (pdf)
The Essence of the Iterator Pattern
The Essence of the Iterator Pattern
Specs2 - Scala-Syd presentation
Specs2 - Scala-Syd presentation
Último
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
shyamraj55
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
ThousandEyes
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Katpro Technologies
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
carlostorres15106
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Sinan KOZAK
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
HostedbyConfluent
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
Pooja Nehwal
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
Softradix Technologies
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Safe Software
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
Allon Mureinik
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Patryk Bandurski
Último
(20)
Slack Application Development 101 Slides
Slack Application Development 101 Slides
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Practical Eff monad for real world applications
1.
Eric Torreborre Practical Eff monad Doing
it for real
2.
3.
4.
About Zalando
5.
Merchant Operations
6.
Article service
7.
products Articleservice business-partners Zeos stocks 59.95 € 10 items
8.
How to deal?
9.
Components!
10.
11.
DI?
12.
Cake?
13.
Guice?
14.
Spring?
15.
Radical
16.
Constructor injection!
17.
18.
19.
20.
21.
22.
23.
24.
HttpServer Routes Services Clients
25.
26.
PriceHttpService PriceHttp4sService
27.
28.
Always one default
29.
In a library?
30.
31.
32.
Finally Tagless?
33.
34.
reader all the way down!
35.
Unit testing?
36.
Integration testing?
37.
HttpServer Routes Services Clients
38.
HttpServer Routes Services Clients
39.
Tree rewriting!
40.
Kiama
41.
42.
43.
Singleton?
44.
HttpServer Routes Services Clients
45.
HttpServer Routes Services Clients
46.
47.
48.
49.
App HttpServer HttpClient ClientConfig GetSizesRoute SetPriceRoute MasterData HttpClient ClientConfig Catalog HttpClient ClientConfig MasterData
50.
App HttpServer HttpClient ClientConfig GetSizesRoute SetPriceRoute MasterData HttpClient ClientConfig Catalog HttpClient ClientConfig MasterData
51.
App HttpServer HttpClient ClientConfig GetSizesRoute SetPriceRoute MasterData HttpClient Catalog ClientConfig
52.
53.
Stay lazy!
54.
55.
Start order?
56.
57.
58.
lazy reader rewrite start
59.
Eff please!
60.
61.
62.
What the Eff?
63.
64.
65.
66.
67.
Out of the
box
68.
69.
70.
71.
Article service
72.
FlowId
73.
HttpServer Routes Services Clients flowId flowId flowId flowId
74.
75.
Logged
76.
77.
78.
79.
80.
Applicative
81.
Concurrent execution
82.
MasterData PriceService Inventory
83.
84.
85.
Async
86.
TimedFutureEffect TaskEffect TaskEffect TaskEffect TwitterFutureEffect
87.
FlowId Logged Task Eval
88.
No Reader[Config, ?]
89.
Mitsaeks we made
90.
Stack definition
91.
92.
At the latest
moment!
93.
Errors
94.
3 possibilities
95.
1 error style
per layer Translation between layers
96.
Use local effects!
97.
98.
Everything is a (Free)
DSL?
99.
100.
Make price request request [PriceRequest] [PriceRequest] response Interpret
request [PriceRequest, Async] [Async]
101.
102.
Get price price [Async] [Async]
103.
104.
Time: effect or component?
105.
Get status status [Eval] now? [Eval] now
106.
Get status status [Eval] now? [Eval] now FreezedTime
107.
Get status status [Eval, Timed] runFreezedTime(status) [Eval]
108.
Recap
Baixar agora