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

Autor: Régys Borges da Silveira

1.145 resultado(s)

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 →

Dominando IA Skills: Guia Definitivo para Criar Agent Skills em Delphi ou qualquer outra linguagem

Com a ascensão de IDEs baseadas em IA como o Cursor e o Antigravity, muitos desenvolvedores Delphi sentem que as sugestões da ferramenta às vezes parecem "genéricas" demais ou focadas em padrões de outras linguagens. O segredo para transformar essas ferramentas em um verdadeiro braço direito é a criação de uma Agent Skill.

Ver resumo completo

Com a ascensão de IDEs baseadas em IA como o Cursor e o Antigravity, muitos desenvolvedores Delphi sentem que as sugestões da ferramenta às vezes parecem "genéricas" demais ou focadas em padrões de outras linguagens. O segredo para transformar essas ferramentas em um verdadeiro braço direito é a criação de uma Agent Skill.

Neste artigo, vou te ensinar como criar um arquivo de Skill completo que define regras de arquitetura, padrões de codificação e até comportamentos específicos para o ecossistema Delphi.

· 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 →

Clean Code com Delphi 13: O Desafio da UI Limpa – Desacoplando Lógica da VCL/FMX

O "pecado original" de muitos projetos Delphi é o código escrito diretamente no evento OnClick de um botão. Quando a regra de negócio, a validação de dados e a persistência no banco de dados residem dentro de um formulário (TForm), criamos um acoplamento destrutivo.

Ver resumo completo

O "pecado original" de muitos projetos Delphi é o código escrito diretamente no evento OnClick de um botão. Quando a regra de negócio, a validação de dados e a persistência no banco de dados residem dentro de um formulário (TForm), criamos um acoplamento destrutivo. O Código Limpo exige que a interface seja burra e que a lógica seja agnóstica.

· Régys Borges da Silveira
Ler artigo →

Clean Code com Delphi 13: Classes e Objetos – Coesão e Acoplamento

No Delphi 13, temos um sistema de objetos extremamente maduro, mas ele permite práticas que podem degradar a qualidade do software se não formos disciplinados. Uma classe limpa deve seguir o princípio da Alta Coesão (fazer uma única coisa muito bem) e do Baixo Acoplamento (depender o mínimo possível de outras classes).

Ver resumo completo

No Delphi 13, temos um sistema de objetos extremamente maduro, mas ele permite práticas que podem degradar a qualidade do software se não formos disciplinados. Uma classe limpa deve seguir o princípio da Alta Coesão (fazer uma única coisa muito bem) e do Baixo Acoplamento (depender o mínimo possível de outras classes).

· Régys Borges da Silveira
Ler artigo →

Clean Code com Delphi 13: A Guerra contra os “Magic Numbers” e Enums Limpos

O que é mais fácil de entender: if Status = 3 then ou if Pedido.Status = TStatusPedido.Enviado then? A resposta parece óbvia, mas o "vício" de usar valores brutos (Magic Numbers) ou strings mágicas ainda assombra muitos projetos Delphi legados.

Ver resumo completo

O que é mais fácil de entender: if Status = 3 then ou if Pedido.Status = TStatusPedido.Enviado then? A resposta parece óbvia, mas o "vício" de usar valores brutos (Magic Numbers) ou strings mágicas ainda assombra muitos projetos Delphi legados. No Código Limpo, cada valor deve ter um nome que revele sua intenção.

No Delphi 13 (Athens), temos recursos de enumeração e constantes tipadas que elevam a legibilidade ao nível de documentação viva.

· Régys Borges da Silveira
Ler artigo →

Clean Code com Delphi 13: Comentários e Formatação – O Código deve Contar uma História

Existe uma máxima no Código Limpo que choca muitos desenvolvedores: "O uso adequado de comentários é para compensar a nossa falha em expressar a intenção através do código." No Delphi 13, com sua sintaxe verbosa e expressiva, temos todas as ferramentas para escrever sistemas que se explicam sozinhos.

Ver resumo completo

Existe uma máxima no Código Limpo que choca muitos desenvolvedores: "O uso adequado de comentários é para compensar a nossa falha em expressar a intenção através do código." No Delphi 13, com sua sintaxe verbosa e expressiva, temos todas as ferramentas para escrever sistemas que se explicam sozinhos.

· Régys Borges da Silveira
Ler artigo →

