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
15
Future Proof CSS - 2019
mendrone
0
63
Vue.js - O Antes, o Durante e o Depois
mendrone
0
100
Future Proof CSS
mendrone
1
91
High Speed Workflow
mendrone
4
130
Usabilidade - O bom senso é o seu melhor amigo
mendrone
0
77
Um Simples Checkup Pode Salvar a Sua Loja Virtual
mendrone
0
53
Other Decks in Technology
See All in Technology
Discovering AI Models
picardparis
4
3.9k
PDF Viewer作成の今までとこれから
hunachi
0
480
20240911_New_Relicダッシュボード活用例
speakerdeckfk
0
110
『GRANBLUE FANTASY Relink』ソフトウェアラスタライザによる実践的なオクルージョンカリング
cygames
0
180
事前準備が肝!AI活用のための業務改革
layerx
PRO
1
390
PdMはどのように全てのスピードを上げられるか ~ 非連続進化のための具体的な取り組み ~
sansantech
PRO
4
1.3k
20240912 JJUGナイトセミナー
mii1004
0
140
ナレッジグラフとLLMの相互利用
koujikozaki
0
430
QAに対する超個人的な解釈 / Personal Take on QA
toma_sm
1
140
GC24 Recap: Interface Internals
task4233
0
240
DroidKaigi 2024 たすけて!ViewModel
mhidaka
5
1k
開発者の定量・定性データを組み合わせて開発者体験を把握するための取り組み
ham0215
1
160
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Done Done
chrislema
180
16k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
326
21k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
29
2.6k
In The Pink: A Labor of Love
frogandcode
139
22k
Why You Should Never Use an ORM
jnunemaker
PRO
53
8.9k
Building Flexible Design Systems
yeseniaperezcruz
325
38k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
158
15k
Happy Clients
brianwarren
96
6.6k
Bash Introduction
62gerente
608
210k
Thoughts on Productivity
jonyablonski
66
4.2k
Being A Developer After 40
akosma
84
590k
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