James Package


James é um pacote de Classes e Interfaces para projetos Orientados a Objetos.

Unsplash image

Eu tenho um diretório com código-fonte que é utilizado por quase todos os meus projetos, particulares ou não.

Apenas 1 diretório com quase 100 arquivos.

São fontes para trabalhar com stream, XML, arquivos, HTTP, WebServices, etc.

Não há pacotes ou subprojetos. Apenas arquivos que são compartilhados por vários projetos.

Como todo desenvolvedor Pascal faz, basta ter um diretório, adicionar o path no projeto e começar a usar os fontes. Simples.

Esse código-fonte foi sendo construído e modificando por vários anos. Alguns fontes são bem novos, outros bem antigos.

Mesmo que tudo esteja funcionando, essa “organização” me tira o sono.

Faz tempo que eu quero organizar esse código-fonte. Fazer uma limpeza. Atualizar. Criar pacotes lógicos.

Então pensei: Por quê não criar um projeto Open Source?

Bem, é o que estou fazendo agora. Esse é meu presente de Páscoa pra você.

Criei o primeiro projeto.

Chama-se James.

Eu tenho nomeado meus projetos utilizando nomes comuns — a maioria em Inglês — já faz quase 2 anos.

É divertido.

É como se cada projeto fizesse parte de uma família.

A maioria dos meus aplicativos tem nomes femininos. Já os projetos que são ferramentas ou libs, costumam ter nomes masculinos.

Você pode fazer um fork do James aqui e contribuir.

Até agora subi poucos arquivos.

Ainda estou organizando.

Mas estou lhe avisando agora, justamente porque tem poucos arquivos para ficar fácil o entendimento do código.

Estou pretendendo criar vários outros projetos Open Source que sejam compatíveis com o Delphi na versão mais atual.

Por isso preciso da sua ajuda.

Os fontes foram compilados no dialeto do Free Pascal. Basta utilizar {$mode delphi} para compilar no dialeto do Delphi, utilizando o FPC.

Vou utilizar o dialeto Delphi para que os fontes sejam compatíveis, mas somente se houver interesse por parte da comunidade Delphi (utilize os comentários abaixo se você está interessado).

O James será a base (refatorada) de todos os meus projetos. Ele possui Classes base que é útil na maioria dos meus projetos.

Durante esse semana vou subir os fontes das Unit Tests. Já estão prontos, mas precisam ser refatorados.

Será um projeto Orientados a Objetos e 100% baseados em Interfaces.

O AWS também será atualizado para compilar na versão mais atual do FPC e, quem sabe, irá compilar no Delphi.

Quando tudo estiver organizado, será o momento de iniciarmos um novo Framework Web 100% Orientado a Objetos para FPC e Delphi.

Você está comigo?

Até logo.

Posts Relacionados

  • Memória Segura Utilizando Instâncias de Interfaces

  • Classes Mutáveis vs Objetos Imutáveis

  • Implementando Interfaces Utilizando Diferente Assinaturas de Métodos

  • Usando Paths ao invés de Diretivas de Compilação

  • Trabalhando com Exceções em Requisições HTTP

  • Tipo object Continua Vivo

  • Array de Objetos

  • Variáveis Locais Deveriam ter Nomes Curtos

  • Como Dividir e Organizar o Código em Formulários com Muitos Widgets

  • Pascal Deveria ser Modernizado?