Uma introdução a React Hooks

Uma introdução a React Hooks

 

Na nova versão do React lançada esse mês, 16.8.0, foi lançada uma funcionalidade que ajudará na criação dos seus React Components, os Hooks. Que vem pra resolver alguns problemas que tínhamos no React e facilitar um pouco a escrita de componentes.

O que resolve ?

Primeiramente é difícil reutilizar lógica com estado em vários componentes, hoje é possível utilizar o Render Props ou High Order Components, mas isso faz com que tenha que mudar a estrutura do seu componente. Além disso, entender um componente grande pode ser difícil, um dos motivos é que temos que colocar nos Lifecycle Methods itens que tem que executar naquele momento do ciclo, porém não tem muita relação consigo, então segregar eles pelo propósito e não pelo momento que irá ser executado seria melhor.

Como resolve ?

Primeiro ele é Opt-in, ou seja, você pode começar a utilizá-lo gradualmente na sua aplicação e apenas em pontos necessários. Isso facilita também porque você pode começar a escrever seus componentes como função, e se for necessário que ele tenha estado, você não precisa mudar o jeito que está escrito e fazer uma a classe mais, pode apenas criar um Hook. Com isso consegue utilizar funcionalidade dos componentes como classe em componentes funcionais, não apenas o estado mas também acessar o Lifecycle, entre outros.

Como é na prática ?

Esse código é um exemplo para utilizar o Hook useState, nele é passado apenas um valor inicial e ele retorna uma referência a propriedade que quer e uma função que é utilizada para alterar essa mesma propriedade. O código fica bem mais sucinto e fácil de entender.

 

 

 

Nesse outro exemplo podemos ver como os Hooks ajudam quando queremos programar uma ação que dependa do Lifecycle. No exemplo pense que temos uma chamada de API que está abstraída como uma Streamno ChatAPI e queremos que quando o componente “morra” ele cancele a requisição. Para isso utilizamos o useEffect, ele recebe dois parâmetros sendo o primeiro uma função que faz a sua lógica que tem um Side Effect no caso a chamada a API e retorna uma função que será executada no momento que o componente “morrer”. O segundo parâmetro não está no exemplo mas é simples, é um Array que contém as referências das propriedades que o efeito depende para ser executado, por exemplo, caso eu queira fazer essa chamada de API toda vez que a propriedade XPTO tenha seu valor alterado, eu passaria um Array com essa referência e então ele só executaria nesse caso, um outro exemplo se eu passar esse Array vazio, então ele será executado apenas uma vez, o que seria equivalente ao componentDidMount.

Conclusão

Além dos dois exemplos que mostrei você pode também criar hookspersonalizados e utilizar outros que o React já oferece. Os hooks acabaram de entrar em produção na versão 16.8, então acho legal usar eles gradualmente em nossas aplicações. Na minha opinião os Hooks são um grande facilitador ao escrever os componentes, sendo opt-in e muito versáteis podemos fazer vários hooks customizáveis e abstrair lógica com state para reaproveitarmos de uma maneira mais simples, além de não termos que reescrever a estrutura das nossas aplicações para usá-lo, é só usar com a necessidade.

Valeu por ler até aqui! Até a próxima!

Referência

https://reactjs.org/docs/hooks-reference.html

Campus Party Brasil 2019

Campus Party Brasil 2019

A Tegra participou da Campus Party, representada pelo nosso comercial Polis e Márcia.

O evento está sendo realizado no Expor Center em São Paulo e tem por objetivo promover a experimentação da inovação e integração dos seus participantes.

A decoração do evento é muito diversificada: super heróis, personagens nerds, cosplay

 

Vimos muitos simuladores de jogos, realidades aumentada e virtual.

                                         

CPUs tunadas e em diferentes formatos, de “Chapolim” a “Motor de carro”, impressoras 3D e prototipação de baixo custo.

 

Muitas competições foram promovidas como concurso de música e menor tempo de circuito feito por drones.

    

Muitas palestras sobre temas relacionados a música, comunidades, robótica e principalmente inovação.

Como destaque, a palestra do Charles Schweitzer, Gerente de Inovação da Leroy Merlin, sobre estratégia de inovação, foi a de maior público do evento.

A Tegra Soluções Digitais tem como propósito conduzir a evolução de negócios e pessoas através de soluções digitais únicas, e que gera grande sinergia com a Campus uma vez que inovação e criatividade fazem parte de nosso DNA.

Valeu Campus e até Brasília.

 

