Postagens

.NET com Apache Spark

Imagem
Olá, pessoal! Este final de semana tive a honra de participar de uma live no canal DX Lab para falar um pouco sobre Apache Spark e como podemos utilizar .NET com essa ferramenta. Sim, não é apenas de Scala e Python que vive essa plataforma de processamento distribuído que é o Spark! No vídeo, comentamos um pouco dos cenários de uso onde o Spark nos auxilia, um pouco da sua arquitetura e demonstramos dois exemplos de uso: um para processamento batch (ETL) e outro para processamento de fluxo contínuo de eventos (streaming). []'s

Impressões sobre a prova SAA-C02 (AWS Solutions Architect Associate)

Há algumas semanas atrás eu passei na prova de certificação de arquiteto da AWS, a SAA-C02, e como de costume eu gostaria de relatar aqui as impressões que eu tive com a prova pra ajudar um pouco quem está se preparando para tirar este exame. Meu objetivo aqui não é fazer uma análise profunda dos tópicos e das questões, mas sim passar alguns pontos que entendo serem importantes receber um reforço e atenção durante os estudos. Estrutura da Prova Como várias provas de certificação, o exame consiste em questões do tipo múltipla escolha, a maioria delas com apenas uma alternativa correta, mas outras com mais de uma opção para selecionar. Não existe separação de seções na prova, ou seja, não existem partes da prova que você não consiga voltar quando terminar de responder todas as questões e for começar as revisões. Tópicos Relacionados Todo o material requisitado para a prova pode ser consultado neste link  https://aws.amazon.com/pt/certification/certified-solutions-architect-associate/ . D

Os 8 Princípios Reativos de uma Arquitetura Distribuída

A construção de aplicações em ambiente cloud traz alguns desafios que precisam ser endereçados para o sucesso de um produto: estado inconsistente, rede muitas vezes não confiável, quedas de serviços, tudo isso são exemplos de problemas que o desenvolvedor de hoje deve se preocupar para conseguir tirar o máximo de proveito dos benefícios das plataformas de nuvem, como elasticidade, uso eficiente de recursos, custos adaptáveis, entre outros. Esses problemas não devem ser endereçados exclusivamente nos serviços de infraestrutura já disponibilizados pelas plataformas de cloud (containers, bancos de dados, balanceadores de carga, etc.), mas também é uma preocupação que deve ser tratada na arquitetura e na codificação das aplicações. Recentemente foi publicado um guia contendo alguns princípios e padrões que definem uma arquitetura reativa e complementa o que foi descrito no Manifesto Reativo . Esse material escrito por Jonas Bonér, criador do framework Akka, traz os princípios que habilitam

Microsoft Orleans: uma introdução ao modelo de atores

Imagem
Olá, pessoal! Na semana passada eu tive a oportunidade e honra de participar de uma live no Canal .NET  onde conversamos sobre o modelo de atores e o framework Orleans. O modelo de atores permite que sejam criadas aplicações distribuídas e com o conceito de stateful, onde o estado é armazenado diretamente nos servidores de aplicação. Com o auxílio do framework Orleans, podemos trazer elasticidade e resiliência para este modelo de arquitetura.

Testes automatizados em sistemas autenticados com certificados digitais, usando Selenium e PhantomJS

Imagem
A automatização de testes é uma disciplina muito importante hoje em dia. Entre várias técnicas e ferramentas diferentes, uma das que podemos utilizar para termos um conjunto de testes funcionais que possam ser facilmente repetidos é o Selenium. O Selenium é uma ferramenta que permite que a execução de passos que uma pessoa faria em um browser web (Chrome, Edge, etc.) possa ser programada. Com isso, toda vez que for necessária a validação de uma nova versão de sistema ou correção, este grupo de testes pode ser rodado de forma automática. Ainda falando sobre a execução do Selenium, ele trabalha criando uma instância do respectivo browser e enviando comandos para ele. Dessa forma é feita a simulação de preenchimento de caixas de texto, cliques em botões, etc. Quando um teste automatizado com Selenium é rodado, pode-se ver todo o teste acontecendo. Entretanto, há um problema nesta abordagem. Caso a sessão do usuário que está executando os testes seja bloqueada, o Selenium não consegue

Impressões sobre a prova 70-532 (Developing Microsoft Azure Solutions)

Hoje passei na prova 70-532 da Microsoft, sobre desenvolvimento na plataforma Azure. Essa prova é um dos pré-requisitos para a certificação Microsoft Certified Solutions Associate: Cloud Platform. Vou aqui passar um pouco da minha experiência com a prova, como eu me preparei e algumas dicas. Estrutura da prova Já fazia algum tempo que eu não fazia uma prova de certificação da Microsoft e o formato da prova mudou um pouco. Nesta seção aqui vou explicar como é a dinâmica da prova, que provavelmente vale para outros testes de certificação da Microsoft também. Foram 48 perguntas de vários tipos para um teste de tempo limite de 150 minutos. Essas perguntas são divididas em várias seções isoladas mas que compartilham o tempo geral. Quando eu digo isolada, quer dizer que uma vez respondidas as questões da seção, não se pode voltar nelas para se alterar. Ou seja, deve-se terminar por completo uma seção para que se possa acessar a próxima. Existem dois tipos de seção: casos de es

Princípio de substituição de Liskov

Imagem
Uma das regras que ajudam a nortear o design de objetos é o Princípio de Substituição de Liskov. Esse preceito foi definido inicialmente por Barbara Liskov em 1987 mas ganhou maior divulgação ao compor o grupo de regras chamado SOLID exposto por Robert C. Martin no livro  Agile Software Development: Principles, Patterns, and Practices . Este princípio diz que se q(x) é uma propriedade demonstrável dos objetos x de tipo T . Então q(y) deve ser verdadeiro para objetos y de tipo S onde S é um subtipo de T . Um pouco confuso na primeira vez que se lê, mas que na prática atesta que eu posso substituir uma instância de uma classe por outra instância que seja de uma subclasse da primeira, sem que isso altere o comportamento do sistema. Vamos usar um exemplo para poder explicar melhor. Veja a listagem de código abaixo. Ela simula um sistema de cálculo de imposto para venda de veículos. A classe Carro contém um método chamado CalcularValorImposto que recebe o valor do veículo e