Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
A arte da composição
Search
Vitor Mendrone
November 30, 2019
Technology
0
17
A arte da composição
Vitor Mendrone
November 30, 2019
Tweet
Share
More Decks by Vitor Mendrone
See All by Vitor Mendrone
Como se tornar indispensável em um mercado em crise?
mendrone
0
72
Expressões Regulares
mendrone
0
27
Como escolher uma stack para meu projeto?
mendrone
0
13
Future Proof CSS - 2019
mendrone
0
54
Vue.js - O Antes, o Durante e o Depois
mendrone
0
97
Future Proof CSS
mendrone
1
91
High Speed Workflow
mendrone
4
130
Usabilidade - O bom senso é o seu melhor amigo
mendrone
0
75
Um Simples Checkup Pode Salvar a Sua Loja Virtual
mendrone
0
51
Other Decks in Technology
See All in Technology
On Your Data を超えていく!
hirotomotaguchi
2
750
Building Dashboards as a Hobby
egmc
0
360
Tellus の衛星データを見てみよう #mf_fukuoka
kongmingstrap
0
260
Improve Your Development Workflow with Gemini Code Assist
meteatamel
0
120
TechFeed Experts Night#27 〜 フロントエンドフレームワーク最前線 (Svelte)
baseballyama
2
590
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
270
AWSに詳しくない人でも始められるコスト最適化ガイド
yuhta28
2
280
EMとして2023年度に頑張ったこと / What we did well in FY2023 as a EM
pauli
1
210
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
720
本当のAWS基礎
toru_kubota
1
620
推しは推せるときに推せ! プロダクトにフィードバックしていこう
nakasho
0
460
GrafanaMeetup_AmazonManagedGrafanaのアクセス制御機能とマルチテナント環境下でのアクセス制御について
daitak
0
390
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
61
4k
A Philosophy of Restraint
colly
197
16k
Typedesign – Prime Four
hannesfritz
36
2.1k
Designing for humans not robots
tammielis
248
25k
[RailsConf 2023] Rails as a piece of cake
palkan
27
4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
126
32k
BBQ
matthewcrist
80
8.8k
VelocityConf: Rendering Performance Case Studies
addyosmani
321
23k
Rebuilding a faster, lazier Slack
samanthasiow
74
8.2k
Debugging Ruby Performance
tmm1
70
11k
For a Future-Friendly Web
brad_frost
172
9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
33
6k
Transcript
None
Vitor Mendrone Senior Developer @ Work & Co @vhmendrone
Disclaimer
+ Explicito + Genérico
Que argumentos essa função aceita? Que valores ela retorna? Quais
dados externos são necessários?
None
None
None
None
None
None
None
None
A arte da composição
Composição é a essência da programação.
Problema Decomposição Solução Recomposição / Composição
Composição é a alma da programação funcional.
None
Hype?
OOP (Object Oriented Programming) não oferece uma maneira satisfatória de
se resolver problemas atuais da computação multithread.
Concorrência e Paralelismo
Side Effects Tornam-se invisíveis Não escalam
O paradigma funcional oferece maior poder de abstração
O que é composição?
O ato de combinar partes ou elementos para formar um
todo. dictionary.com
Teoria de categorias
Categorias são a essência da composição Bartosz Milewski - Category
Theory for Programmers
Objetos e morfismos (ou arrows) entre esses objetos.
3 leis Composição Associatividade Identidade
Composição
None
None
None
Function composition
None
Function Composition + Typescript
FP-TS https://github.com/gcanti/fp-ts
Null Checks Exceptions Async Operations
Null Checks
None
None
Option Container Effect para o tipo opcional A Representa o
efeito de uma computação possivelmente com falha. Option<A>
None
None
None
None
Sem exceções
None
Either Um Option mais poderoso Valor existe: Right<R> Valor não
existe: Left<L> Either<L, R>
None
None
Stop making promises
None
Task Lazy evaluated e referencialmente transparente Task<A>
None
TaskEither Task<A> - Lazy e referencialmente transparente Either<L, R> TaskEither<L,
A>
None
Programação Funcional turbinada pela teoria de categorias nos fornece maneiras
de compor componentes (funções) de maneira concisa e agnóstica
Composições simples Flexíveis Robustas Fáceis de entender
Obrigado! @vhmendrone