O que filosofia-de-design-de-software faz?
Fornece orientação de design de software baseada nos princípios de John Ousterhout para melhorar a qualidade do código, a arquitetura e a manutenibilidade durante o desenvolvimento.
Visão Geral
Esta skill incorpora os ensinamentos do livro A Philosophy of Software Design, de John Ousterhout, para ajudar você a tomar melhores decisões de design enquanto codifica. Em vez de regras abstratas, ela oferece conselhos práticos que reduzem a complexidade, promovem módulos profundos e evitam o aumento descontrolado de dependências.
Como Usar
- Ative a skill em seu agente de IA compatível (Claude Code, Cursor, Codex, etc.).
- Faça perguntas de design específicas, como:
- "Como posso reduzir a complexidade deste módulo?"
- "Este código está seguindo princípios de deep module?"
- "Quais são os riscos desta interface?"
- Peça revisões de design para trechos de código ou arquivos.
- Receba sugestões de refatoração baseadas nos princípios de Ousterhout.
Exemplo de Prompt
Analise o design desta classe e sugira melhorias com base na filosofia de design de software:
class GerenciadorDeArquivos:
def __init__(self):
self.conexao = None
self.cache = {}
def abrir_arquivo(self, caminho):
# lógica de abertura de arquivo
pass
def ler_dados(self, arquivo, inicio, fim):
# lógica de leitura
pass
Principais Princípios Abordados
- Módulos Profundos: Interfaces simples que encapsulam funcionalidades complexas internamente.
- Estratégia vs. Tática: Design intencional em vez de soluções reativas.
- Gerenciamento de Complexidade: Identificar e reduzir complexidade acidental.
- Custos de Interface: Avaliar o custo de expor detalhes internos.
- Abstrações Vazadas: Evitar que detalhes de implementação vazem nas interfaces.
Licença
MIT