Os pilares da arquitetura de software na nuvem

Os pilares da arquitetura de software na nuvem

A computação em nuvem já está consolidada a alguns anos como uma excelente opção para aplicações simples ou complexas e seus recursos e serviços não param de crescer. Vide a AWS que já conta com mais de 100 serviços disponíveis em várias regiões do mundo.

Criar novas aplicações ou migrar do on-premise para a nuvem utilizando essa gama de serviços não é nada fácil. Por isso algumas práticas e estratégias devem ser seguidas para conseguir bons resultados e tirar todo o proveito dos serviços.

Quando criamos arquiteturas de sistemas, podemos fazer uma analogia com a construção de um edifício, se a fundação não for sólida, problemas estruturais podem aparecer. Ao arquitetar, não podemos negligenciar princípios básicos como os cinco pilares propostos pela AWS: confiabilidade, performance, otimização de custo, excelência operacional e segurança.

A incorporação desses pilares ajudará você a produzir sistemas estáveis e eficientes e permitir que se concentre em outros aspectos do design, como requisitos funcionais.

Confiabilidade

O pilar da Confiabilidade pode ser explicado pela capacidade de um sistema se recuperar de falhas de infraestrutura ou serviços, subir novos recursos dinamicamente para atender a picos de demanda ou se recuperar de interrupções, como configurações incorretas ou problemas de rede temporários.

As melhores práticas que podem ser aplicadas nesse pilar são:

  • Recuperação de testes: Geralmente quando executamos testes da aplicação é para provar que está tudo funcionando corretamente em um cenário específico, o teste não valida estratégias de recuperação caso ocorra algum falha em um componente do sistema. Na nuvem é possível validar como o seu sistema irá falhar e avaliar os procedimentos de recuperação em diferentes cenários ou recriar cenários em que aconteceram falhas anteriormente. É possível entender mais um pouco sobre recuperação de teste sobre a visão da Engenharia do Caos.
  • Escalar Horizontalmente: Uma arquitetura onde um grande recurso é dividido em vários recursos menores, possibilita que a alocação dinâmica seja feita em momentos de grande demanda, garantindo sempre o atendimento das requisições e eliminando o ponto único de falhas.
  • Não adivinhe a capacidade: É muito comum que em sistemas on-premise a alocação de recursos computacionais seja saturada, por conta do atendimento de altas demandas pontuais. Na nuvem, você pode monitorar a demanda e a utilização do sistema e automatizar a adição ou remoção de recursos para manter o nível ideal sem provisionamento excessivo ou insuficiente.

Performance

O pilar da Performance inclui a capacidade de utilizar os recursos de maneira eficiente e otimizada para atender os requisitos do sistema e manter essa capacidade mesmo com alteração da demanda.

As melhores práticas que podem ser aplicadas nesse pilar são:

  • Democratizar novas tecnologias: Algumas tecnologias podem ser difíceis de implementar ou pouco acessíveis devido a falta de conhecimento e complexidade de instalação. Ao invés de aprender como manter uma tecnologia, o mais fácil é apenas consumi-la como um serviço, por exemplo: bancos NoSQL e serviços de Inteligência Artificial.
  • Serviços Globais: Implemente facilmente o sistema em várias regiões em todo o mundo com apenas alguns cliques. Isso permite que você forneça menor latência e uma melhor experiência para seus clientes a um custo mínimo.
  • Serverless: Com arquiteturas Serverless não se faz necessário configurar e manter servidores para a sua aplicação e escalar recursos para altas demandas. Isso remove os problemas operacionais, reduz o custo da aplicação e atende globalmente os usuários.

Otimização de Custo

O pilar da Otimização de Custo pode ser resumido pela capacidade de executar aplicações pelo preço mais baixo comercialmente.

As melhores práticas que podem ser aplicadas nesse pilar são:

  • Adote um modelo de consumo: Pague apenas pelo tempo necessário dos recursos e aumente ou diminua o uso dependendo dos requisitos do negócio, sem precisar fazer previsões muito elaboradas de custo. Um exemplo são ambientes de desenvolvimento e testes que acabam sendo utilizados apenas 8 horas ao dia durante a semana. É possível pará-los quando não estão em uso e economizar até 75% do custo.
  • Não gaste dinheiro com operações: Elimine os gastos de manutenção de servidores, equipamentos de rede, resfriamento do datacenter e fornecimento de energia. Sem esses gastos e preocupações é possível focar nos clientes e projetos e não em infraestrutura de TI.
  • Análise da distribuição de custos: É possível identificar o uso e o custo de cada sistema que está rodando na nuvem de forma transparente. Isso ajuda a medir o retorno do investimento (ROI) e oferece uma oportunidade de otimizar seus recursos e reduzir custos.

