Máquina de estado reativo

Há 5 anos, depois de procurar uma solução adequada em RxJs, Beacon, ... etc.js e parar no flyd.js e escreveu 4-6 projetos usando apenas três recursos do fluxo , combinar biblioteca . O resto estava sem trabalho, eu queria a leveza do pacote. Então, aliás , as primeiras versões anteriores à 0.3 eram de apenas 20 a 30 linhas e substituíram completamente o flyd.

Um ano depois, a versão 0.4 já aparecia em 72 linhas com correspondência e mistura de padrões (analógico de combinar de flyd ou computado a partir de vue). Após três anos e dezenas de projetos - houve um sentimento de bondade, compartilhe experiência e liberou a versão 1.0.



terra da fantasia


Uma imersão acentuada na FRP de uma pessoa durante toda a vida escrevendo um POO clássico de um livro pode explodir sua cabeça como uma imersão acentuada a uma profundidade fora do batiscafe. Levei várias semanas para me acostumar com o pensamento de funções em vez de variáveis. Três meses depois, eu já estava admirando completamente o gráfico reativo do aplicativo - o programa pode ser visto como veias ou raízes / galhos de uma árvore. Penso que um simples interesse em línguas antigas como o sânscrito e um amor pelos elfos Quenia me ajudaram. Soprar as orelhas enquanto aperta o nariz é uma habilidade básica de um mergulhador. Os programadores clássicos bem-sucedidos de POO precisarão remover a poeira de suas habilidades imersivas de conhecimento. Nada pode ajudar os funcionalistas experientes, mas talvez eles nos ajudem a superar as formas existentes e as descrições de sinalização.

Nomes desconhecidos


Na filosofia, a mônada é chamada de partícula básica do universo - uma partícula de Deus, um conceito de nível bastante baixo. Nas especificações da terra da fantasia e no entendimento geral do FRP, uma mônada é algo de nível superior que contém um functor. A Wikipedia possui duas definições de functores nos contextos geral e OCaml. No contexto de alak, o functor básico de partículas é uma função que contém dados e, quando alterados, as funções / functors relacionados são atualizados. Tudo é como nas tabelas do Excel.



No bacon.js, isso é chamado de " atualizações atômicas " , o RxJs não.

No alak, o código pode ficar assim:

import A from 'alak' //    -    alak const userId = A.flow(); //         const followers = A.flow(); const profile = A.flow(); const tweets = A.flow(); //  userId -> profile  getProfile const getProfile = id => api.getProfile(id).then(profile); userId.up(getProfile); //   userId.up(id => { api.getFollowers(id).then(followers) api.getTweets(id).then(tweets); }); 

Executar em codesandbox
Alterar userId causará uma mudança reativa em seguidores , perfil e tweets .

Tudo para começar


Todo uso do functor Alak é baseado na capacidade de pensar em fluxos, como em Go, mas ao ler de um canal, todo o sal na construção de um gráfico com várias conexões / arestas, os ouvintes de um fluxo não diminuem.

Mesmo no angular.js, isso era suficiente para resolver lindamente o estado além da complexidade e complexidade. A cruz no angular2 para mim foi a imposição de RxJS com reatividade duvidosa. Vendo o ReduX, tive a sensação de dois passos para a implementação do PureMVC .

Neste post, eu, como muitos palestrantes modernos, exorto você a abandonar o pensamento processual, a carga dos padrões de POO e começar a avançar em direção ao código humano / literário. Alak hoje é muito bom em descrever declarativamente o gráfico reativo da pilha.

Consideramos a reatividade da visualização (mecanismos de modelo jsx / svelte / html) como garantida.
- Então, por que não temos a mesma reatividade nas lojas?

Source: https://habr.com/ru/post/pt467531/


All Articles