Biaggio Rizzo

💻 Um espaço onde compartilho projetos e estudos sobre tecnologia. Sempre explorando ideias, fundamentos e boas práticas, e aprendendo algo novo a cada post.
Ilustração representa a prática dos princípios SOLID

Parte 2 - SOLID na Prática: Do Código Ruim ao Código Flexível

Na Parte 2, vamos transformar esses conceitos em código real. Para entender melhor os conceitos, recomendo ler antes a Parte 1, caso ainda não tenha visto. A ideia é ir além da teoria e observar, diretamente no código: exemplos antes e depois (violação -> refatoração), diagramas de dependência aplicados ao código, como o SOLID melhora testabilidade, isolamento e clareza, e um exercício prático completo: uma Central de Notificações com Email, SMS e Push, aplicando SRP, OCP e DIP de ponta a ponta. A parte prática será demonstrada em Python, mas os princípios se aplicam a qualquer linguagem. A resolução final do exercício foi feita em Java, reforçando como o SOLID é universal, independentemente da sintaxe. O objetivo aqui é fechar o ciclo: entender como cada princípio se manifesta em decisões reais de design, não apenas no texto, mas em código que você pode testar, evoluir e refatorar. ...

novembro 25, 2025 · 7 min · 1383 words · Biaggio Rizzo
Ilustração representando os cincos princípios SOLID

Parte 1 - Entendendo os Princípios SOLID

Na Programação Orientada a Objetos, SOLID é um acrônimo que reúne cinco princípios criados para tornar o código mais fácil de compreender, desenvolver e manter. Esses princípios foram consolidados por Uncle Bob, e o acrônimo em si foi proposto por Michael Feathers em 2004. Ao longo deste conteúdo, vamos explorar o que cada letra significa, qual problema cada princípio busca resolver e quais cuidados precisamos ter ao aplicá-los no dia a dia. ...

novembro 17, 2025 · 16 min · 3401 words · Biaggio Rizzo
Ilustração representando a relação entre objetos na POO

Relações entre Objetos

As relações entre objetos representam como as classes interagem entre si. Dependência A dependência é a forma mais fraca de relação entre classes, ocorrendo quando uma depende da outra para operar. Caso uma delas sofra alterações, a outra pode ser impactada. Esse vínculo acontece, por exemplo, ao instanciar objetos diretamente ou ao definir tipos específicos em métodos. Para reduzir essa dependência, é melhor programar usando interfaces ou classes abstratas, tornando o código mais flexível. ...

novembro 11, 2025 · 3 min · 607 words · Biaggio Rizzo
Aliens planejando os pilares de POO

Programação Orientada a Objetos (POO): Fundamentos, Pilares e Vantagens

Como surgiu POO? A Programação Orientada a Objetos (POO) surgiu na década de 1960 com a linguagem Simula, desenvolvida por Ole-Johan Dahl e Kristen Nygaard no Centro de Computação Norueguês. O objetivo inicial era criar simulações complexas, especialmente para representar sistemas reais com entidades interagindo entre si. O conceito foi posteriormente refinado e popularizado com a linguagem Smalltalk, criada nos anos 1970 no Xerox PARC. Smalltalk consolidou ideias como encapsulamento, herança e polimorfismo, tornando a POO um paradigma amplamente adotado. ...

novembro 3, 2025 · 9 min · 1725 words · Biaggio Rizzo
Ilustração em preto e branco de pessoas passando por detectores de metal, simbolizando autenticação

Básico sobre Autenticação e Autorização

Qual é a diferença entre autenticação e autorização? Uma das dúvidas mais comuns no desenvolvimento de sistemas seguros é compreender a diferença entre autenticação e autorização. Em resumo: Autenticação verifica quem você é. Autorização define o que você pode fazer. Enquanto a autenticação confirma a identidade de um usuário, a autorização determina os níveis de acesso e permissões que esse usuário possui sobre determinados recursos. Para garantir a segurança, é essencial criar APIs que implementem mecanismos de autenticação e autorização. Entre os métodos mais comuns estão: ...

outubro 24, 2025 · 4 min · 652 words · Biaggio Rizzo