Excelência Operacional

O pilar da Excelência Operacional é a capacidade de executar e monitorar sistemas para diminuir custos e melhorar continuamente os processos de otimização e suporte.

As melhores práticas que podem ser aplicadas nesse pilar são:

  • Infraestrutura como código: Da mesma forma que o código é utilizado para construir uma aplicação, por ser utilizado também para construir e manter a infraestrutura de todo o seu ambiente na nuvem. Você pode utilizar scripts para automatizar procedimentos operacionais que podem ser disparados automaticamente, limitando erros humanos.
  • Alterações frequentes, pequenas e reversíveis: Projete a utilização dos recursos para permitir que os componentes sejam atualizados frequentemente. Faça pequenas alterações incrementais que possam ser revertidas em caso de falha.
  • Antecipe falhas: Realize testes para identificar potenciais falhas e monitore para aprender e melhorar o processo. Crie cenários onde os procedimentos de respostas sejam acionados para garantir que sejam eficazes e que as equipes conheçam a sua execução.

Segurança

O pilar Segurança se resume pela capacidade de proteger informações e sistemas, ao mesmo tempo em que agrega valor aos negócios por meio de avaliações de risco e estratégias de mitigação.

As melhores práticas que podem ser aplicadas nesse pilar são:

  • Rastreabilidade: Monitore, alerte e analise as transações do seu ambiente em tempo real. Utilize logs e métricas de integração com sistemas para responder e agir automaticamente.
  • Proteja os dados: Utilize mecanismos, como criptografia ponta a ponta, tokens e controle de acesso, quando apropriado.
  • Afaste as pessoas dos dados: Crie mecanismos e análise ou elimine a necessidade de acesso direto ou processamento manual de dados. Isso reduz o risco de perda ou modificação e erros humanos ao manusear dados confidenciais.

Conclusão

Seguir as práticas dos cinco pilares da arquitetura em nuvem para projetar e operar suas aplicações, fará com que elas sejam seguras, confiáveis e eficientes economicamente. Você estará aproveitando todas as vantagens que a nuvem tem a oferecer e poderá focar seus esforços nos clientes e requisitos funcionais.

Samuel Pisa

Samuel Pisa

Desenvolvedor de Software na Tegra Soluções Digitais

Sobre deixar seu melhor por onde passar — O caso da cozinha

Sobre deixar seu melhor por onde passar — O caso da cozinha

Em minha rotina de trabalho, costumo almoçar quase todos os dias na cozinha da empresa. Além de ganhar tempo, me distraio e converso com meus colegas de trabalho.

Em uma dessas conversas, papo vai e papo vem, levantei da mesa para lavar minha louça. Nesse momento, um dos meus colegas pediu para lavar os talheres dele. E pronto! Foi o início da brincadeira, onde todos foram deixando seus talheres para eu lavar. Em meio as risadas, não hesitei em falar: “Eu não vou lavar, não! Cada um leva o seu.” A brincadeira continuou enquanto lavava os talheres de todos.

Poderia ter sido mais uma brincadeira típica do nosso cotidiano extrovertido, se não fosse uma história contada por outro colega, pertinente ao ocorrido da louça e que muito me chamou a atenção. Guardei a “história do escoteiro” como costumo chamá-la, como nota mental e venho digerindo-a ao longo dos dias.


História do escoteiro

Resumidamente, a história conta que uma das regras de escoteiro é deixar o lugar melhor que encontrou, no caso da cozinha, deixá-la mais limpa. Ou seja, sempre buscar fazer um pouco melhor em todos os lugares que passar, coisas que fazer.

A partir de então, comecei a observar nos grupos que convivo e lugares que frequento o comportamento das pessoas, inclusive o meu. A conclusão que cheguei é que realmente, na maioria das vezes, a história do escoteiro é apenas história.

Em pequenas coisas, como guardar a bandeja no shopping após comer aquele lanche, limpar a mesa após almoçar, pegar papel caído no chão mesmo que outra pessoa tenha jogado. Foram nesses detalhes que percebi que as pessoas não se preocupam tanto (claro que isso não é regra) em fazer o melhor por onde passam.

