Communitygithub.com

hotopla5976/filosofia-de-design-de-software

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.

O que é filosofia-de-design-de-software?

Esta skill oferece orientação prática sobre design de software fundamentada nos princípios do livro 'A Philosophy of Software Design', de John Ousterhout. Ela ajuda desenvolvedores a tomar decisões de arquitetura que reduzem a complexidade, melhoram a modularidade e aumentam a longevidade do código. A skill é útil em qualquer plataforma de agente de IA que suporte definições de habilidades personalizadas, como Claude Code, Cursor e Codex, permitindo que o agente forneça conselhos contextuais durante a implementação. Com base na documentação SKILL.md, ela analisa trechos de código, sugere refatorações e explica conceitos como stratégia de design, deep modules e gerenciamento de custos de interface. Para usar, basta ativar a skill e fazer perguntas específicas sobre design ou solicitar revisões de código dentro do fluxo de trabalho.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add hotopla5976/software-design-philosophy-skill

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

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

  1. Ative a skill em seu agente de IA compatível (Claude Code, Cursor, Codex, etc.).
  2. 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?"
  3. Peça revisões de design para trechos de código ou arquivos.
  4. 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

Habilidades Relacionadas