Published by Joao Morais on 06 Sep 2008

Objetos com contagem de referência

Imagine um data module, que por motivo de economia de memória é criado e destruído com a aplicação em execução. Imagine este data module sendo referenciado por mais de um formulário ao mesmo tempo. Como garantir que o data module será destruído apenas quando nenhum formulário estiver apontando para ele? Continue Reading »

Published by Joao Morais on 31 Aug 2008

Forms management tip

(portuguese)

From my point of view, one thing that is really missing for Delphi/Lazarus is a better application’s form management. Two problems: an independent public variable is used to control an instance, and the ‘please place everything within the form’ approach. The first one requires the programmer to either create the form at the start of the application and not destroy it anymore, or it requires the programmer to create the forms and keep track of object destruction insuring that no variable points to a destroyed object. The second, among other problems, requires that the first one works perfectly so that the communication between forms can work. Continue Reading »

Published by Joao Morais on 31 Aug 2008

Dica para gerenciamento de formulários

(english)

Ao meu ver, uma parte mal elaborada do Delphi/Lazarus é o gerenciamento de formulários da aplicação. Tanto o fato de usar uma variável pública independente para controlar a instância quanto a isca ‘jogue tudo no form’ trazem problemas. A primeira abordagem exige que o programador, ou crie os formulários no início da aplicação e não os destrua mais, ou exige que ele cuide para não deixar a variável apontar para um objeto destruído. A segunda abordagem, entre outros problemas, exige que a primeira funcione perfeitamente para que ocorra comunicação entre formulários. Continue Reading »

Published by Joao Morais on 23 Aug 2008

Ponteiros e alocação dinâmica

Tem um ditado que diz: Eu não sei, mas tenho o telefone de quem sabe. Trabalhar com ponteiros é muito parecido com isto, mas o ditado fica assim: Eu não sei, mas tenho o endereço de quem sabe. Continue Reading »

Published by Joao Morais on 16 Aug 2008

Decouple MVP and VCL with Interfaces.

(portuguese)

Contrary to some object oriented programming gurus, I was not much into interfaces. The first uses were under utilized, as just a memory manager assistant (interfaces in object pascal have reference counting maintained by the compiler, contrary to classes). Continue Reading »

Published by Joao Morais on 16 Aug 2008

Desacoplar MVP e VCL com Interfaces

(english)

Ao contrário de alguns astros da programação orientada a objetos, eu não era muito fã de interface. Os primeiros usos foram sub-utilizados, como mero auxiliar de gerenciamento de memória (interface em Object Pascal tem contagem de referência controlada pelo compilador, ao contrário de classes). Continue Reading »

Published by Joao Morais on 09 Aug 2008

do jmp às Interfaces - A história do acoplamento

No princípio era o jmp. E o call. E o ret. E os saltos condicionais. E com isto os heróicos programadores da época conseguiam criar laços e blocos cuja execução dependia de alguma condição ter sido satisfeita. E a máquina começou a pensar. Um label indicava ao assembler aonde determinada rotina estava começando, e o assembler transformava aquele label em um endereço de memória. Entre o label e o ret estava o que conhecemos hoje por procedure. Continue Reading »

Published by Joao Morais on 10 Feb 2008

Construindo um interpretador orientado a objetos

Outro dia precisei colocar fórmula em um dos sistemas que desenvolvo, para que o usuário tenha mais liberdade para informar como um custo deva ser calculado. É permitido que ele faça algo como 0.012 * 66 * 96 * Chapas / FormatoImpressao, aonde as variáveis apresentadas são atributos do objeto de negócio. Continue Reading »

Published by Joao Morais on 06 Feb 2008

Como remover vazamentos de memória

Ferramentas como FastMM melhoram o desempenho de aplicações que utilizam muita alocação dinâmica, e de quebra ainda relata se a aplicação está deixando vazamentos de memória.

Agora saber que a aplicação tem vazamento de memória é fácil, no entanto, dependendo do tamanho do projeto, torna-se mais difícil determinar aonde ela foi alocada. Continue Reading »

Published by Joao Morais on 30 Nov 2007

Wiki do PressObjects

Há alguns posts atrás prometi colocar alguns artigos sobre PressObjects neste blog. Depois de terminar o rascunho do primeiro artigo, notei que ele tem um foco diferente do que tem sido aplicado aqui, sem falar que o próprio projeto tem muito pouco material. Resolvi escrever tais artigos diretamente para o projeto, e para tanto dei início a um wiki que você pode conferir aqui.

Estes primeiros artigos vão para o wiki num instante, e vou deixar para o blog a missão de mandar algum recado ou publicar material que envolva ponto de vista.

Next »