Clean Code com Delphi 13: Tratamento de Erros e Exceções – Elegância em vez de Caos

O tratamento de erros é algo que todos os programadores fazem, mas poucos fazem de forma limpa. No Código Limpo, o tratamento de erros não deve obscurecer a lógica principal do programa.

Ver resumo completo

O tratamento de erros é algo que todos os programadores fazem, mas poucos fazem de forma limpa. No Código Limpo, o tratamento de erros não deve obscurecer a lógica principal do programa. Se um método está tão cheio de blocos de tratamento que você não consegue ver o que ele realmente faz, então o tratamento de erros está a trabalhar contra si.

No Delphi 13 (Athens), temos a responsabilidade de usar exceções de forma a manter o código resiliente, mas sem sacrificar a legibilidade e o desempenho.

· Régys Borges da Silveira
Ler artigo →
prompt para ia

Engenharia de Prompt para Desenvolvedores Delphi: O Novo Skill Essencial

A Inteligência Artificial Generativa (GenAI) já não é mais uma promessa futurista, mas uma ferramenta de fluxo de trabalho consolidada no desenvolvimento moderno. Para o desenvolvedor Delphi, que muitas vezes lida com grandes bases de código legado e a necessidade de modernização constante, dominar a "Engenharia de Prompt" torna-se uma competência técnica tão crítica quanto conhecer a VCL…

Ver resumo completo

A Inteligência Artificial Generativa (GenAI) já não é mais uma promessa futurista, mas uma ferramenta de fluxo de trabalho consolidada no desenvolvimento moderno. Para o desenvolvedor Delphi, que muitas vezes lida com grandes bases de código legado e a necessidade de modernização constante, dominar a "Engenharia de Prompt" torna-se uma competência técnica tão crítica quanto conhecer a VCL ou FireMonkey.

Neste artigo, exploraremos os fundamentos apresentados no curso de Engenharia de Software da USP/Esalq, adaptando-os especificamente para o nosso dia a dia com Object Pascal e RAD Studio.

· Régys Borges da Silveira
Ler artigo →

Clean Code com Delphi 13: Funções e Procedimentos – O Poder da Responsabilidade Única

No desenvolvimento de software, as funções são a primeira linha de organização. No Delphi, onde a sintaxe procedure e function define o ritmo do sistema, a qualidade desses blocos determina se o projeto será sustentável ou se tornará um "legado intocável".

Ver resumo completo

No desenvolvimento de software, as funções são a primeira linha de organização. No Delphi, onde a sintaxe procedure e function define o ritmo do sistema, a qualidade desses blocos determina se o projeto será sustentável ou se tornará um "legado intocável".

O capítulo de funções do Clean Code pode ser resumido em uma frase de Robert C. Martin: "A primeira regra das funções é que elas devem ser pequenas. A segunda regra é que elas devem ser ainda menores."

· Régys Borges da Silveira
Ler artigo →
reforma tributária do consumo

Ecossistema DF-e: Guia Completo sobre a Tabela cClassTrib e as Atualizações da SVRS (Janeiro/2026)

O início de 2026 trouxe movimentações críticas para o cenário de documentos fiscais eletrônicos no Brasil. Com a evolução da Reforma Tributária e a necessidade de maior precisão na classificação de produtos e serviços, a SEFAZ Virtual do Rio Grande do Sul (SVRS) publicou atualizações fundamentais que impactam diretamente a autorização de notas e a validação de conformidade.

Ver resumo completo

O início de 2026 trouxe movimentações críticas para o cenário de documentos fiscais eletrônicos no Brasil. Com a evolução da Reforma Tributária e a necessidade de maior precisão na classificação de produtos e serviços, a SEFAZ Virtual do Rio Grande do Sul (SVRS) publicou atualizações fundamentais que impactam diretamente a autorização de notas e a validação de conformidade.

Neste artigo, detalhamos cada uma dessas mudanças, fornecendo links oficiais e orientações técnicas para a sua implementação.

· Régys Borges da Silveira
Ler artigo →

Clean Code com Delphi 13: Nomes que Revelam Intenção

No ecossistema Delphi, herdamos décadas de evolução. Muitas vezes, ainda encontramos códigos com variáveis globais nomeadas como v_1, componentes com nomes padrão (Button1, Edit2) ou métodos cujos nomes não explicam o que fazem.

Ver resumo completo

