Tecnologia além do código.
Régys Borges da Silveira
Início / Acervo

Tag: Clean Code

40 resultado(s)

TDD: entenda o Desenvolvimento Guiado por Testes

Você já ouviu falar em TDD (Test-Driven Development), mas ainda tem dúvidas sobre como essa abordagem realmente funciona?

Ver resumo completo

Você já ouviu falar em TDD (Test-Driven Development), mas ainda tem dúvidas sobre como essa abordagem realmente funciona?

Neste minicurso, Landerson Gomes apresenta os fundamentos do Desenvolvimento Guiado por Testes e explica a mudança de pensamento por trás dessa prática. Mais do que simplesmente criar testes para um código pronto, o TDD coloca os testes como parte do próprio processo de construção do software. Um conteúdo direto para quem deseja compreender melhor essa abordagem e começar a aplicá-la de forma consciente no desenvolvimento de software.

· Régys Borges da Silveira
Ler artigo →

Atropos: como otimizar automaticamente a cláusula uses no Delphi

Quem trabalha há bastante tempo com Delphi provavelmente já encontrou units com cláusulas uses enormes, formadas por dezenas de dependências que ninguém sabe ao certo se ainda são necessárias. Algumas foram adicionadas automaticamente pela IDE, outras eram utilizadas por trechos de código que já não existem e muitas permanecem na seção interface mesmo sendo necessárias apenas na implementação.

Ver resumo completo

Quem trabalha há bastante tempo com Delphi provavelmente já encontrou units com cláusulas uses enormes, formadas por dezenas de dependências que ninguém sabe ao certo se ainda são necessárias. Algumas foram adicionadas automaticamente pela IDE, outras eram utilizadas por trechos de código que já não existem e muitas permanecem na seção interface mesmo sendo necessárias apenas na implementação. Embora pareça um problema meramente estético, esse acúmulo pode aumentar o acoplamento entre as units, dificultar a manutenção e ampliar desnecessariamente o impacto de cada alteração realizada no projeto.

Remover essas dependências manualmente nem sempre é simples. Excluir uma unit da cláusula uses, compilar o projeto e repetir o processo até encontrar todas as dependências desnecessárias pode consumir muito tempo, principalmente em sistemas antigos ou de grande porte. Além disso, algumas units possuem efeitos colaterais durante a inicialização da aplicação e não podem ser removidas apenas porque seus símbolos não aparecem diretamente no código. É nesse cenário que o Atropos se apresenta como uma ferramenta interessante para a comunidade Delphi.

O Atropos é um projeto open source (github.com/ViniAbreu/Atropos) criado para analisar e otimizar automaticamente as cláusulas uses de projetos Delphi. A ferramenta identifica units aparentemente não utilizadas, verifica quais dependências podem ser transferidas da seção interface para a seção implementation e modifica os arquivos de código. Depois disso, ela tenta compilar o projeto para confirmar que as alterações continuam válidas. Se a compilação falhar, os arquivos modificados são restaurados automaticamente.

· Régys Borges da Silveira
Ler artigo →

Novos Hooks de Telemetria e Isolamento Multi-Instance no Delphi Horse: Observabilidade de Ponta com Baixíssimo Overhead

Quem desenvolve APIs robustas e de alta performance no Delphi utilizando o framework Horse sabe que a velocidade e a simplicidade sempre foram os pilares do projeto. No entanto, à medida que os sistemas crescem e migram para arquiteturas de microsserviços baseadas em contêineres e Kubernetes, duas necessidades tornam-se críticas: observabilidade em tempo real (APM) e a capacidade…

Ver resumo completo

Quem desenvolve APIs robustas e de alta performance no Delphi utilizando o framework Horse sabe que a velocidade e a simplicidade sempre foram os pilares do projeto. No entanto, à medida que os sistemas crescem e migram para arquiteturas de microsserviços baseadas em contêineres e Kubernetes, duas necessidades tornam-se críticas: observabilidade em tempo real (APM) e a capacidade de rodar múltiplos servidores isolados no mesmo processo (Multi-Instance) de forma segura.

