solid-principles
Aplicar Princípios SOLID ao Código TypeScript
Também disponível em: Benny9193
Os princípios SOLID ajudam você a escrever software sustentável. Esta skill ensina você a construir aplicações TypeScript testáveis e extensíveis que se adaptam a requisitos em mudança.
Baixar o ZIP da skill
Upload no Claude
Vá em Configurações → Capacidades → Skills → Upload skill
Ative e comece a usar
Testar
A utilizar "solid-principles". Minha classe OrderService lida com validação, lógica de negócio, acesso ao banco de dados e notificações. Como posso melhorá-la?
Resultado esperado:
- Violação de Responsabilidade Única detectada: 4 responsabilidades distintas
- Extrair lógica de validação para uma função OrderValidator dedicada
- Mover operações de banco de dados para um OrderRepository separado
- Criar uma interface EmailNotifier para notificações
- Injetar todas as dependências para testabilidade e flexibilidade
A utilizar "solid-principles". Tenho muitas instruções if-else verificando tipos de desconto. Como torno isso extensível?
Resultado esperado:
- Violação do Princípio Aberto/Fechado: modificando código existente para adicionar novos tipos
- Criar um tipo DiscountStrategy para cálculos de desconto
- Armazenar estratégias em um record/map para fácil extensão
- Adicionar novos tipos de desconto sem modificar calculateDiscount
- Usar composição de funções para combinações flexíveis de desconto
A utilizar "solid-principles". Minha classe Square quebra as expectativas de Rectangle quando a largura muda. Como corrijo isso?
Resultado esperado:
- Violação do Princípio de Substituição de Liskov: Square não pode substituir Rectangle
- Usar composição em vez de herança para relacionamentos de formas
- Definir uma interface Shape com cálculo de área
- Criar funções de fábrica separadas para Rectangle e Square
- Evitar herança quando contratos comportamentais diferem
Auditoria de Segurança
SeguroThis is a pure documentation/educational skill containing only markdown explanations and TypeScript code examples demonstrating SOLID design principles. The static scanner misidentified TypeScript template literals as shell backticks, arithmetic operations as cryptographic algorithms, and code comments as system reconnaissance. No executable code, network calls, file system access, or environment variable access exists. Verified by reading SKILL.md (282 lines) and examples.md (387 lines) which contain only educational content.
Fatores de risco
⚙️ Comandos externos (42)
🌐 Acesso à rede (1)
Pontuação de qualidade
O Que Você Pode Construir
Aprender fundamentos SOLID
Compreender cada princípio através de exemplos práticos em TypeScript e violações comuns
Revisar decisões de design
Validar escolhas de design e identificar oportunidades de refatoração em código legado
Estudar padrões de design
Aprender como os princípios SOLID orientam decisões de design orientado a objetos e funcional
Tente Estes Prompts
Analise esta classe TypeScript e identifique quais princípios SOLID ela viola. Explique cada violação e sugira uma abordagem de refatoração.
Refatore esta classe para seguir o Princípio da Responsabilidade Única. Extraia funções separadas para cada responsabilidade.
Redesenhe esta instrução switch para seguir o Princípio Aberto/Fechado usando padrão de estratégia ou composição.
Refatore este serviço para depender de abstrações em vez de implementações concretas. Mostre o design da interface.
Melhores Práticas
- Comece com Responsabilidade Única - divida funções por motivo de mudança
- Use injeção de dependência para inverter dependências e melhorar a testabilidade
- Prefira composição em vez de herança para flexibilidade
Evitar
- Classes God que lidam com múltiplas responsabilidades não relacionadas
- Hierarquias de herança profundas que quebram a substituição de Liskov
- Interfaces gordas que forçam clientes a depender de métodos não utilizados
Perguntas Frequentes
Qual princípio SOLID devo aprender primeiro?
Posso aplicar princípios SOLID a código existente?
SOLID se aplica apenas a código orientado a objetos?
Como evito super-engenharia com SOLID?
Qual é a relação entre SOLID e padrões de design?
Posso usar SOLID com TypeScript?
Detalhes do Desenvolvedor
Autor
DoubleslashSELicença
MIT
Repositório
https://github.com/DoubleslashSE/claude-workflows/tree/main/Plugins/dotnet-tdd/skills/solid-principlesReferência
main
Estrutura de arquivos
📄 SKILL.md