Null, o erro de um bilhão de dólares

Implementada por muitas linguagens de programação, é fato absoluto que a referência nula (null, Nothing, nil, etc) causou e causa muitas dores de cabeça, tanto nos programadores quanto nos usuários. Quem nunca tomou uma NullPointerException em Java, ou uma NullReferenceException em C#? E os ponteiros nulos de C/C++ então?
O próprio criador do null, Tony Hoare, reconheceu o problema e o chamou de “erro de um bilhão de dólares”:
Continue lendo “Null, o erro de um bilhão de dólares”“I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn’t resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years”.
[PostgreSQL] Paginação no PostgreSQL, simples e rápido

Trabalhar com paginação no PostgreSQL é bastante simples e é um recurso que colabora muito com a otimização de consultas que podem retornar muitos registros. Basicamente são usadas as palavras-chave LIMIT e OFFSET.
[C#] Operações de agregação em coleções – Sum, Count, Average, etc

Diferente das operações que já vimos, uma operação de agregação (ou redução) sobre uma coleção resulta em um único valor. A API System.Linq possui vários métodos de agregação pré-prontos, como Sum, Count, LongCount, Average, Max e Min, assim como o Aggregate (mais genérico).
Obs: o método Aggregate é conhecido como reduce em outras linguagens.
[C#] Projeção de coleções – Select e SelectMany

Após aprender como filtrar dados de coleções em C#, vamos continuar explorando os operadores funcionais de System.Linq. Agora vamos aprender como efetuar a projeção de coleções.
Os métodos Select e SelectMany possibilitam que uma determinada coleção seja projetada (transformada) em uma coleção diferente, através da aplicação de uma função em cada elemento desta. Em outras linguagens e plataformas, o equivalente ao Select é o map, e o equivalente ao SelectMany é o flatMap.
[C#] Filtrando dados de coleções (Where)

Depois de aprender o que são e como funcionam as expressões lambda, vamos mostrar como manipular coleções de dados usando as operações da API de System.Linq. De início, uma das operações mais usadas em coleções: filtragem de dados.