Neste artigo, vamos explorar a nova feature do ecossistema do Horse: a introdução de Lifecycle Hooks do Servidor, Hooks Nativos de Telemetria e o suporte completo a Lifecycle de Múltiplas Instâncias Isoladas.

· Régys Borges da Silveira
Ler artigo →

Delphi Horse: Simplifique suas APIs com Auto-binding e Validação de DTOs

Quem desenvolve APIs em Delphi utilizando o framework Horse sabe o quanto ele é leve, rápido e extremamente eficiente. No entanto, à medida que a aplicação cresce, começamos a nos deparar com um problema comum em nossos controllers: o excesso de código repetitivo (o famoso boilerplate) para ler payloads de requisições e validar os dados de entrada.

Ver resumo completo

Quem desenvolve APIs em Delphi utilizando o framework Horse sabe o quanto ele é leve, rápido e extremamente eficiente. No entanto, à medida que a aplicação cresce, começamos a nos deparar com um problema comum em nossos controllers: o excesso de código repetitivo (o famoso boilerplate) para ler payloads de requisições e validar os dados de entrada.

Se você se cansa de escrever dezenas de linhas checando se campos obrigatórios foram preenchidos, se e-mails são válidos ou se um valor numérico está no intervalo correto, você precisa conhecer o horse-dto.

Neste artigo, vamos entender como esse middleware automatiza o processo de desserialização e validação declarativa de dados usando atributos no Delphi.

· Régys Borges da Silveira
Ler artigo →

Horse e DEXT: Entenda as diferenças e saiba quando utilizar cada framework no Delphi

É extremamente comum encontrar desenvolvedores Delphi em fóruns, grupos de Telegram ou redes sociais fazendo perguntas como:

Ver resumo completo

É extremamente comum encontrar desenvolvedores Delphi em fóruns, grupos de Telegram ou redes sociais fazendo perguntas como:

Essas perguntas costumam partir de uma premissa equivocada: a de que o Horse e o DEXT disputam exatamente o mesmo espaço.

Na prática, eles possuem filosofias arquiteturais bastante diferentes. Embora ambos possam ser utilizados para criar APIs REST eficientes, eles foram concebidos para resolver problemas distintos. O objetivo deste artigo não é eleger um vencedor, mas esclarecer onde cada abordagem se destaca e ajudar você a escolher a ferramenta mais adequada para cada cenário.

· Régys Borges da Silveira
Ler artigo →

Novidade no Horse: Ganchos de Ciclo de Vida (Lifecycle Hooks) Integrados ao Core!

Se você desenvolve APIs robustas e de alta performance em Delphi ou Lazarus, com certeza já conhece ou utiliza o Horse. Hoje, trazemos uma novidade incrível e muito aguardada pela comunidade que acaba de ser integrada oficialmente ao Core do framework: os Lifecycle Hooks (Ganchos de Ciclo de Vida)!

Ver resumo completo

Se você desenvolve APIs robustas e de alta performance em Delphi ou Lazarus, com certeza já conhece ou utiliza o Horse. Hoje, trazemos uma novidade incrível e muito aguardada pela comunidade que acaba de ser integrada oficialmente ao Core do framework: os Lifecycle Hooks (Ganchos de Ciclo de Vida)!

Inspirado em padrões consolidados de ecossistemas web modernos (como Fastify e Express), o Horse agora oferece 5 momentos distintos no pipeline de execução de uma requisição. Isso abre portas para você plugar regras de auditoria de dados, caching inteligente, criptografia de payloads, monitoramento de latência e muito mais, mantendo sua aplicação limpa e altamente manutenível.

· Régys Borges da Silveira
Ler artigo →

Arquitetura Avançada no Delphi: Desvendando o Ciclo de Vida do Servidor e a Inicialização Estruturada (UseStartup) no Horse

