Exceptions: Evite o try-catch

Nesse artigo vou falar para evitar o uso do try-catch e try-catch-finally. No artigo anterior sobre try-catch-finally, comentei sobre o tratamento de exceptions usando o try-catch ao invés de try-catch-finally. Pense duas vezes antes de adicionar um bloco de catch para capturar o erro. Na dúvida, evite o uso do try-catch. O que é uma…

0

Exceptions: Não use try-catch-finally

Essa semana estava revendo um trecho do ARDA (https://github.com/DXBrazil/Arda) e os primeiros issues e pull requests estavam relacionados com o tratamento de exceção. Por coincidência, nessa mesma semana, fui perguntado sobre as melhores práticas de Exceptions sobre como e quando usar. Comecei olhando a documentação do C# sobre o try-catch-finally. Try-catch-finally https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/try-catch-finally Nesse artigo, há…

0

Bots, Devops e Docker

Participamos de um Hackathon de Bots. Whitepaper: Bots, DevOps e Docker – Lições aprendidas em 48 horas [Download do Whitepaper] Já faz quase um ano que nos juntamos para trabalhar em um projeto de Bot. Nosso time era composto por pessoas com diferentes especialidades e, por isso, decidimos empregar as técnicas de DevOps para garantir…

0

Falha Nossa no Git (TOP 5)

Fiz aqui um TOP 5 das coisas mais estranhas que notei no nosso repositório do ARDA. Seguem os links dos repositórios: Antigo: https://github.com/DXBrazil/Arda_old Recente: https://github.com/DXBrazil/Arda Bons desenvolvedores mantém o histórico do GIT linear e conciso usando um workflow definido (ex: gitflow), squash commit, rebase, etc. Nosso time é bom, mas ignoramos essas práticas e mantivemos todos…

2

Adaptando o time ao Git

No começo do projeto, nosso time do ARDA tinha 4 desenvolvedores ativos. O primeiro passo foi criar um repositório Git para começarmos a trabalhar no código. Por que criar um repositório de código? Essa é uma das perguntas que não sei responder – como é que alguém consegue trabalhar sem controle de versão? Eu sei…

0

Todo time tem um estagiário

Durante uma apresentação sobre Microserviços, o meu amigo Fabricio Sanchez apresentava o ambiente de desenvolvimento do ARDA (https://github.com/dxbrazil/arda). Eu não estava nesse evento, mas soube que a demonstração falhou no momento da integração entre os microserviços. Naquele naquele dia, “por coincidência”, nosso estagiário fez um checkin de código. Não é uma afirmação, mas suspeito que…

0

7 Motivos para não usar o Entity Framework

Vamos falar sobre 7 motivos para não usar o Entity Framework (EF) e 1 ótimo motivo para usá-lo imediatamente! Nos artigos anteriores, fui levantando alguns problemas que encontramos ao longo do nosso projeto ARDA. Entity Framework: Code-First, Database-Never Entity Framework: Broken LINQ Entity Framework: A vida do DBA Antes de comentar sobre o bom motivo…

0

Entity Framework: A vida do DBA

Vamos falar sobre o Entity Framework do ponto de vista do DBA. Veja os demais artigos: Entity Framework: Code-First, Database-Never Entity Framework: Broken LINQ 7 Motivos para não usar o Entity Framework Iniciei o SQL Profiler no projeto do ARDA (https://github.com/DXBrazil/Arda) para coletar as queries que estão rodando no banco de dados. Rapidamente encontrei algumas…

8

Entity Framework: Broken LINQ

Não tenho nada contra o LINQ. Gosto da funcionalidade e acho sua sintaxe bastante expressiva: Se quisesse evitar duplicação de usuários, bastaria adicionar uma chamada ao Distinct. Por outro lado, a implementação procedural equivalente já não seria tão elegante. Existem vários exemplos que mostram agrupamento e agregação: LINQ query examples https://msdn.microsoft.com/en-us/library/gg509017.aspx Embora o LINQ seja…

2

Entity Framework: Code-First, Database-Never

Conheço desenvolvedores que gostam do Entity Framework (EF), mas nunca vi um DBA que fale bem dele. Para explicar parte desse fenômeno, quero dar um exemplo baseado no projeto do ARDA (https://github.com/dxbrazil/arda). [UPDATE 12/07] Obrigado ao André Baltieri por gravar um vídeo com uma explicação tão didática. Depois de assistir ao vídeo, já estou entrando em contato…

14

ASP.NET x NodeJS e MongoDB

Nosso time está acostumado com a stack de tecnologia WINS (Windows, IIS, .NET, SQL Server). Começamos o projeto ARDA (https://github.com/dxbrazil/arda) pensando no stack MEAN: MongoDB, Express.js, Angular, NodeJS. Queríamos colocar o Nginx na frente dos servidores Node, acessar um banco Mongo, guardar o código no GitHub, fazer o build no Jenkins e o deployment em…

0

Criando a Arquitetura do ARDA

ARDA foi nosso projeto interno de 2016. Gastei inúmeras horas discutindo a arquitetura e as tecnologias envolvidas, mas o aprendizado aconteceu somente quando mergulhei na codificação. O código-fonte está aqui: https://github.com/dxbrazIl/arda Antes de começar a analisar o código, é importante dar um pouco mais de contexto. Afinal, eu nem disse para que serve o Arda!…

0

GitHub e Open Source

O futuro da Microsoft é Open Source. Há 3 anos atrás não me imaginava falando isso. Hoje não tenho dúvidas de que a Microsoft abraçou o Open Source como parte fundamental de seu negócio. Uma das manifestações mais claras é a forma que os funcionários são encorajados a participar no GitHub. GitHub Embora estivesse sumido…

0

Cloud, Cloud, Cloud

Recentemente participei de duas discussões técnicas com clientes, que me fizeram as seguintes perguntas: Por que Cloud é mais segura do que meu data center? Não sei se o custo da Cloud é tão favorável. Por que migrar? Estive trabalhando com o Microsoft Azure há quase 2 anos e curiosamente tive muita dificuldade para responder….

2

As 9 Regras Ninjas de Performance

Esse post resume muita coisa do que já passei. Resolvi compilar uma série de regras para abordar os problemas mais comuns de performance. Essas são as “regras ninjas” para ajudar a guiar o trabalho do dia a dia e atingir bons resultados em pouco tempo.   REGRA 1: DISK – Monitore o consumo de recursos…

8

A História do Hekaton – Parte 3

Originalmente publicado no Lab27: http://www.lab27.com.br/a-histria-do-hekaton-parte-1/     Bem vindo ao último post da série Hekaton! No primeiro post da série, disse que o Hekaton é completamente diferente do DBCC PINTABLE. No segundo post, expliquei um pouco sobre as mudanças que ocorreram no Hekaton em relação ao projeto inicial. Agora quero terminar falando sobre a integração…

4

A História do Hekaton – Parte 2

Originalmente publicado no Lab27: http://www.lab27.com.br/a-histria-do-hekaton-parte-2/   No post anterior, comentei sobre as motivações que levaram à criação do Hekaton. O passo seguinte era transformar o projeto embrionário em uma implementação comercial, ou seja, incorporá-lo à família do SQL Server. Compilação de Stored Procedures: .NET ou C/C++ Se a tradução de Stored procedure é procedimento armazenado,…

0

A História do Hekaton - Parte 1

Originalmente publicado no Lab27: http://www.lab27.com.br/a-histria-do-hekaton-parte-1/   Hekaton é uma funcionalidade que faz parte do “In-Memory Database” e está disponível a partir do SQL Server 2014. Neste post quero mostrar um lado diferente do Hekaton. Vejo muita gente falando sobre a melhoria significativa de desempenho ao manter as tabelas em memória. Entretanto, o Hekaton não é…

5

TechSummit 2016–SQL Azure DB

Esse evento foi muito especial! Subi no palco para dividir a apresentação com o Nilton Pinheiro (@nilton_pinheiro). Não tenho dúvida de que o Nilton seja um dos melhores profissionais de SQL no Brasil – senão o melhor!!! Juntos no TechSummit, apresentemos a sessão sobre SQL Azure Database para falar sobre esse serviço disponível no Azure…

0

SQL Saturday #570 - São Paulo

SQL Saturday tem crescido ao longo dos anos e, dessa vez, o SQL Saturday #570 não foi diferente – a galera da comunidade estava em peso! Porém, ao contrário das outras edições que participei como convidado, dessa vez entrei como palestrante. Arrisquei um assunto bem diferente do tradicional: segurança de dados. Comecei com um título…

0