Refatorando, Redux-thunk para Redux-saga (Projeto React)

Refatorando, Redux-thunk para Redux-saga (Projeto React)
Aplicação SPA desenvolvida para vaga de emprego usando a API GitHub - No qual a vaga eu conquistei :D

Refatorando, Redux-thunk para Redux-saga (Projeto React)

Aplicação SPA desenvolvida para vaga de emprego usando a API GitHub - No qual a vaga eu conquistei :D

Refatorando, Redux-thunk para Redux-saga (Projeto React)
Aplicação SPA desenvolvida para vaga de emprego usando a API GitHub - No qual a vaga eu conquistei :D

Motivação

Uma breve historinha, esta aplicação foi um teste para uma vaga de emprego como desenvolvedor front-end em uma empresa sediada aqui em minha cidade. Me foi solicitado fazer uma aplicação web que utiliza-se ReactJs e a API do GitHub com navegação de uma pagina pelo menos.

Então mãos a obra, após breve leitura nos Docs da API do GitHub comecei a implementar. Inicialmente para os trabalhos assincronos na aplicação utilizei o Redux-thunk, pois já tinha conhecimento dele.

 

Redux-thunk

Com o esta "Lib" que é um middleware do Redux, ou seja, basicamente atua ali intermediando as Actions e os Reducers do Redux.

Ele te facilita o controle do retorna das actions apenas na hora em que elas devem ocorrer, como para esta aplicação nas chamadas à API, onde o retorno da Action para Reducer só deve ocorrer após ter coletado as informações do GitHub. 

E não menos importante, uma funcionalidade que utilizei nesta aplicação que foi a de pegar a localização atual do usuário, dentre outras que você poderá ver no código.

Porque Redux-saga?

Após começar a trabalhar na empresa, vi que eles usavam o Redux-saga para tratar a lógica de requisições assincronas. Então você já deve imaginar, para começar a praticar meus estudos nesta  Lib, resolvi refatorar esta aplicação para usar-lá e aprender.

As primeiras impressões foram, que ele te dá mais organização e controle de toda a lógica de negócios da aplicação, retirando tudo que ficava nas Actions e jogando para os Sagas.

Deixando o Redux ser apenas Redux :D, ou seja, actions fazendo o que elas devem fazer, e reducers fazendo o que eles devem fazer. E o trabalho pesado com o Sagas.

Implementação

Irei deixar aqui o Pull Request (PR) desta refatoração para que você possa estudar e ver as alteações do código.

https://github.com/elfiservice/QGitHub-User-App/pull/3

Fiz por arquivo de Action, e ai fui criando o Sagas de cada um.

Para entendimento do código ter conhecimento:

  • React
  • React-redux
  • Funções "Generators"
  • Promises

Conclusão

Concerteza foi de grande aprendizagem fazer essa refatoração, pois hoje consigo ter um bom overview de comparação e entendimento de cada abordagem.

Eu como gosto de um código bem organizado e de fácil manutenção, certamente optarei pelo Redux-saga nas próximas aplicações, principalmente para uma aplicação que irá escalar.

Porém se não seguir as boas práticas de implementação do Redux, usando as Actions e Reducers da forma que devem ser usadas, pode-se deixar a aplicação um pouco confusa e de difícil manutenção.

Testar o App Aqui

 

  • Compartilhe esse post
  • Compartilhar no Facebook00
  • Compartilhar no Google Plus00
  • Compartilhar no Twitter

Olá, deixe seu comentário para Refatorando, Redux-thunk para Redux-saga (Projeto React)

Enviando Comentário Fechar :/

Converse Comigo