No desenvolvimento de APIs modernas e microsserviços com Delphi e Lazarus, o Horse se consolidou como o framework mais querido devido à sua simplicidade, leveza e alta velocidade. No entanto, à medida que os sistemas corporativos crescem, a necessidade de organização arquitetural, controle físico sobre conexões e conformidade com nuvens (como Docker e Kubernetes) torna-se crucial.

Ver resumo completo

No desenvolvimento de APIs modernas e microsserviços com Delphi e Lazarus, o Horse se consolidou como o framework mais querido devido à sua simplicidade, leveza e alta velocidade. No entanto, à medida que os sistemas corporativos crescem, a necessidade de organização arquitetural, controle físico sobre conexões e conformidade com nuvens (como Docker e Kubernetes) torna-se crucial.

Recentemente, o ecossistema do Horse recebeu uma atualização de peso, focada justamente em infraestrutura corporativa: o suporte a Server Lifecycle Hooks (Ganchos de Ciclo de Vida do Servidor), o Graceful Shutdown (Desligamento Suave) unificado e o padrão de inicialização estruturada via UseStartup. Neste artigo, vamos explorar essas novidades e construir um exemplo didático e completo.

· Régys Borges da Silveira
Ler artigo →

Boss4D 1.0.1: gerenciamento de dependências Delphi, agora nativo, integrado e pronto para a IDE

O ecossistema Delphi sempre teve uma relação curiosa com dependências. Temos bibliotecas excelentes, frameworks maduros, componentes de todos os tipos e uma comunidade extremamente produtiva.

Ver resumo completo

O ecossistema Delphi sempre teve uma relação curiosa com dependências. Temos bibliotecas excelentes, frameworks maduros, componentes de todos os tipos e uma comunidade extremamente produtiva. Mas, por muito tempo, o fluxo de baixar, versionar, compilar, registrar e configurar pacotes continuou dependendo de uma combinação de scripts, paths manuais, instaladores variados e conhecimento tribal.

O Boss original, criado pela HashLoad, foi uma resposta importante para essa dor. Ele trouxe uma ideia simples e poderosa para o Delphi: declarar dependências em um manifesto, instalar pacotes a partir de repositórios Git e organizar tudo dentro da pasta modules. O Boss4D nasce como uma evolução dessa ideia, mas com uma decisão central: ser 100% nativo em Delphi.

Com a versão 1.0.1, o projeto chega a um marco importante. O Boss4D deixa de ser apenas uma CLI experimental e passa a se consolidar como um pequeno ecossistema de produtividade para projetos Delphi: linha de comando, GUI, integração com RAD Studio, diagnósticos, cache, workspaces, auditoria de licenças, plugins e suporte a compilação multiplataforma.

· Régys Borges da Silveira
Ler artigo →

Boss4D – O Gerenciador de Pacotes Modernizado

Se você desenvolve em Delphi, com certeza já conhece ou ouviu falar do Boss, o gerenciador de dependências que revolucionou a forma como organizamos, instalamos e compartilhamos código na nossa comunidade. Hoje, tenho o enorme prazer de apresentar o Boss4D (Boss4Delphi), uma versão do Boss modernizada, robusta, altamente testada e alinhada com as melhores práticas de Engenharia de Software modernas e…

Ver resumo completo

Se você desenvolve em Delphi, com certeza já conhece ou ouviu falar do Boss, o gerenciador de dependências que revolucionou a forma como organizamos, instalamos e compartilhamos código na nossa comunidade. Hoje, tenho o enorme prazer de apresentar o Boss4D (Boss4Delphi), uma versão do Boss modernizada, robusta, altamente testada e alinhada com as melhores práticas de Engenharia de Software modernas e totalmente feito em Delphi e aberto, regyssilveira/Boss4Delphi.

Neste artigo vamos ver o que mudou e passar por todas as novidades que o projeto traz.

· Régys Borges da Silveira
Ler artigo →

Do Acoplamento à Resiliência: A Evolução Arquitetural do Rad IA (v0.0.26 a v0.0.28)

