Loading skill
Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Sugerir design patterns e avaliar princípios SOLID. Ativa com "sugerir padrões", "verificar SOLID", "detectar anti-padrões".
.claude/skills/wasabeef-sugerir-design-patterns-e-avaliar-princi-pios-solid/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 6% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 85% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -23% | 0% |
Propõe padrões de design aplicáveis à base de código e avalia a conformidade com os princípios SOLID.
bash/design-patterns [alvo-de-análise] [opções]
--suggest : Propor padrões aplicáveis (padrão)--analyze : Analisar uso de padrões existentes--refactor : Gerar propostas de refatoração--solid : Verificar conformidade com princípios SOLID--anti-patterns : Detectar antipadrõesbash# Análise de padrões de todo o projeto /design-patterns # Proposta de padrões para arquivo específico /design-patterns src/services/user.js --suggest # Verificação de princípios SOLID /design-patterns --solid # Detecção de antipadrões /design-patterns --anti-patterns
textS - Single Responsibility Principle (Princípio da Responsabilidade Única) O - Open/Closed Principle (Princípio Aberto/Fechado) L - Liskov Substitution Principle (Princípio da Substituição de Liskov) I - Interface Segregation Principle (Princípio da Segregação de Interface) D - Dependency Inversion Principle (Princípio da Inversão de Dependência)
textRelatório de Análise de Design Patterns ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Padrões Atualmente em Uso ├─ Observer Pattern: EventEmitter (12 locais) ├─ Factory Pattern: UserFactory (3 locais) ├─ Singleton Pattern: DatabaseConnection (1 local) └─ Strategy Pattern: PaymentProcessor (5 locais) Padrões Recomendados ├─ [HIGH] Repository Pattern │ └─ Alvo: src/models/*.js │ └─ Motivo: Separação da lógica de acesso a dados │ └─ Exemplo: │ class UserRepository { │ async findById(id) { ... } │ async save(user) { ... } │ } │ ├─ [MED] Command Pattern │ └─ Alvo: src/api/handlers/*.js │ └─ Motivo: Unificação do processamento de requisições │ └─ [LOW] Decorator Pattern └─ Alvo: src/middleware/*.js └─ Motivo: Melhoria da combinação de funcionalidades Violações dos Princípios SOLID ├─ [S] UserService: responsável tanto por autenticação quanto gerenciamento de permissões ├─ [O] PaymentGateway: necessária modificação ao adicionar novos métodos de pagamento ├─ [D] EmailService: depende diretamente de classes concretas └─ [I] IDataStore: contém métodos não utilizados Propostas de Refatoração 1. Dividir UserService em autenticação e gerenciamento de permissões 2. Introduzir interface PaymentStrategy 3. Definir interface EmailService 4. Separar IDataStore por uso
bash# Análise de impacto da aplicação de padrões /design-patterns --impact-analysis Repository # Geração de exemplo de implementação de padrão específico /design-patterns --generate Factory --for src/models/Product.js # Proposta de combinação de padrões /design-patterns --combine --context "API with caching" # Avaliação de padrões arquiteturais /design-patterns --architecture MVC
javascriptclass OrderService { processOrder(order, paymentType) { if (paymentType === "credit") { // Processamento de cartão de crédito } else if (paymentType === "paypal") { // Processamento PayPal } // Outros métodos de pagamento... } }
javascript// Interface de estratégia class PaymentStrategy { process(amount) { throw new Error("Must implement process method"); } } // Estratégia concreta class CreditCardPayment extends PaymentStrategy { process(amount) { /* implementação */ } } // Contexto class OrderService { constructor(paymentStrategy) { this.paymentStrategy = paymentStrategy; } processOrder(order) { this.paymentStrategy.process(order.total); } }
Other measured skills in the registry, with their headline benchmark lift.