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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Vitor Mendrone
November 30, 2019
Technology
31
0
Share
A arte da composição
Vitor Mendrone
November 30, 2019
More Decks by Vitor Mendrone
See All by Vitor Mendrone
Como se tornar indispensável em um mercado em crise?
mendrone
0
79
Expressões Regulares
mendrone
0
37
Como escolher uma stack para meu projeto?
mendrone
0
27
Future Proof CSS - 2019
mendrone
0
77
Vue.js - O Antes, o Durante e o Depois
mendrone
0
110
Future Proof CSS
mendrone
1
110
High Speed Workflow
mendrone
4
140
Usabilidade - O bom senso é o seu melhor amigo
mendrone
0
85
Um Simples Checkup Pode Salvar a Sua Loja Virtual
mendrone
0
65
Other Decks in Technology
See All in Technology
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
77k
AWSで2番目にリリースされたサービスについてお話しします(諸説あります)
yama3133
0
120
OPENLOGI Company Profile
hr01
0
83k
今年60歳のおっさんCBになる
kentapapa
1
170
仕様通り動くの先へ。Claude Codeで「使える」を検証する
gotalab555
8
2.4k
GitHub Copilotを極める会 - 開発者のための活用術
findy_eventslides
5
2.3k
OCI技術資料 : 証明書サービス概要
ocise
1
7.2k
JSTQB Expert Levelシラバス「テストマネジメント」日本語版のご紹介
ymty
0
130
Data Intelligence Engineering Unit 部門と各ポジション紹介
sansantech
PRO
0
120
自分をひらくと次のチャレンジの敷居が下がる
sudoakiy
5
1.8k
「決め方」の渡し方 / How to hand over the "decision-making process"
pauli
7
1.2k
Cursor Subagentsはいいぞ
yug1224
2
140
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
95
Why Our Code Smells
bkeepers
PRO
340
58k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
97
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
200
Designing for Timeless Needs
cassininazir
0
180
ラッコキーワード サービス紹介資料
rakko
1
2.9M
Optimising Largest Contentful Paint
csswizardry
37
3.6k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.4k
Google's AI Overviews - The New Search
badams
0
960
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Deep Space Network (abreviated)
tonyrice
0
100
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
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