Se você desenvolve em Delphi, sabe que integrar componentes com a IDE através da Open Tools API (OTA) sempre foi um desafio — principalmente quando o assunto é testabilidade. Manter a IDE responsiva enquanto threads em background realizam chamadas de rede assíncronas para APIs de Inteligência Artificial exige uma arquitetura blindada.

Ver resumo completo

Se você desenvolve em Delphi, sabe que integrar componentes com a IDE através da Open Tools API (OTA) sempre foi um desafio — principalmente quando o assunto é testabilidade. Manter a IDE responsiva enquanto threads em background realizam chamadas de rede assíncronas para APIs de Inteligência Artificial exige uma arquitetura blindada.

Nas últimas semanas, o Rad IA (nosso assistente de IA focado em Delphi) passou por uma transformação profunda. Saímos de um acoplamento direto com a IDE e APIs de rede para um modelo arquitetural moderno, com inversão de controle, isolamento completo em testes unitários offline e testes automatizados de estresse de rede.

Neste artigo, vou guiar você pela jornada técnica das versões v0.0.26, v0.0.27 e a recém-lançada v0.0.28, detalhando os padrões de projeto (Design Patterns) aplicados que você também pode adotar nos seus projetos Delphi.

· Régys Borges da Silveira
Ler artigo →

Bastidores do Rad IA v0.0.26 — De Identidade Visual Premium a uma Arquitetura IoC/DIP Robusta no Delphi

Se você tem acompanhado a evolução do Rad IA — nosso plugin open-source de assistência de IA integrado nativamente à IDE do Delphi (Alexandria, Athens e Florence) —, sabe que nosso compromisso vai muito além de "envelopar APIs de IA". Buscamos trazer produtividade real para o desenvolvedor Object Pascal sob as regras mais rígidas de Clean Code, SOLID e segurança…

Ver resumo completo

Se você tem acompanhado a evolução do Rad IA — nosso plugin open-source de assistência de IA integrado nativamente à IDE do Delphi (Alexandria, Athens e Florence) —, sabe que nosso compromisso vai muito além de "envelopar APIs de IA". Buscamos trazer produtividade real para o desenvolvedor Object Pascal sob as regras mais rígidas de Clean Code, SOLID e segurança em runtime.

Na recém-lançada versão v0.0.26, demos um salto gigantesco. Redesenhamos a experiência visual do chat para torná-la mais orgânica e premium, e realizamos uma profunda reforma estrutural de engenharia de software na base de código do plugin.

Neste artigo, convido você a dar uma olhada nos bastidores do que mudou no Rad IA, nas decisões de arquitetura que tomamos e em como blindamos o plugin contra travamentos e concorrência no Delphi.

· Régys Borges da Silveira
Ler artigo →

A Evolução do Rad IA: O que mudou da tag 0.0.21 até a versão 0.0.25

O Rad IA, assistente de inteligência artificial integrado diretamente à IDE do Delphi, passou por uma série de atualizações profundas desde a versão v0.0.21. O foco do desenvolvimento nesse período foi elevar a robustez da integração com o ecossistema Embarcadero, introduzir ferramentas inteligentes de auditoria e melhorar significativamente a experiência visual e a confiabilidade das refatorações direto no…

Ver resumo completo

O Rad IA, assistente de inteligência artificial integrado diretamente à IDE do Delphi, passou por uma série de atualizações profundas desde a versão v0.0.21. O foco do desenvolvimento nesse período foi elevar a robustez da integração com o ecossistema Embarcadero, introduzir ferramentas inteligentes de auditoria e melhorar significativamente a experiência visual e a confiabilidade das refatorações direto no editor de código.

Abaixo, detalhamos as principais novidades, recursos e correções implementadas nas últimas versões do plugin.

· Régys Borges da Silveira
Ler artigo →

Projetos Delphi inteiros gerados por IA: a revolução do RadIA v0.0.15

https://github.com/regyssilveira/RadIA-Plugin

Ver resumo completo

https://github.com/regyssilveira/RadIA-Plugin

