Pular para conteúdo
Victor Magalhães
vhfmag@protonmail.com
Disclaimers Aqui não há lugar para o ódio. Este espaço está em defesa das mulheres, da população negra, indígena, pobre, LBGTTIQ, imigrante, muçulmana, judia, refugiada e todas as pessoas sob ataque. #SomosTodasAntifascistas

Apoia o atual presidente? Você não é bem vindo, fascista. Saia 👋🏾

Espécies estão sendo extintas; cidades, afundadas; já está faltando comida. Mas ainda dá pra fazer algo contra a catástrofe climática:

Algebraic Effects for the Rest of Us — Overreacted

Ok, todo mundo (nos círculos de desenvolvimento que eu frequento) já falou sobre esse post, mas vou comentar minha perspectiva mesmo assim:

Primeiro, Dan Abramov é bom nisso de escrita técnica, né?

Segundo, sobre os efeitos algébricos. Por um lado, eles (me) parecem muito promissores. Imagina o nível de separation of concerns que isso permitiria? O mesmo código de lógica de negócio no front e no back, só os event handlers que mudam 🤯. Testes também ficariam ridiculamente mais fáceis, e os efeitos algébricos poderiam dar conta da maior parte dos casos de uso de técnicas como injeção de dependência e mock de módulos.

Por outro, me parece que eles resistem a tentativas de análise estática. Não vejo como tipar eles: como saber quais handlers vão lidar com um efeito em particular antes de executar o código? Como saber que código de terceiros usa os efeitos da forma como seu handler espera? Talvez um sistema parecido com como o Java tipa exceções rigorosamente, permitindo que você saiba que tipos de exceção são lançados e exigindo que você declare as mesmas exceções se não tratá-las? Mesmo assim, acho que isso poderia ficar confuso, rápido.

Enfim, empolgado com a ideia.