Fluxo de Desenvolvimento em Aplicações React

No mundo JS, há muitas possibilidades de criar um boilerplate, bem como muitos boilerplates disponíveis (por exemplo: create-react-app). Aqui vou falar sobre algumas ferramentas auxiliares para desenvolvimento e como combinar então para criar um fluxo consistente de desenvolvimento que queremos assegurar:

  • padrão de código e arquivo
  • testes automatizados

Continue reading Fluxo de Desenvolvimento em Aplicações React

React: Realizando State Update de modo a evitar renderizações desnecessárias

Evitar renderização inútil é um tópico realmente importante para melhorar o desempenho de aplicações React, podendo ser, inclusive, um requisito para uma experiência de usuário satisfatória.

Há alguns anos eu estava criando um aplicativo web de pesquisa que possuía uma tela com N campos de entrada (sob demanda). Eu estava começando com React e, à primeira vista, pareceu-me uma boa estratégia manter o array de valores de entrada no estado do componente pai e apenas passar o callback de mudança de estado e o índice para seus filhos. Algo parecido com:

Mas essa abordagem revelou um desastre com N grande, cada dígito tem utilizava muita renderização gerando atraso. A fim de antecipar e evitar esse tipo de desastre, escrevi esse artigo.

Continue reading React: Realizando State Update de modo a evitar renderizações desnecessárias

Como fizemos um dashboard do RD Station em 24 horas

Todo ano na Social Miner acontece uma hackathon interna na qual juntamos Miners de diversas áreas para construir uma solução tecnológica pra atender uma necessidade do negócio.

Pensamos em diversas dores tanto dos nossos clientes externos (negócios online que usam nossa plataforma e consumidores finais que interagem com nossos canais) como também de clientes internos (times, squads e parceiros da empresa).

Continue reading Como fizemos um dashboard do RD Station em 24 horas

Otimizando Apache Spark com S3 (e outras dicas)

Há alguns meses tivemos que reestruturar nossa arquitetura de big data aqui na Social Miner para fins de escalabilidade. Passado alguns meses após a implementação da arquitetura, resolvi escrever esse post listando aqui 7 pontos de otimização que acho vitais para quem esteja estruturando uma arquitetura de big data com Apache Spark e S3, partindo de coisas mais simples e triviais, chegando até tópicos não tão difundidos. Então bora lá? 🙂

Continue reading Otimizando Apache Spark com S3 (e outras dicas)

Crawleando a web com Scrapy

Olá jovens Padawans, eu sou o Zilla e venho lhes apresentar o Scrapy, um framework em Python para criação de crawlers para páginas web, mais conhecidos como Spiders.

Introdução ao Scrapy

Para os estudantes da academia Jedi que ainda não sabem o que é um crawler, aqui vai uma breve explicação: Um crawler, também conhecido como Spider ou Bot, é um software que realiza varreduras em websites com o objetivo de coletar informações relevantes. Eles são capazes de capturar qualquer informação escrita no website.

Pense num e-commerce, por exemplo, um crawler poderia capturar informações sobre um produto como, nome e valor. Ele também seria capaz de seguir os links da página e ir navegando site adentro, capturando ainda mais informações.

Continue reading Crawleando a web com Scrapy

Confiabilidade, Segurança e Engenharia Social no Ecommerce

Nos dias de hoje, cada vez mais o comércio eletrônico tem inovado com uma gama de serviços e produtos diferenciados.

Segundo os dados da ABComm (Associação Brasileira de Comércio Eletrônico), em 2018 o crescimento foi de 15%. Isso representa um aumento de 3% em relação a 2017.

Conforme a tecnologia evolui, o ramo vem junto com novas maneiras de efetuar as compras e principalmente com novos meios de pagamento e é nesse momento que devemos tomar cuidados especiais devido a um quesito chave: segurança.

Continue reading Confiabilidade, Segurança e Engenharia Social no Ecommerce

“Infrastructure as Code” com Terraform

Olá a todos, meu nome é Hugo Cesar, sou engenheiro na Social Miner atuando como SysAdmin com foco em DevOps. Hoje vamos iniciar a construção de uma infraestrutura automatizada e estruturada dentro da AWS utilizando Terraform.

Terraform é uma “ferramenta de orquestração” open source desenvolvida pela HashiCorp, na qual você pode definir uma infraestrutura como código para aumentar a produtividade e transparência.

Projetada para provisionar toda network, serviços e servidores na maioria das clouds públicas, através de declarativos que podem ser compartilhados entre os membros da equipe, tratados como código, editados, revisados e versionados. Também pode-se ter um histórico completo das versões da sua infraestrutura, que por sua vez, pode ser compartilhada e reutilizada.

Continue reading “Infrastructure as Code” com Terraform

Extract, Transform, Load (ETL): O que é?

É fato que as informações produzidas por uma empresa, mesmo que uma empresa de TI, estão muito além de um banco dados estruturado e a junção dessas informações de fontes diversas constitui ferramenta auxiliar na tomada de decisões. Um dos processos para unir as informações em uma única fonte, de forma coerente, é o chamado ETL (do inglês Extract, Transform and Load) cujas etapas veremos a seguir.

O ETL geralmente é associado à alimentação de Data Warehouses, mas ele não se limita a isso e deve ser usado como ferramenta de suporte a qualquer extração de dados que necessite algo mais que mover bytes de um canto para outro. Mas vamos às etapas deste processo:

Continue reading Extract, Transform, Load (ETL): O que é?

Vue.JS: Breve Introdução

O Vue.JS é um framework que, pela simplicidade, vem ganhando popularidade e está em constante crescimento desde sua criação. Porém, foi apenas ao final do ano passado (2017) que o conheci e passei a acompanhar essa poderosa ferramenta.

Para começar, vou partir da premissa de que você é um novato no mundo dos frameworks front end, logo, alguns dos tópicos poderão parecer irrelevantes aos olhos de leitores mais experientes. Dito isso, vamos começar!

Continue reading Vue.JS: Breve Introdução

Ritmo Vertical na Tipografia

Por que o ritmo vertical é uma prática importante para a tipografia?

Se você já pesquisou um pouco sobre tipografia na web, com certeza já ouviu falar em ritmo vertical (ou espaçamento vertical). Quem tem experiência com tipografia com certeza sabe da importância da propriedade line-height no CSS e por isso sabe do impacto que ela tem em um parágrafo, frase ou até mesmo um simples botão.

O que é ritmo vertical?

Continue reading Ritmo Vertical na Tipografia