Se você desenvolve em Delphi e acompanha a jornada do RadIA — o assistente de Inteligência Artificial de código aberto acoplado diretamente à barra lateral da IDE —, prepare-se para o maior salto de produtividade e refinamento de arquitetura que já entregamos.

Nas últimas versões (da v0.0.13 à v0.0.15), o RadIA deixou de ser apenas um integrador de chat para se consolidar como uma ferramenta de automação de código de ponta e um motor flexível de inteligência coletiva.

Neste artigo, vou guiar você pela nossa mais recente trilha de evolução tecnológica: desde a geração de projetos compiláveis em segundos até o sofisticado gerenciamento de prompts em duas camadas da nova versão v0.0.15.

· Régys Borges da Silveira
Ler artigo →

RadIA v0.0.6: Elevando a Produtividade no Delphi com Provedores Dinâmicos JSON, Comandos de Barra, DTOs e Análise Estática!

Se você desenvolve em Delphi, já deve ter percebido que a Inteligência Artificial deixou de ser uma promessa futurista e se tornou uma ferramenta essencial para o dia a dia. Escrever código repetitivo, converter JSONs gigantescos em classes de dados e encontrar aquele famigerado memory leak são tarefas que consomem um tempo precioso.

Ver resumo completo

Se você desenvolve em Delphi, já deve ter percebido que a Inteligência Artificial deixou de ser uma promessa futurista e se tornou uma ferramenta essencial para o dia a dia. Escrever código repetitivo, converter JSONs gigantescos em classes de dados e encontrar aquele famigerado memory leak são tarefas que consomem um tempo precioso.

É exatamente para resolver isso que nasceu o RadIA – um assistente de IA avançado integrado nativamente na IDE do Delphi via Open Tools API. E hoje, com a chegada da versão v0.0.6, o plugin deu um salto gigantesco em flexibilidade, produtividade e inteligência.

Neste artigo, vou apresentar as novas funcionalidades que acabamos de implementar e mostrar como elas podem transformar a forma como você programa em Delphi.

· Régys Borges da Silveira
Ler artigo →

Performance em Strings no Delphi: O Guia Definitivo entre Concatenação e TStringBuilder

O uso de strings é uma das operações mais elementares em qualquer aplicação Delphi. No entanto, a forma como manipulamos esses dados pode ser a diferença entre um sistema fluido e um que sofre com latência excessiva e fragmentação de memória.

Ver resumo completo

O uso de strings é uma das operações mais elementares em qualquer aplicação Delphi. No entanto, a forma como manipulamos esses dados pode ser a diferença entre um sistema fluido e um que sofre com latência excessiva e fragmentação de memória.

Neste artigo, vamos descer ao nível dos bits para entender o comportamento do gerenciador de memória do Delphi e estabelecer critérios técnicos sobre quando utilizar a concatenação tradicional e quando migrar para o TStringBuilder.

· Régys Borges da Silveira
Ler artigo →

Modelos de IA para Desenvolvimento de ERP Web (React, Next.js, NestJS e Delphi): Qual Escolher?

A inteligência artificial já não é apenas uma ferramenta de apoio no desenvolvimento de software — ela se tornou parte ativa do processo de engenharia. Em sistemas ERP, onde a complexidade é elevada e a manutenção é contínua, o uso de IA pode representar uma diferença significativa em produtividade, qualidade e custo.

Ver resumo completo

A inteligência artificial já não é apenas uma ferramenta de apoio no desenvolvimento de software — ela se tornou parte ativa do processo de engenharia. Em sistemas ERP, onde a complexidade é elevada e a manutenção é contínua, o uso de IA pode representar uma diferença significativa em produtividade, qualidade e custo.

Esse cenário se torna ainda mais relevante quando consideramos ambientes híbridos, muito comuns no mercado brasileiro, onde aplicações modernas em React, Next.js e NestJS convivem com sistemas legados em Delphi, muitas vezes integrados a bibliotecas como ACBr para emissão de documentos fiscais.

Diante disso, surge a pergunta:qual modelo de IA escolher para desenvolver e manter um ERP moderno com integração Delphi?