No ecossistema Delphi, herdamos décadas de evolução. Muitas vezes, ainda encontramos códigos com variáveis globais nomeadas como v_1, componentes com nomes padrão (Button1, Edit2) ou métodos cujos nomes não explicam o que fazem. No Delphi 13, temos recursos modernos para tornar o código uma leitura tão clara quanto um livro bem escrito.

O primeiro princípio do Código Limpo é simples: O nome de uma variável, função ou classe deve dizer por que ela existe, o que ela faz e como é usada.

· Régys Borges da Silveira
Ler artigo →

Design Patterns em Delphi 13: Template Method, Visitor e Chain of Responsibility – O Gran Finale (Artigo 12)

No desenvolvimento de sistemas complexos, frequentemente nos deparamos com processos que seguem um roteiro fixo, mas com detalhes que mudam (como importação de arquivos), ou situações onde precisamos adicionar operações a uma estrutura de objetos sem modificá-la. Além disso, há o desafio de processar requisições que podem ser resolvidas por diferentes instâncias em uma corrente.

Ver resumo completo

No desenvolvimento de sistemas complexos, frequentemente nos deparamos com processos que seguem um roteiro fixo, mas com detalhes que mudam (como importação de arquivos), ou situações onde precisamos adicionar operações a uma estrutura de objetos sem modificá-la. Além disso, há o desafio de processar requisições que podem ser resolvidas por diferentes instâncias em uma corrente.

Neste artigo, veremos como o Delphi 13 utiliza esses padrões para criar códigos altamente extensíveis e com responsabilidades claramente definidas.

· Régys Borges da Silveira
Ler artigo →

Design Patterns em Delphi 13: O Mapa da Mina (Resumo da Série)

Após uma jornada técnica profunda composta por 12 artigos, consolidamos a aplicação dos padrões de projeto clássicos da Gang of Four (GoF) sob a ótica das potentes evoluções do Delphi 13 (Athens). Ao longo desta série, ficou claro que o uso de padrões de projeto não é um exercício estético de "escrever código bonito" ou uma sofisticação desnecessária.

Ver resumo completo

Após uma jornada técnica profunda composta por 12 artigos, consolidamos a aplicação dos padrões de projeto clássicos da Gang of Four (GoF) sob a ótica das potentes evoluções do Delphi 13 (Athens). Ao longo desta série, ficou claro que o uso de padrões de projeto não é um exercício estético de "escrever código bonito" ou uma sofisticação desnecessária. Pelo contrário: trata-se da sobrevivência técnica da sua aplicação.

Implementar Design Patterns no Delphi moderno significa construir sistemas resilientes às mudanças inevitáveis de requisitos, capazes de escalar sem gerar dívidas técnicas impagáveis e prontos para absorver inovações tecnológicas sem a necessidade de reescritas dolorosas. Este guia final serve como o seu mapa estratégico para transformar teoria em código de alta performance e fácil manutenção.

· Régys Borges da Silveira
Ler artigo →

Código de Defesa do Contribuinte: O que Muda com a LC 225/2026?

A relação entre o fisco e o contribuinte no Brasil sempre foi marcada por complexidade e, muitas vezes, por um desequilíbrio de forças. A chegada da Lei Complementar nº 225/2026 visa alterar esse cenário, estabelecendo normas gerais que garantem direitos, deveres e procedimentos mais transparentes em todo o território nacional.

Ver resumo completo

A relação entre o fisco e o contribuinte no Brasil sempre foi marcada por complexidade e, muitas vezes, por um desequilíbrio de forças. A chegada da Lei Complementar nº 225/2026 visa alterar esse cenário, estabelecendo normas gerais que garantem direitos, deveres e procedimentos mais transparentes em todo o território nacional.

Vamos nesse artigo discutir os principais pontos desta lei e entender melhor os seus impactos no dia-a-dia.

· Régys Borges da Silveira
Ler artigo →

Design Patterns em Delphi 13: Builder e Prototype

À medida que nossas aplicações crescem, a complexidade dos nossos objetos aumenta. Você já se deparou com um construtor que exige 15 parâmetros, onde metade deles são opcionais ou nil?

Ver resumo completo

À medida que nossas aplicações crescem, a complexidade dos nossos objetos aumenta. Você já se deparou com um construtor que exige 15 parâmetros, onde metade deles são opcionais ou nil? Ou precisou duplicar um objeto complexo que levou segundos para ser configurado e percebeu que o Delphi não oferece um "Clone" nativo por padrão?

