ChatOps em Ruby com Testes

Publicado por Gabriel Mazetto no dia dev

No mês de setembro estivemos na RubyConf Brasil 2015, e um dos assuntos que atraiu a atenção de quem passou pela trilha de Workshops 3 foi o nosso processo de desenvolvimento e entrega de software: o deploy via chat.

Na Resultados Digitais usamos o (Slack) para diversas atividades: coordenar os diversos times; sincronizar e auxiliar o trabalho do time de Suporte, Customer Success e Vendas; discutir novas funcionalidades e auxiliar os membros que estão trabalhando remotamente a terem o mesmo fluxo de comunicação que o pessoal do escritório.

Através do chat também conseguimos controlar diversas funcionalidades de operação, como receber alertas de serviços, realizar deploys em staging e produção alinhados com integração contínua. Isso permite que todos os interessados saibam o que está acontecendo de forma transparente e efetiva.

Usando testes de contrato e colaboração

Publicado por Lucas André de Alencar no dia dev

Durante a vida longa de uma suite de testes, alguns problemas comuns podem começar a surgir e atrapalhar o processo de desenvolvimento do software. Por exemplo, testes que levam uma eternidade para serem executados e o surgimento de diversos falsos positivos (exemplos de testes que falham, porém a funcionalidade testada está funcionando corretamente). Boa parte desses problemas é decorrente do uso excessivo de testes integrados, onde toda a stack da aplicação é executada para testar uma parte pequena do sistema. Essa stack poderia muito bem ser simulada utilizando mocks/stubs.

Estudando sobre tipos de testes e as fronteiras de comunicação entre objetos, me deparei com os testes de contrato e de colaboração. A princípio, eles podem parecer muito simples, porém podem proporcionar um maior conforto ao trabalhar com mocks/stubs em seus exemplos de teste.

40 boas práticas de Ruby - Parte 1

Publicado por Guilherme Matsumoto no dia dev

Nesta sequência de posts selecionei e compilei algumas práticas de Ruby que aprendi na Resultados Digitais. Elas são resultado de um ano e meio de experiência trabalhando em um projeto de Business Intelligence e Big Data, o Marketing BI.

Acredito que o desenvolvimento dessa funcionalidade teria sido mais eficaz (rápido e de maior qualidade) se eu tivesse seguido essas dicas desde o início.

São 40 dicas. Para o post não ficar muito longo, separei a lista em três partes.

Esta é a primeira parte, onde sou mais foco para otimização de testes (specs) e chamadas ao banco (queries).

Na segunda parte, falo sobre tratamento e consistência dos dados (banco). Dicas e truques ao lidar com arquivos de importação e exportação (CSV).

Evitando condicionais com polimorfismo

Publicado por Thiago D. Chiarato no dia dev

Há algumas semanas tive que atualizar uma funcionalidade no RD Station e criar um novo comportamento para ela. Ele deveria ser semelhante ao já existente, mas com algumas exceções.

Fizemos um brainstorm para encontrar a melhor solução sem gerar duplicação de código. Então chegamos a um consenso. Por que não herdar o comportamento de uma classe base e utilizar herança, ou melhor dizendo, STI?

Entender padrões de projeto nem sempre é fácil e saber quando utilizá-los é ainda mais dificil. Por esse motivo, decidi compartilhar a minha experiência na tarefa.