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.

Outro projeto que irá utilizar o James, eu já criei no Github. Seu nome é Kate.

Kate é uma lib para trabalhar com certificação e assinatura digital. Essa lib irá utilizar o Projeto ACBr nos “bastidores”.

Todos esses projetos serão baseados nas premissas dos artigos que venho escrevendo aqui no blog.

Todos serão 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?

Então vamos! #ObjectPascal4Ever

Até logo.

Posts Relacionados

  • Eliminando Métodos Privados

  • Classes Aninhadas

  • API Unit: Tudo num só lugar

  • Injeção de Dependência sem XML, Atributos/Anotações ou Frameworks

  • Nomeando Classes em Libraries

  • Versionando e Organizando seus Pacotes

  • Xavier Package

  • Inter-process Communication

  • Porquê eu escolhi Delphi e então, Object Pascal

  • Redefinindo Classes