Neste artigo, vamos analisar:

· Régys Borges da Silveira
Ler artigo →

Desenvolvimento de Software 2.0: IA como Parceira de Pareamento (Pair Programming)

O conceito de Pair Programming (programação em par) é um dos pilares das metodologias ágeis, como o Extreme Programming (XP). Tradicionalmente, envolve dois desenvolvedores dividindo a mesma estação de trabalho: o "piloto", que escreve o código, e o "navegador", que observa, revisa e foca no design estratégico.

Ver resumo completo

O conceito de Pair Programming (programação em par) é um dos pilares das metodologias ágeis, como o Extreme Programming (XP). Tradicionalmente, envolve dois desenvolvedores dividindo a mesma estação de trabalho: o "piloto", que escreve o código, e o "navegador", que observa, revisa e foca no design estratégico.

Com a ascensão dos LLMs (Large Language Models) e ferramentas como GitHub Copilot, Cursor e Claude Dev, entramos na era do Desenvolvimento de Software 2.0. Aqui, a IA assume o papel de um piloto incansável, permitindo que o engenheiro de software ascenda definitivamente ao posto de navegador e arquiteto.

· Régys Borges da Silveira
Ler artigo →

Clean Code com Delphi 13: SOLID no Delphi – O Ápice do Código Limpo

Os princípios SOLID (acrônimo introduzido por Robert C. Martin) são os cinco pilares da programação orientada a objetos que, quando aplicados ao Delphi 13, combatem os três grandes vilões do software: Rigidez (difícil de mudar), Fragilidade (muda num lugar e quebra em outro) e Imobilidade (impossível de reutilizar).

Ver resumo completo

Os princípios SOLID (acrônimo introduzido por Robert C. Martin) são os cinco pilares da programação orientada a objetos que, quando aplicados ao Delphi 13, combatem os três grandes vilões do software: Rigidez (difícil de mudar), Fragilidade (muda num lugar e quebra em outro) e Imobilidade (impossível de reutilizar).

Vamos detalhar como cada um desses princípios se manifesta no universo Object Pascal:

· Régys Borges da Silveira
Ler artigo →

Clean Code com Delphi 13: Unit Testing como Documentação – Escrevendo Código Testável

Muitos desenvolvedores Delphi veem os testes unitários como uma perda de tempo ou um fardo adicional. No entanto, o Código Limpo nos ensina que testes e código de produção são igualmente importantes.

Ver resumo completo

Muitos desenvolvedores Delphi veem os testes unitários como uma perda de tempo ou um fardo adicional. No entanto, o Código Limpo nos ensina que testes e código de produção são igualmente importantes. Um código sem testes não é apenas perigoso; ele é, por definição, "sujo", pois não oferece a confiança necessária para futuras refatorações.

No Delphi 13, utilizamos o DUnitX como o framework padrão para garantir que cada pequena engrenagem do nosso sistema funcione exatamente como planejado.

· Régys Borges da Silveira
Ler artigo →

Clean Code com Delphi 13: Refatoração de Código Legado – Deixando o Código Melhor que o Encontrou

Refatoração é o processo de alterar um sistema de software de modo que não mude o comportamento externo do código, mas melhore sua estrutura interna. No contexto do Código Limpo, a refatoração não é um evento isolado ou uma "parada para manutenção", mas um hábito contínuo conhecido como a Regra do Escoteiro: "Deixe o código sempre um pouco…

Ver resumo completo

Refatoração é o processo de alterar um sistema de software de modo que não mude o comportamento externo do código, mas melhore sua estrutura interna. No contexto do Código Limpo, a refatoração não é um evento isolado ou uma "parada para manutenção", mas um hábito contínuo conhecido como a Regra do Escoteiro: "Deixe o código sempre um pouco mais limpo do que você o encontrou".

No Delphi 13 (Athens), refatorar código legado é essencial para reduzir a dívida técnica e permitir que o sistema continue evoluindo sem colapsar sob sua própria complexidade.

· Régys Borges da Silveira
Ler artigo →