Pular para o conteúdo
Skillpedia
Código em geral41 mil · #4966

memory-safety-patterns

Faz seu agente escrever código mais seguro em linguagens como Rust e C++. Ele previne erros comuns de memória, garantindo a estabilidade e a confiabilidade do software.

O que ela faz

Ajuda a escrever código de computador que gerencia a memória de forma segura, evitando erros comuns como vazamentos ou uso de memória já liberada. Isso é feito usando técnicas como RAII, ponteiros inteligentes e controle de propriedade.

Quando usar

  • ✓Ao criar programas que precisam ser muito confiáveis (sistemas operacionais, jogos).
  • ✓Quando você quer evitar que seu programa trave ou apresente comportamentos estranhos por causa de erros de memória.
  • ✓Ao aprender ou usar linguagens como C++, Rust ou C para garantir a segurança.

Exemplo do que pedir para a IA

“Como posso evitar vazamentos de memória em C++ usando RAII?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/wshobson/agents/blob/main/plugins/systems-programming/skills/memory-safety-patterns/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/wshobson/agents/blob/main/plugins/systems-programming/skills/memory-safety-patterns/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Essa ferramenta ensina padrões de programação que associam o tempo de vida de recursos (como memória ou arquivos) ao tempo de vida de objetos. Quando um objeto é criado, ele adquire um recurso; quando o objeto é destruído, ele libera o recurso automaticamente.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add wshobson/agents --skill memory-safety-patterns

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/systems-programming/skills/memory-safety-patterns/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Padrões de Segurança de Memória

Padrões entre linguagens para programação com segurança de memória, incluindo RAII, propriedade, ponteiros inteligentes e gerenciamento de recursos.

Quando Usar Esta Habilidade

  • Escrever código de sistema com segurança de memória
  • Gerenciar recursos (arquivos, sockets, memória)
  • Prevenir uso-após-liberação e vazamentos
  • Implementar padrões RAII
  • Escolher entre linguagens para segurança
  • Depurar problemas de memória

Conceitos Principais

1. Categorias de Bugs de Memória

Tipo de Bug Descrição Prevenção
Uso-após-liberação Acessar memória liberada Propriedade, RAII
Liberação Dupla Liberar a mesma memória duas vezes Ponteiros inteligentes
Vazamento de memória Nunca liberar memória RAII, GC
Estouro de buffer Escrever além do fim do buffer Verificação de limites
Ponteiro pendente Ponteiro para memória liberada Rastreamento de tempo de vida
Corrida de dados Acesso concorrente não sincronizado Propriedade, Sincronização

2. Espectro de Segurança

Manual (C) → Smart Pointers (C++) → Ownership (Rust) → GC (Go, Java)
Less safe                                              More safe
More control                                           Less control

Padrões Detalhados e Exemplos Práticos

A documentação detalhada dos padrões está em references/details.md. Leia este arquivo quando o nível de navegação acima for insuficiente.

Melhores Práticas

Fazer

  • Prefira RAII - Vincule o tempo de vida do recurso ao escopo
  • Use ponteiros inteligentes - Evite ponteiros brutos em C++
  • Entenda a propriedade - Saiba quem é o dono de quê
  • Verifique os limites - Use métodos de acesso seguros
  • Use ferramentas - AddressSanitizer, Valgrind, Miri

Não Fazer

  • Não use ponteiros brutos - Exceto ao interagir com C
  • Não retorne referências locais - Ponteiro pendente
  • Não ignore avisos do compilador - Eles pegam bugs
  • Não use unsafe descuidadamente - Em Rust, minimize seu uso
  • Não assuma segurança de thread - Seja explícito

Ferramentas de Depuração

# AddressSanitizer (Clang/GCC)
clang++ -fsanitize=address -g source.cpp

# Valgrind
valgrind --leak-check=full ./program

# Rust Miri (undefined behavior detector)
cargo +nightly miri run

# ThreadSanitizer
clang++ -fsanitize=thread -g source.cpp
Perguntas frequentes

O que é RAII?

RAII significa 'Resource Acquisition Is Initialization'. É uma técnica onde a aquisição de um recurso (como alocar memória) acontece na inicialização de um objeto, e a liberação acontece quando o objeto é destruído.

O que são ponteiros inteligentes?

São objetos que se comportam como ponteiros, mas que gerenciam automaticamente a memória que apontam, ajudando a evitar erros como vazamentos ou acesso a memória inválida.

Qual a diferença entre C e Rust em relação à segurança de memória?

C exige que o programador gerencie a memória manualmente, o que é propenso a erros. Rust usa um sistema de 'propriedade' que garante a segurança de memória em tempo de compilação, sem a necessidade de um coletor de lixo.

Detalhes

Descrição original do autor

Implement memory-safe programming with RAII, ownership, smart pointers, and resource management across Rust, C++, and C. Use when writing safe systems code, managing resources, or preventing memory bugs.

repo: wshobson/agents

Popularidade

Estrelas no GitHub
41 mil
Posição no ranking
#4966
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas