Builder Classes Simplificado

O padrão Builder utiliza no mínimo 2 classes: 1 classe para instância a ser construída e 1 classe para a instância construtora.

Nesse artigo irei utilizar um Builder simplificado, que irá utilizar a mesma classe tanto para construir como para representar a instância final.

Continue →

Como Transformar uma Instância de Classe em Instância de Interface

E se a linguagem Object Pascal nos permitisse codificar uma instância de classe que se auto destrói quando não mais precisamos dela?

É possível transformar uma instância de classe para se comportar como uma instância de interface?

Continue →

Interfaces e Casting

Seria um anti-padrão verificar se um objeto implementa determinada(s) interface(s)? Seria essa prática considerada o mesmo que casting?

Continue →

Como Trabalhar com Libraries sem Pacotes

Como seria trabalhar em um projeto que utiliza libraries que não possuem pacotes? Se cada desenvolvedor tiver cópias das libraries em paths diferentes, as configurações do projeto não devem utilizar paths pré-determinados.

Continue →

Quem é o Responsável por Liberar os Objetos?

Você consideraria um bom design para seu projeto, ter métodos ou funções que criam objetos que serão liberados em outro local, por outro objeto ou função?

Continue →

Free Pascal Macros

Uma linguagem simples e com um design elegante como Object Pascal não necessitaria de suporte a macros como existem em C/C++. No entanto, Free Pascal as tem. Devemos utilizá-las?

Continue →

fpWeb: Verificando Vazamentos de Memória

A linguagem Object Pascal, assim como C ou C++, não possui Garbage Collector para liberar os objetos e recursos da memória automaticamente. Pode ser difícil ter 100% de certeza que todos os objetos estão sendo liberados (manualmente) pelo código. Mas, se algum objeto não for liberado, ocorrerá um vazamento de memória.

Continue →

Construindo uma Aplicação Básica com fpWeb

As vezes, tudo que precisamos é uma aplicação “Alô Mundo”.

Continue →

Desenvolvimento Web com fpWeb Framework

Durante anos, o desenvolvimento Web no Delphi e Lazarus sempre seguiram o antigo padrão Web Broker. Felizmente, estamos vivendo uma nova fase no ambiente Object Pascal.

Continue →

Encapsulamento

O Encapsulamento é um dos pilares da Orientação a Objetos. Mas você sabe o que realmente significa esse conceito?

Continue →

Classes Amigas

Classes Amigas tem acesso ao estado (privado) de seus objetos. Apesar dessa prática ser entendida por muitos desenvolvedores como uma quebra do encapsulamento, na verdade ela pode até aprimorá-lo.

Continue →

A Declaração WITH-DO Perfeita

A utilização do WITH-DO pode deixar o código mais simples de ler, pois haverá menos declarações, atribuições e inicializações de variáveis. No entanto, a sintaxe atual não é perfeita. Dependendo do seu uso, o benefício pode ser o inverso.

Continue →

A função Supports pode ser traiçoeira

Quando você se acostuma a utilizar somente instancias de interfaces, pode ser difícil entender alguns erros em tempo de execução, utilizando instâncias de classes com suporte a interfaces.

Continue →

Assertions é uma boa prática

Assertions auxiliam o programador no desenvolvimento e depuração do código, sendo a primeira linha de defesa contra bugs.

Continue →

Construtores Virtuais

A linguagem Object Pascal possui uma feature que não existe em nenhuma outra linguagem mainstream do mercado.

Continue →