Neste artigo, vamos explorar como os padrões Builder e Prototype no Delphi 13 resolvem a criação de objetos complexos e a clonagem eficiente, garantindo um código limpo e sem efeitos colaterais.

· Régys Borges da Silveira
Ler artigo →

Design Patterns em Delphi 13: Iterator, Mediator e Memento – Navegação e Memória

À medida que os sistemas se tornam mais complexos, dois problemas surgem: como percorrer coleções de objetos sem expor sua estrutura interna e como evitar que dezenas de classes fiquem acopladas entre si (o famoso "código espaguete"). Além disso, surge a necessidade de salvar o estado de um objeto para restauração futura.

Ver resumo completo

À medida que os sistemas se tornam mais complexos, dois problemas surgem: como percorrer coleções de objetos sem expor sua estrutura interna e como evitar que dezenas de classes fiquem acopladas entre si (o famoso "código espaguete"). Além disso, surge a necessidade de salvar o estado de um objeto para restauração futura.

Neste artigo, veremos como o Delphi 13 resolve esses dilemas com padrões que trazem ordem à comunicação e persistência temporária de dados.

· Régys Borges da Silveira
Ler artigo →

Design Patterns em Delphi 13: State e Command – Controle de Fluxo e Encapsulamento

Você já se deparou com uma unit de negócio onde o comportamento de um método é governado por um emaranhado de if FStatus = stPendente then... else if FStatus = stPago then...?

Ver resumo completo

Você já se deparou com uma unit de negócio onde o comportamento de um método é governado por um emaranhado de if FStatus = stPendente then... else if FStatus = stPago then...? Ou talvez tenha tido dificuldade em implementar um sistema de "Desfazer" (Undo) ou uma fila de processamento assíncrono?

Neste artigo, veremos como o padrão State limpa a lógica de estados finitos e como o Command transforma métodos em cidadãos de primeira classe no Delphi 13.

· Régys Borges da Silveira
Ler artigo →

Design Patterns em Delphi 13: Composite e Bridge – Hierarquias e Abstrações

Como desenvolvedores Delphi, frequentemente lidamos com dois desafios arquiteturais: representar estruturas de árvore (como menus, organogramas ou composições de produtos) e evitar a explosão de classes quando uma funcionalidade precisa rodar em múltiplas plataformas ou bancos de dados.

Ver resumo completo

Como desenvolvedores Delphi, frequentemente lidamos com dois desafios arquiteturais: representar estruturas de árvore (como menus, organogramas ou composições de produtos) e evitar a explosão de classes quando uma funcionalidade precisa rodar em múltiplas plataformas ou bancos de dados.

Neste artigo, veremos como o Composite nos permite tratar objetos individuais e composições de forma uniforme, e como o Bridge desata o nó entre o "o que o objeto faz" e "como ele é implementado" no Delphi 13.

· Régys Borges da Silveira
Ler artigo →

Design Patterns em Delphi 13: Decorator – Flexibilidade Além da Herança

No desenvolvimento de software com Delphi, a herança é frequentemente a primeira ferramenta utilizada para estender comportamentos. No entanto, ela é uma relação estática de "é um" definida em tempo de compilação.

Ver resumo completo

No desenvolvimento de software com Delphi, a herança é frequentemente a primeira ferramenta utilizada para estender comportamentos. No entanto, ela é uma relação estática de "é um" definida em tempo de compilação. Quando tentamos combinar múltiplas funcionalidades opcionais, caímos na armadilha da Explosão de Subclasses. O padrão Decorator surge como a solução definitiva, permitindo adicionar responsabilidades a objetos de forma dinâmica e granular.

Um dos erros mais comuns no desenvolvimento Delphi é tentar resolver toda e qualquer variação de comportamento através da herança. Se você tem uma classe TServico, e precisa de uma versão com log, cria TServicoComLog. Se precisa de uma com validação, cria TServicoComValidacao. E se precisar de ambas? Você acaba com um emaranhado de classes impossível de manter.

O padrão Decorator resolve isso permitindo que você "envolva" um objeto com camadas de funcionalidades adicionais em tempo de execução, sem alterar sua estrutura original.

· Régys Borges da Silveira
Ler artigo →