Simplicidade

Hoje em dia temos acesso a dezenas de linguagens com inúmeros recursos como Orientação a Objetos, Generics, Classes anônimas, paradigma Funcional, Lambdas, Paralelismo…

Mas nós já dominamos o básico antes de começar a usar tais features?

Continue →

Desenvolvimento Profissional

Como você controla o desenvolvimento dos seus projetos?

Eu quero dizer, os requisitos, fontes, tickets, releases, documentação… ou seja, todo os artefatos do software.

Eu utilizo Git, Tickets, Wikis e GitLab para o controle de todos os meus projetos privados.

Continue →

Objetos Agregados

Objetos Agregados é uma feature da linguagem Object Pascal. Ela nos permite delegar uma implementação de uma Interface para outro Objeto, utilizando uma sintaxe especial.

No entanto existe um grande problema no design dessa feature que não permite o programador utilizá-la em sua plenitude. Estou falando dos terríveis vazamentos de memória.

Muitos programadores desistem de utilizar Objetos Agregados devido a esses problemas…

Bem, não mais.

Continue →

Menos é Mais

Já pensou qual seria a quantidade ideal para argumentos em um método? E a quantidade de métodos em uma Interface ou Classe? E quantas Classes você codificaria dentro de uma única unidade?

Vamos tentar obter alguns números.

Continue →

Classes Adaptadoras

Os dados sempre deverão estar encapsulados em Objetos que conversam entre si enviando mensagens uns aos outros. No entanto essas mensagens podem conter dados no formato que só o Objeto emissor conhece.

Como o Objeto receptor irá saber ler esses dados que, outrora, estavam encapsulados no Objeto emissor?

Continue →

Diga-me algo Sobre você

Quando aprendemos sobre Orientação a Objetos, anos atrás, ouvimos dizer que Objetos enviam mensagens uns aos outros. No entanto o que realmente vemos na maioria dos códigos de hoje não são verdadeiros Objetos, são apenas estrutura de dados com funções…

Esquecemos o que significa enviar uma mensagem a um Objeto?

Continue →

Pensando em Dados

Você precisa fazer um relatório financeiro num sistema que possui o código Orientado a Objetos.

Quais Classes e Objetos você precisa criar para representar os dados que serão exibidos no relatório?

Continue →

Não Culpe o Código Alheio

Você fez entrevista numa grande empresa e foi contratado como Desenvolvedor Senior.

No primeiro dia que lhe dão acesso ao código para corrigir uma pequena falha, você olha o código e pensa:

Mas que P#$@[Piiiiii] é essa?!

Continue →

Unidades Limítrofes

A maioria dos sistemas utilizam componentes ou libraries de terceiros. Seria perda de tempo codificar cada peça de código específica e necessária ao total funcionamento do sistema, já que existem ótimas opções mundo afora, que já fazem o trabalho específico que queremos implementar.

Mas é prudente utilizar tais peças de código sem nos preocuparmos sobre a manutenibilidade, dependências e encapsulamento?

Continue →