A história contada pelo meu colega me fez refletir como posso fazer meu melhor todos os dias, seja em projetos do trabalho, relacionamento, amizades. Procurando sempre pensar que são os detalhes que, no final, fazem a diferença, embora muitas vezes imperceptíveis.

Moral do caso da cozinha é que sempre devemos nos colocar no lugar do próximo. Essa frase, embora soe tão bonita, é difícil de se praticar e acredito que a melhor maneira é começar pelas coisas simples. Então por que não deixarmos a cozinha mais limpa do que encontramos?

Meta Smart

Meta Smart

Todos nós temos objetivos, tanto no campo pessoal quanto no profissional, mas para que esses objetivos se tornem concretos precisamos de metas! 

Hoje vou falar sobre uma ferramenta que irá ajudá-lo a conseguir criar um planejamento baseado em estimativas reais, essa ferramenta se chama SMART e com ela, você será capaz de criar metas inteligentes, especificas, mensuráveis e alcançáveis. Então vamos tirar suas metas do papel e colocar em prática utilizando a ferramenta smart 

A palavra smart vem do inglês e significa inteligente, cada letra significa uma etapa no processo de criação da meta   

S –  Specifc (Especifico)  

M – Mensurable (Mensurável)  

A –  Achievable (Alcançável)  

R –  Relevant (Relevante)  

T – Time (Tempo)  

Específico  

A meta precisa ser bem especificada, não pode abrir margem para interpretações erradas, ela deve representar exatamente o que está buscando.  

Mensurável  

É o que tem que ser feito em termos quantitativos:  

Quanto mede?  

Quanto custa?   

Quanto pesa?      

Tudo que pode ser medido pode ser alcançável, esse item é responsável em nos ajudar no acompanhamento de nossa evolução com base em dados numéricos.  

Alcançável  

Atingir resultado é o que todos queremos, mas precisamos criar metas que condizem com nossa realidade.    

Relevante  

As metas precisam ser relevantes, precisam impactar positivamente, seja no profissional ou na vida pessoal.  

Tempo  

Quando?  

Definir data é importante, afinal é isso que queremos não é mesmo? sem uma data definida, certamente a meta ficará para um segundo plano, procrastinação em ação e ficaremos presos a encontrar um momento certo, mas a verdade é que não existe um momento certo para começar.  

Exemplo  

Definindo o objetivo: Comprar uma casa  

Após definido o objetivo, o próximo passo é aplicar a ferramenta smart, seguindo com o primeiro item “Especifico” precisamos detalhar melhor como vai ser essa casa, algumas das perguntas que poderiam ser feitas aqui são, a casa vai ter quantos quartos, quantos banheiros?, vai ter sala de estar?, vai ter garagem? Com quantas vagas? vai ter alguma área de lazer ou sala de jogos? a casa vai estar localizada em um determinado bairro de determinada cidade?, qual a cor dessa casa?, a ideia aqui é detalhar o máximo possível.  

No segundo passo, para o item “Mensurável”, para este objetivo estamos falando de valor financeiro, então quanto dinheiro precisamos ter para comprar este imóvel?   

Partindo para o terceiro item, “Alcançável”, depois de especificar e mensurar o valor que vamos precisar ter para comprar o imóvel, precisamos avaliar se está no nosso alcance e para isso podemos olhar para nossa situação atual e perguntar, temos condições de comprar este imóvel? E se não tiver todo o dinheiro disponível, temos por exemplo 80%? e os outros 20%? vamos precisar fazer um empréstimo bancário, mas e depois? Será que vamos conseguir cobrir esse empréstimo? essas são algumas situações que nós poderíamos nos questionar em relação ao item alcançável.  

Para o próximo item “Relevante”, precisamos encontrar algo que nos de força para lutar pelo nosso objetivo, o nosso combustível, é daqui que vamos encontrar a motivação para continuar, podemos pensar o seguinte:  

Oque nos motiva comprar este imóvel? seria para ter uma vida melhor, ou dar uma vida melhor para nossa família? Ou talvez realizar um sonho de ter uma casa própria e sair do aluguel?   

 Para o último e não menos importante item da meta smart, temos que definir uma data, dia mês e hora para o acontecimento, que dia vamos estar com as chaves em mãos para entrar nesta nova casa?  

Muitas vezes metas podem ser simplesmente uma mudança de hábito, uma atividade física até uma meta organizacional, é importante criar um planejamento, definir uma data para conclusão e utilizar métricas para acompanhamento, isso é a meta smart, por hoje é isso, espero que tenham gostado, até mais!